How does the Sui blockchain work?
October 26, 2026
Sui keeps all state as versioned objects, and each transaction names exactly which objects it uses. Validators, chosen by delegated proof of stake for each roughly 24-hour epoch, order transactions with the Mysticeti DAG consensus protocol. They then execute transactions that don't conflict in parallel, and the results are recorded in certified checkpoints. A transaction is final once a quorum of validators (more than two-thirds of voting power) agrees on its effects.
Objects and ownership
Every object has a 32-byte ID, a version that increments on each change, and a digest. Ownership determines how a transaction gets scheduled:
- Address-owned objects belong to one address (or to another object).
- Shared objects, created with
transfer::share_object, can be used by anyone, so transactions on them have to be ordered against each other. - Immutable objects can't change, so anyone can read them without coordination.
- Party (consensus-address-owned) objects have one owner but go through consensus sequencing.
Since the inputs are declared up front, two transactions that touch different objects never conflict, and validators can run them on different cores. More detail is in shared vs owned objects.
A transaction's path
- A user signs a transaction (often a programmable transaction block) and sends it to a full node.
- The full node's Transaction Driver passes it to a validator. That validator checks the signature, input objects and gas budget, then puts the transaction in its next consensus block. Other validators make the same checks, which stops a double spend from getting through any single validator.
- Mysticeti lets every validator propose blocks in parallel, forming a DAG. It needs three message rounds to commit, and commitment is implicit, which cuts down on messaging. The commit order decides the order of transactions on each shared object.
- Validators execute the Move code and produce effects (objects created, mutated or deleted, gas charged, events).
- The full node gathers the effects from one validator plus acknowledgments of the same effects digest from a quorum. Holding those certified effects counts as proof of finality. If the acknowledgments don't arrive, the node waits until the transaction shows up in a certified checkpoint.
Epochs and validators
The validator set and stake weights stay fixed within an epoch (about 24 hours on mainnet and testnet). At the epoch boundary, the network reconfigures. It distributes stake rewards, applies stake changes, and sets the next epoch's reference gas price. The protocol stays safe as long as validators holding more than two-thirds of the stake follow it.
Gas and storage
Each transaction pays a computation fee and a storage fee. The storage fee goes into the storage fund, and you get most of it back when the data is deleted.
See it yourself
You can watch the current epoch over GraphQL:
curl -s https://graphql.mainnet.sui.io/graphql \
-H 'content-type: application/json' \
-d '{"query":"{ epoch { epochId referenceGasPrice startTimestamp } }"}'You can also send a testnet transaction from the playground and look up its effects in an explorer.
Sources
- Consensus, Sui documentation
- Object model, Sui documentation
- Gas in Sui, Sui documentation
- The Sui Smart Contracts Platform, Sui whitepaper