Releases: MystenLabs/sui
testnet-v1.68.1
Protocol
Sui Protocol Version in this release: 118
#25907: Add missing function for display migration cap
#25674: Enables address aliases feature on mainnet.
#23710: Enables Display V2 (0xd system object is created)
#25827: metadata hardening in Sui System
Nodes (Validators and Full nodes)
#25624: Fixes a potential fullnode panic when simulating a malformed transaction with invalid funds withdrawals.
JSON-RPC
#25360: Adds support for Display Registry to JSONRPC: When showDisplay is set, the RPC will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
GraphQL
#25479: Introduce MoveValue.asVector for paginating through vectors of Move Values.
#25657: Introduce a new union SignatureScheme for UserSignature
#25715: ZkLoginVerifyResult will not contain error anymore. Error will not be part of GraphQL response error
#25242: Adds support for Display Registry to GraphQL: MoveValue.display will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
Indexing Framework
#25641: Processor concurrency (fanout) and ingestion concurrency (ingest_concurrency) now use adaptive concurrency control by default. Instead of a fixed number of workers, concurrency starts at 1 and scales automatically based on downstream channel backpressure — up to num_cpus for processors and up to 500 for ingestion.
Breaking changes:
Processor::FANOUTtrait constant has been removed. Processor concurrency is now configured via thefanoutfield onConcurrentConfig/SequentialConfig, which accepts aConcurrencyConfigenum instead ofusize.ingest_concurrencyinIngestionConfigchanged fromusizetoConcurrencyConfig.- A new
processor_channel_sizefield controls the channel between the processor and downstream stage (defaults tonum_cpus / 2). This channel previously sized itself fromFANOUT + PIPELINE_BUFFER.
Migration: To preserve previous fixed-concurrency behavior, set fanout: Some(ConcurrencyConfig::Fixed { value: N }) or ingest_concurrency: ConcurrencyConfig::Fixed { value: N }. Otherwise, no changes are needed — the adaptive defaults should work well for most workloads.
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.68.1
mainnet-v1.68.1
Protocol
Sui Protocol Version in this release: 118
#25907: Add missing function for display migration cap
#25674: Enables address aliases feature on mainnet.
#23710: Enables Display V2 (0xd system object is created)
#25827: metadata hardening in Sui System
Nodes (Validators and Full nodes)
#25624: Fixes a potential fullnode panic when simulating a malformed transaction with invalid funds withdrawals.
JSON-RPC
#25360: Adds support for Display Registry to JSONRPC: When showDisplay is set, the RPC will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
GraphQL
#25479: Introduce MoveValue.asVector for paginating through vectors of Move Values.
#25657: Introduce a new union SignatureScheme for UserSignature
#25715: ZkLoginVerifyResult will not contain error anymore. Error will not be part of GraphQL response error
#25242: Adds support for Display Registry to GraphQL: MoveValue.display will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
Indexing Framework
#25641: Processor concurrency (fanout) and ingestion concurrency (ingest_concurrency) now use adaptive concurrency control by default. Instead of a fixed number of workers, concurrency starts at 1 and scales automatically based on downstream channel backpressure — up to num_cpus for processors and up to 500 for ingestion.
Breaking changes:
Processor::FANOUTtrait constant has been removed. Processor concurrency is now configured via thefanoutfield onConcurrentConfig/SequentialConfig, which accepts aConcurrencyConfigenum instead ofusize.ingest_concurrencyinIngestionConfigchanged fromusizetoConcurrencyConfig.- A new
processor_channel_sizefield controls the channel between the processor and downstream stage (defaults tonum_cpus / 2). This channel previously sized itself fromFANOUT + PIPELINE_BUFFER.
Migration: To preserve previous fixed-concurrency behavior, set fanout: Some(ConcurrencyConfig::Fixed { value: N }) or ingest_concurrency: ConcurrencyConfig::Fixed { value: N }. Otherwise, no changes are needed — the adaptive defaults should work well for most workloads.
Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.68.1
testnet-v1.68.0
Protocol
Sui Protocol Version in this release: 117
#25827: metadata hardening in Sui System
#25674: Enables address aliases feature on mainnet.
#23710: Enables Display V2 (0xd system object is created)
Nodes (Validators and Full nodes)
#25624: Fixes a potential fullnode panic when simulating a malformed transaction with invalid funds withdrawals.
JSON-RPC
#25360: Adds support for Display Registry to JSONRPC: When showDisplay is set, the RPC will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
GraphQL
#25479: Introduce MoveValue.asVector for paginating through vectors of Move Values.
#25657: Introduce a new union SignatureScheme for UserSignature
#25715: ZkLoginVerifyResult will not contain error anymore. Error will not be part of GraphQL response error
#25242: Adds support for Display Registry to GraphQL: MoveValue.display will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
Indexing Framework
#25641: Processor concurrency (fanout) and ingestion concurrency (ingest_concurrency) now use adaptive concurrency control by default. Instead of a fixed number of workers, concurrency starts at 1 and scales automatically based on downstream channel backpressure — up to num_cpus for processors and up to 500 for ingestion.
Breaking changes:
Processor::FANOUTtrait constant has been removed. Processor concurrency is now configured via thefanoutfield onConcurrentConfig/SequentialConfig, which accepts aConcurrencyConfigenum instead ofusize.ingest_concurrencyinIngestionConfigchanged fromusizetoConcurrencyConfig.- A new
processor_channel_sizefield controls the channel between the processor and downstream stage (defaults tonum_cpus / 2). This channel previously sized itself fromFANOUT + PIPELINE_BUFFER.
Migration: To preserve previous fixed-concurrency behavior, set fanout: Some(ConcurrencyConfig::Fixed { value: N }) or ingest_concurrency: ConcurrencyConfig::Fixed { value: N }. Otherwise, no changes are needed — the adaptive defaults should work well for most workloads.
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.68.0
devnet-v1.68.0
Protocol
Sui Protocol Version in this release: 117
#25827: metadata hardening in Sui System
#25674: Enables address aliases feature on mainnet.
#23710: Enables Display V2 (0xd system object is created)
Nodes (Validators and Full nodes)
#25624: Fixes a potential fullnode panic when simulating a malformed transaction with invalid funds withdrawals.
JSON-RPC
#25360: Adds support for Display Registry to JSONRPC: When showDisplay is set, the RPC will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
GraphQL
#25479: Introduce MoveValue.asVector for paginating through vectors of Move Values.
#25657: Introduce a new union SignatureScheme for UserSignature
#25715: ZkLoginVerifyResult will not contain error anymore. Error will not be part of GraphQL response error
#25242: Adds support for Display Registry to GraphQL: MoveValue.display will look for a Display<T> stored in the Display Registry and will use that as the source of truth for its type's format. This takes precedence over any Display v1 formats that exist for this type.
Indexing Framework
#25641: Processor concurrency (fanout) and ingestion concurrency (ingest_concurrency) now use adaptive concurrency control by default. Instead of a fixed number of workers, concurrency starts at 1 and scales automatically based on downstream channel backpressure — up to num_cpus for processors and up to 500 for ingestion.
Breaking changes:
Processor::FANOUTtrait constant has been removed. Processor concurrency is now configured via thefanoutfield onConcurrentConfig/SequentialConfig, which accepts aConcurrencyConfigenum instead ofusize.ingest_concurrencyinIngestionConfigchanged fromusizetoConcurrencyConfig.- A new
processor_channel_sizefield controls the channel between the processor and downstream stage (defaults tonum_cpus / 2). This channel previously sized itself fromFANOUT + PIPELINE_BUFFER.
Migration: To preserve previous fixed-concurrency behavior, set fanout: Some(ConcurrencyConfig::Fixed { value: N }) or ingest_concurrency: ConcurrencyConfig::Fixed { value: N }. Otherwise, no changes are needed — the adaptive defaults should work well for most workloads.
Full Log: https://github.com/MystenLabs/sui/commits/devnet-v1.68.0
mainnet-v1.67.3
Protocol
Sui Protocol Version in this release: 115
#25795: Adds a new protocol version 115 to normalize representation of some structures within the VM.
#25556: Enables the address aliases feature on mainnet.
#25585: Add a new protocol version to support some refactoring in execution.
#25364: test only changes, no user impact
GraphQL
#25261: Error field is no longer available in simulateResult and ExecutionResult. They will be propagated in GraphQL errors
CLI
#25074: sui move build --dump (the short version of --dump-bytecode-as-base64) now correctly outputs bytecode with the 0 address.
#25587: Fixed a bug to re-enable pretty printing of sui client ptb output.
Indexing Framework
#25434: Fixes an issue where the ingestion client allowed configuring multiple sources but all but one source was ignored, based on an implicit precedence order. Now exactly one source must be supplied.
#25593: Reducing ingestion concurrency and channel size. Testing showed this eliminated OOM issues when processing large checkpoints without bottlenecking a 16 cpu machine.
Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.67.3
testnet-v1.67.2
Protocol
Sui Protocol Version in this release: 114
#25364: test only changes, no user impact
#25556: Enables the address aliases feature on mainnet.
#25585: Add a new protocol version to support some refactoring in execution.
GraphQL
#25261: Error field is no longer available in simulateResult and ExecutionResult. They will be propagated in GraphQL errors
CLI
#25074: sui move build --dump (the short version of --dump-bytecode-as-base64) now correctly outputs bytecode with the 0 address.
#25587: Fixed a bug to re-enable pretty printing of sui client ptb output.
Indexing Framework
#25434: Fixes an issue where the ingestion client allowed configuring multiple sources but all but one source was ignored, based on an implicit precedence order. Now exactly one source must be supplied.
#25593: Reducing ingestion concurrency and channel size. Testing showed this eliminated OOM issues when processing large checkpoints without bottlenecking a 16 cpu machine.
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.67.2
testnet-v1.67.1
Protocol
Sui Protocol Version in this release: 114
#25364: test only changes, no user impact
#25556: Enables the address aliases feature on mainnet.
#25585: Add a new protocol version to support some refactoring in execution.
GraphQL
#25261: Error field is no longer available in simulateResult and ExecutionResult. They will be propagated in GraphQL errors
CLI
#25074: sui move build --dump (the short version of --dump-bytecode-as-base64) now correctly outputs bytecode with the 0 address.
#25587: Fixed a bug to re-enable pretty printing of sui client ptb output.
Indexing Framework
#25434: Fixes an issue where the ingestion client allowed configuring multiple sources but all but one source was ignored, based on an implicit precedence order. Now exactly one source must be supplied.
#25593: Reducing ingestion concurrency and channel size. Testing showed this eliminated OOM issues when processing large checkpoints without bottlenecking a 16 cpu machine.
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.67.1
devnet-v1.67.0
Protocol
Sui Protocol Version in this release: 114
#25364: test only changes, no user impact
#25556: Enables the address aliases feature on mainnet.
#25585: Add a new protocol version to support some refactoring in execution.
GraphQL
#25261: Error field is no longer available in simulateResult and ExecutionResult. They will be propagated in GraphQL errors
CLI
#25074: sui move build --dump (the short version of --dump-bytecode-as-base64) now correctly outputs bytecode with the 0 address.
#25587: Fixed a bug to re-enable pretty printing of sui client ptb output.
Indexing Framework
#25434: Fixes an issue where the ingestion client allowed configuring multiple sources but all but one source was ignored, based on an implicit precedence order. Now exactly one source must be supplied.
#25593: Reducing ingestion concurrency and channel size. Testing showed this eliminated OOM issues when processing large checkpoints without bottlenecking a 16 cpu machine.
Full Log: https://github.com/MystenLabs/sui/commits/devnet-v1.67.0
testnet-v1.66.2
Protocol
Sui Protocol Version in this release: 113
#25588: Bump protocol version
#25361: in version 111 error from dev inspect, dry run and execution are more consistent and the same for transaction data checks
#25321: Add Ristretto255 group operations to sui-framework on devnet.
Nodes (Validators and Full nodes)
#25257: Added multi-provider Ethereum RPC support to the bridge node.
Operators can now configure multiple Ethereum RPC endpoints with quorum-based consensus for improved redundancy and fault tolerance.
New optional YAML config fields (in sui bridge config):
eth-rpc-urls(list of RPC URLs),eth-rpc-quorum(quorum size, defaults to 1)eth-health-check-interval-secs(health check interval, defaults to 300s).
The existing eth-rpc-url field continues to work for backward compatibility. When a single URL is configured, the multi-provider layer operates as a zero-overhead passthrough with no quorum, health-check, or locking machinery.
gRPC
#25191: Read the new BigTable schema and per-pipeline watermarks.
GraphQL
#25109: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
#25110: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
#25186: chainIdentifier query now returns full Base58-encoded 32 byte digest
#24788: add bloom filter pipelines for scanning APIs
#25191: Read the new BigTable schema and per-pipeline watermarks.
CLI
#24469: Sui CLI now supports auto-complete via clap-complete.
sui completion --generate bash
sui completion --generate elvish
sui completion --generate fish
sui completion --generate powershell
sui completion --generate zsh
Put the output in a file in the right directory for your shell (e.g., for fish in ~/.config/fish/completions/sui.fish) and restart your shell. Use double TAB to trigger the auto completion menu.
#25226: sui move test now uses Sui's gas meter and limits.
#25405: Fix an issue where the CLI would fail to infer the type of a primitive argument to a Move call if that argument was accessed by reference or by mutable reference.
#25082: You can now do sui move build --dump-bytecode-as-base64 --pubfile-path <file> to use ephemeral addresses for dumped bytecode.
The --dump flag can be used as a shorthand for --dump-bytecode-as-base64.
The full flag for -e has been changed to --build-env (the shorthand -e remains the same)
Fixed a bug when --pubfile-path is used with -p
#25592: Fixed a bug to re-enable pretty printing of sui client ptb output.
Indexing Framework
#25324: Disable object_store crate internal retries to make errors immediately visible to framework.
#25325: Fix memory leak in ingestion stream.
#25334: Enable ingestion backpressure for concurrent pipelines
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.66.2
mainnet-v1.66.2
Protocol
Sui Protocol Version in this release: 113
#25588: Bump protocol version
#25361: in version 111 error from dev inspect, dry run and execution are more consistent and the same for transaction data checks
#25321: Add Ristretto255 group operations to sui-framework on devnet.
Nodes (Validators and Full nodes)
#25257: Added multi-provider Ethereum RPC support to the bridge node.
Operators can now configure multiple Ethereum RPC endpoints with quorum-based consensus for improved redundancy and fault tolerance.
New optional YAML config fields (in sui bridge config):
eth-rpc-urls(list of RPC URLs),eth-rpc-quorum(quorum size, defaults to 1)eth-health-check-interval-secs(health check interval, defaults to 300s).
The existing eth-rpc-url field continues to work for backward compatibility. When a single URL is configured, the multi-provider layer operates as a zero-overhead passthrough with no quorum, health-check, or locking machinery.
gRPC
#25191: Read the new BigTable schema and per-pipeline watermarks.
GraphQL
#25109: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
#25110: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
#25186: chainIdentifier query now returns full Base58-encoded 32 byte digest
#24788: add bloom filter pipelines for scanning APIs
#25191: Read the new BigTable schema and per-pipeline watermarks.
CLI
#24469: Sui CLI now supports auto-complete via clap-complete.
sui completion --generate bash
sui completion --generate elvish
sui completion --generate fish
sui completion --generate powershell
sui completion --generate zsh
Put the output in a file in the right directory for your shell (e.g., for fish in ~/.config/fish/completions/sui.fish) and restart your shell. Use double TAB to trigger the auto completion menu.
#25226: sui move test now uses Sui's gas meter and limits.
#25405: Fix an issue where the CLI would fail to infer the type of a primitive argument to a Move call if that argument was accessed by reference or by mutable reference.
#25082: You can now do sui move build --dump-bytecode-as-base64 --pubfile-path <file> to use ephemeral addresses for dumped bytecode.
The --dump flag can be used as a shorthand for --dump-bytecode-as-base64.
The full flag for -e has been changed to --build-env (the shorthand -e remains the same)
Fixed a bug when --pubfile-path is used with -p
#25592: Fixed a bug to re-enable pretty printing of sui client ptb output.
Indexing Framework
#25324: Disable object_store crate internal retries to make errors immediately visible to framework.
#25325: Fix memory leak in ingestion stream.
#25334: Enable ingestion backpressure for concurrent pipelines