Building and auditing on Sui: Move, the object model, owned and shared objects, capabilities, package upgrades, key risks and how to prepare.
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