Releases: MystenLabs/sui
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
Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.66.2
testnet-v1.66.1
Protocol
Sui Protocol Version in this release: 112
#25449: 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
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.1
devnet-v1.66.0
Protocol
Sui Protocol Version in this release: 112
#25449: 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
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/devnet-v1.66.0
testnet-v1.65.2
Protocol
Sui Protocol Version in this release: 111
#25366: 111 makes more consistent check across execution mode and transaction data
#24957: Enable custom nonzero pcrs parsing for mainnet in version 109.
gRPC
#25392: Fixes a bug that was introduced in #24797 that could lead to the balance index being incorrect if a fullnode restored indexes with the 1.64 release.
GraphQL
#24963: Balance.totalBalance now returns the sum of balances from owned coins and from the accumulator object. The individual coin or address balances can be retrieved through Balance.coinBalance and Balance.addressBalance respectively. For the previous behavior, select the Balance.coinBalance field for coin balances only.
#25108: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
CLI
#25016: The --sender flag is now correctly respected in sui client publish and sui client upgrade commands when used with --serialize-unsigned-transaction. Previously, the sender was incorrectly inferred from gas objects, ignoring the --sender flag.
Indexing Framework
#24066: Ingest zstd-compressed proto files rather than BCS files
#24991: remote_client::RemoteIngestionClient becomes store_client::StoreIngestionClient and supports any valid implementation of object_store::ObjectStore as a checkpoint source.
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.65.2
mainnet-v1.65.2
Protocol
Sui Protocol Version in this release: 111
#25366: 111 makes more consistent check across execution mode and transaction data
#24957: Enable custom nonzero pcrs parsing for mainnet in version 109.
gRPC
#25392: Fixes a bug that was introduced in #24797 that could lead to the balance index being incorrect if a fullnode restored indexes with the 1.64 release.
GraphQL
#24963: Balance.totalBalance now returns the sum of balances from owned coins and from the accumulator object. The individual coin or address balances can be retrieved through Balance.coinBalance and Balance.addressBalance respectively. For the previous behavior, select the Balance.coinBalance field for coin balances only.
#25108: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
CLI
#25016: The --sender flag is now correctly respected in sui client publish and sui client upgrade commands when used with --serialize-unsigned-transaction. Previously, the sender was incorrectly inferred from gas objects, ignoring the --sender flag.
Indexing Framework
#24066: Ingest zstd-compressed proto files rather than BCS files
#24991: remote_client::RemoteIngestionClient becomes store_client::StoreIngestionClient and supports any valid implementation of object_store::ObjectStore as a checkpoint source.
Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.65.2
testnet-v1.65.1
Protocol
Sui Protocol Version in this release: 110
#24957: Enable custom nonzero pcrs parsing for mainnet in version 109.
GraphQL
#24963: Balance.totalBalance now returns the sum of balances from owned coins and from the accumulator object. The individual coin or address balances can be retrieved through Balance.coinBalance and Balance.addressBalance respectively. For the previous behavior, select the Balance.coinBalance field for coin balances only.
#25108: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
CLI
#25016: The --sender flag is now correctly respected in sui client publish and sui client upgrade commands when used with --serialize-unsigned-transaction. Previously, the sender was incorrectly inferred from gas objects, ignoring the --sender flag.
Indexing Framework
#24066: Ingest zstd-compressed proto files rather than BCS files
#24991: remote_client::RemoteIngestionClient becomes store_client::StoreIngestionClient and supports any valid implementation of object_store::ObjectStore as a checkpoint source.
Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.65.1
devnet-v1.65.0
Protocol
Sui Protocol Version in this release: 110
#24957: Enable custom nonzero pcrs parsing for mainnet in version 109.
GraphQL
#24963: Balance.totalBalance now returns the sum of balances from owned coins and from the accumulator object. The individual coin or address balances can be retrieved through Balance.coinBalance and Balance.addressBalance respectively. For the previous behavior, select the Balance.coinBalance field for coin balances only.
#25108: Partial error will be properly supported in GraphQL. Invalid fields will have error messages and valid fields will still be displayed normally
CLI
#25016: The --sender flag is now correctly respected in sui client publish and sui client upgrade commands when used with --serialize-unsigned-transaction. Previously, the sender was incorrectly inferred from gas objects, ignoring the --sender flag.
Indexing Framework
#24066: Ingest zstd-compressed proto files rather than BCS files
#24991: remote_client::RemoteIngestionClient becomes store_client::StoreIngestionClient and supports any valid implementation of object_store::ObjectStore as a checkpoint source.
Full Log: https://github.com/MystenLabs/sui/commits/devnet-v1.65.0
mainnet-v1.64.2
Protocol
Sui Protocol Version in this release: 109
#25147: fix(sui-http): use explicit rustls::CryptoProvider
Full Log: https://github.com/MystenLabs/sui/commits/mainnet-v1.64.2
mainnet-v1.64.1
Protocol
Sui Protocol Version in this release: 109
#24802:
TxContext arguments can now appear in any position and still be callable in the PTB layer.
#24835:
Signature check for entry functions is disabled. Move compiler changes will follow
#24895:
Enables address alias feature on testnet.
#24879:
poseidon_bn254 is enabled on all networks.
gRPC
#24794:
Return an error when balance_changes is requested but the transactions have not been indexed yet.
GraphQL
#24782:
Introduce Query.node(id: ID!): Node, part of the GraphQL Global Identification Specification, to the schema, to support Relay's @refetchable annotation.
#24781:
Epoch.totalTransactions now returns a value for the latest epoch as of the checkpoint being viewed, rather than null.
#24750:
Add effectsJson on TransactionEffects and transactionJson on Transaction, that supports returning effects and transactions as JSON blob
#24865:
GraphQL requests are now subject to a single "rich query" limit, which enforces a budget on the number of dedicated requests to the database can be made by a single request.
#24836:
Add balanceChangeEffectJson on TransactionEffects, that supports returning balance changes as JSON blob
#24876:
Added BalanceWithdraw type to TransactionInput union
#24770:
Introduces MoveValue.extract for extracting a sub-slice from a MoveValue using a Display v2 expression.
#24771:
Introduce MoveValue.asAddress and IAddressable.addressAt for coercing a MoveValue to a GraphQL Address and viewing an address at a difference checkpoint.
#24772:
Adds DynamicFieldName.literal for providing a dynamic field name as a Display v2 literal.
#24774:
Add MoveValue.format to evaluate a single format string against a Move value.
#24775:
PTB Inputs are represented as MoveValue-s, if their types can be inferred.
#24776:
Remove fields related to the system state from Epoch, in favour of exposing the whole system state as Epoch.systemState: MoveValue. Similarly replace most fields on ValidatorSet with ValidatorSet.contents: MoveValue, and Validator with Validator.contents: MoveValue.
#24779:
Replace Query.suinsName(name: ...) with Query.address(name: ...), replace IAddressable.defaultSuinsName with IAddressable.defaultNameRecord.target, and add Query.nameRecord for fetching the SuiNS NameRecord for a given SuiNS name.
#25025:
Balance.totalBalance now returns the sum of balances from owned coins and from the accumulator object. The individual coin or address balances can be retrieved through Balance.coinBalance and Balance.addressBalance respectively. For the previous behavior, select the Balance.coinBalance field for coin balances only.
CLI
#24822:
Fixed the issue for sui client publish | upgrade around using various flags (e.g., dry-run).
#24844:
Added --no-tree-shaking flag that can only be used with --dump-bytecode-as-base64. This will ensure that all dependencies will be kept in the list of dependencies in the json output, regardless if they're used or not used in the source code. In contrast, by default, the CLI will remove any unused dependencies from the dependency list on publication/upgrade and when --no-tree-shaking flag is false.
Indexing Framework
#24925:
Adding optional jitter to watermark update interval.