Museo · Exhibit 02 · the Sui object model
Why do most Sui transactions skip consensus?
Sui runs transactions in parallel — but only some of them. The deciding factor is one property of the objects a transaction touches: does it have one owner, or is it shared? Run a batch and watch the two paths split.
Everything on Sui is an object. Some are owned — a coin, an NFT, your game piece — with exactly one owner who can use them. Some are shared — a trading pool, an auction — anyone can use them. That one distinction decides whether a transaction needs consensus.
Owned objects → parallel
single writer · no ordering needed
Reach Act 2 and hit Run →
All 4 finalize in 1 round — checked at once, in their own lanes.
One shared object → consensus
many writers · must be ordered
Reach Act 3 and hit Run →
4 on the same object → ordered one by one → 4 rounds. The numbers are the order consensus picked.
The idea
Consensus exists to answer one question: in what order did conflicting writes happen? An owned object has a single writer — you — so there is nothing to order. The network verifies your signature and the object’s version and processes the transaction immediately, alongside every unrelated one. A shared object can be written by anyone, so when several transactions touch the same one, the network must agree on their order first. That agreement is consensus (Mysticeti on Sui), and it’s why those transactions are handled one at a time.
The cost was never “shared objects are slow.” It’s contention: many transactions on the same hot object. Spread the work across different objects — owned or shared — and it parallelizes again.
This is the heart of Sui’s speed
Transfers, payments, minting — the common case — touch only objects you own, so they take the fast path and never hit consensus. DeFi that mutates a shared pool pays for ordering. As a builder you design around it: keep hot paths in owned objects, and reach for shared state only when you truly need many writers. (Owned-object transactions are still certified by a quorum of validators — they skip the ordering, not the verification.)