Sui mainnet v1.81.1 brings protocol 138 and changes how validators pick transactions for blocks
Mysten Labs published Sui mainnet-v1.81.1 on 7 October, a day after the same build went to testnet. It carries Sui protocol version 138.
Protocol changes.
- Deferred transactions: colliding deferred-transaction keys in the consensus handler now merge their entries instead of overwriting them, so a transaction that is deferred again can no longer push out one deferred earlier (PR 28131).
- A new memory invariant check for reference and value usage in programmable transaction blocks (PR 27975).
- Gas model changes that the notes describe as implementation-only, with no user impact (PR 27049).
- Two changes are limited to devnet and testnet at protocol 138: transaction effects stop reporting transaction dependencies (the encoding keeps an empty vector), and the object-funds withdrawal check runs during execution.

For node operators — two defaults change.
- Validators now pull transactions from a consensus-side pool when they propose a block, instead of the admission queue pushing them in. The old behaviour stays available with
consensus-transaction-pool.enabled: false(PR 28076). - Full nodes no longer restrict simulated transactions to their preferred proposers; operators who want the old behaviour must set
enable-simulate-allowed-proposers: true(PR 28037).
For developers. GraphQL gains multiGetDynamicFields, derived-object lookups and a nullable Balance.coinMetadata. Rosetta now fetches the latest checkpoint in one request, ending transient Checkpoint N not found errors behind load balancers. In sui move test, test_scenario now tracks funds across transactions, so a withdrawal from an object succeeds only up to what was actually sent to it. Tests that relied on the old behaviour, where every object withdrawal succeeded, will now abort.
Primary source
MystenLabs/sui releases
https://github.com/MystenLabs/sui/releases/tag/mainnet-v1.81.1Written by Serguey Asael Shinder / Serguey Shinder.