testnet-v1.64.0
MystenLabs/suitestnet-v1.64.0Jan 20, 2026by ebmifa
AI Summary
Major protocol update (v108) introducing flexible transaction context arguments, address aliasing, and significant GraphQL/gRPC enhancements including JSON blob support and global node identification.
Key Highlights
- Protocol version bumped to 108
- Address alias feature enabled on testnet
- GraphQL enhancements: Global node identification and JSON blob support
- gRPC updates for unindexed transaction error handling
- Signature check for entry functions disabled (temporary)
New Features
- Flexible `TxContext` arguments in PTB layer
- Address aliasing enabled
- GraphQL `Query.node` for Relay spec support
- GraphQL `effectsJson` and `transactionJson` support
- GraphQL `MoveValue` formatting and extraction
- GraphQL `Query.address` replacing `Query.suinsName`
- CLI `--no-tree-shaking` flag for dependency management
Full Release Notes
## Protocol #### Sui Protocol Version in this release: `108` https://github.com/MystenLabs/sui/pull/24802: `TxContext` arguments can now appear in any position and still be callable in the PTB layer. https://github.com/MystenLabs/sui/pull/24835: Signature check for entry functions is disabled. Move compiler changes will follow https://github.com/MystenLabs/sui/pull/24895: Enables address alias feature on testnet. https://github.com/MystenLabs/sui/pull/24879: poseidon_bn254 is enabled on all networks. ## gRPC https://github.com/MystenLabs/sui/pull/24794: Return an error when `balance_changes` is requested but the transactions have not been indexed yet. ## GraphQL https://github.com/MystenLabs/sui/pull/24782: Introduce `Query.node(id: ID!): Node`, part of the GraphQL Global Identification Specification, to the schema, to support Relay's `@refetchable` annotation. https://github.com/MystenLabs/sui/pull/24781: `Epoch.totalTransactions` now returns a value for the latest epoch as of the checkpoint being viewed, rather than `null`. https://github.com/MystenLabs/sui/pull/24750: Add `effectsJson` on `TransactionEffects` and `transactionJson` on `Transaction`, that supports returning effects and transactions as JSON blob https://github.com/MystenLabs/sui/pull/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. https://github.com/MystenLabs/sui/pull/24836: Add balanceChangeEffectJson on TransactionEffects, that supports returning balance changes as JSON blob https://github.com/MystenLabs/sui/pull/24876: Added BalanceWithdraw type to TransactionInput union https://github.com/MystenLabs/sui/pull/24770: Introduces `MoveValue.extract` for extracting a sub-slice from a `MoveValue` using a Display v2 expression. https://github.com/MystenLabs/sui/pull/24771: Introduce `MoveValue.asAddress` and `IAddressable.addressAt` for coercing a `MoveValue` to a GraphQL `Address` and viewing an address at a difference checkpoint. https://github.com/MystenLabs/sui/pull/24772: Adds `DynamicFieldName.literal` for providing a dynamic field name as a Display v2 literal. https://github.com/MystenLabs/sui/pull/24774: Add `MoveValue.format` to evaluate a single format string against a Move value. https://github.com/MystenLabs/sui/pull/24775: PTB Inputs are represented as `MoveValue`-s, if their types can be inferred. https://github.com/MystenLabs/sui/pull/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`. https://github.com/MystenLabs/sui/pull/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. ## CLI https://github.com/MystenLabs/sui/pull/24822: Fixed the issue for `sui client publish | upgrade` around using various flags (e.g., dry-run). https://github.com/MystenLabs/sui/pull/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 https://github.com/MystenLabs/sui/pull/24925: Adding optional jitter to watermark update interval. --- #### Full Log: https://github.com/MystenLabs/sui/commits/testnet-v1.64.0