Protocol
Sui Protocol Version in this release: 137
#27844: Ristretto255 range proof verification is cheaper and the limit on the number of commitments times the range bit length is raised from 512 to 1024, so larger batches can now be verified in a single call.
#27528: adds allowances feature
#27524: Protocol v137 enables check_object_funds_withdraw_in_execution on devnet only. Object-funds withdrawal sufficiency is checked inside the Move VM at the point of withdrawal, insufficient withdrawals abort with a sui::funds_accumulator Move abort, and the first settled-balance read for each (owner, type) pair costs 184 internal gas units.
#27930: In protocol version 137, LdConst charges gas for the abstract value size of the constant rather than its serialized byte length, slightly increasing gas costs for constant-heavy code.
#27939: TransactionExpiration::Validity is now accepted on all networks, allowing a transaction to restrict which validators may propose it in consensus.
#27938: Enables additional signing time checks to reject structurally invalid txs earlier.
#27984: Adds new memory invariant check for reference/value usage in PTBs.
Nodes (Validators and Full nodes)
#27507: Adds an opt-in consensus-transaction-pool config for validators: when set, consensus pulls transactions from a validator-side, gas-price-prioritized pool at block-proposal time instead of the admission queue pushing them to consensus.
#27863: Validators using the pull-based consensus transaction pool stop proposing system transactions and pings after their submitter abandons them. No operator action is required.
#27528: adds allowances support
gRPC
#27833: V1 transaction effects now include their derived lamport version in v2 RPC responses.
#27876: Terminal metadata on queries that end on an empty natural interval (such as passing an after cursor pointing to the last item of a bounded window) now emits QueryEndReason::CheckpointBound with watermark.checkpoint = None instead of CursorBound. No client migration required.
#27528: adds allowances support
#27613: The Bigtable-backed archival gRPC service (sui-kv-rpc) now serves MovePackageService (GetPackage, GetDatatype, GetFunction, ListPackageVersions), previously only available on fullnodes.
JSON-RPC
#27523: SuiTransactionBlockEffects.shared_objects is derived from the effects' accessed consensus objects, which can now include implicitly read system objects such as the accumulator root once a consumer activates. Consumers that treat the field as declared shared inputs must filter against the transaction inputs; legacy sui-replay has been updated accordingly.
GraphQL
#27833: Historical subscription backfill can consume V1 effects from archival KV-RPC.
#27528: adds allowances support
#27942: The Subscription root type (checkpoints, events, transactions) is now part of the production schema, previously available only in staging builds. Operators must still enable it per deployment; there is no change for clients beyond the type being present.
CLI
#27486: Move packages on the 2024.alpha edition can now declare constants public(package), making them usable from other modules of the same package, both in code and in other constant definitions.