Sui is a layer 1 blockchain whose smart contracts are written in Move, a language designed around the safe handling of digital assets. Its data model is built on objects rather than accounts, which allows many transactions to be processed in parallel. For a project, it means a language with strong built-in safety properties, and a new set of design choices around who owns what.
Building on Sui
Every asset or piece of state is an object with an owner: an address, another object, shared access for everyone, or immutable. Transactions on owned objects can avoid global ordering, while shared objects go through consensus. Move's type system and abilities (key, store, copy, drop) prevent assets from being duplicated or silently destroyed. Transactions can chain several calls in a single programmable transaction block.
- Language: Sui Move
- Tooling: the Sui command-line interface and its built-in Move test framework
- Upgrades: packages are upgraded through an upgrade capability and an upgrade policy
- Not EVM-compatible
What auditors look at
- Object ownership: which objects are shared, who can pass them into a function, and whether a function trusts an object it should verify
- Capabilities: creation, storage and transfer of admin or minting capability objects, and the one-time witness pattern
- Abilities on types: a store or copy ability granted by mistake can let assets escape the intended rules
- Programmable transaction blocks: sequences of public functions composed by an attacker in one transaction
- Arithmetic, rounding and package upgrade policy
Before requesting quotes
- Describe every object type, its owner and its lifecycle
- List the capabilities and who holds them after deployment
- Share Move unit tests, including tests of unauthorized calls
- State the intended upgrade policy and who controls the upgrade capability