IOTA Protocol Weekly - May 12, 2026
May 12, 2026: Testnet release v1.23.1-beta introduces protocol version 26, runtime feature flags, and node pruning improvements.

Testnet release v1.23.1-beta is live. This prerelease introduces protocol version 26, runtime feature flag queries, and several updates across nodes, JSON-RPC, the Rust SDK, and more. Not for production use.
Protocol Changes
- Protocol version 26 is now active on the testnet.
- Added
is_feature_enabled()iniota::protocol_configto let Move code query protocol feature flags at runtime (#11443).
Node Updates
- Pruning changes:
epoch-db-pruning-period-secsconfig parameter removed. Pruning now runs automatically at every epoch transition, addressing a memory leak and ensuring consistent sync behavior (#11463). - State sync improvements: Peer tracking hardened with a new handshake protocol, stale peer handling, and periodic cleanup to prevent memory growth during extended syncs (#11451).
Debugformat forObjectIdchanged from0x...toObjectId("0x...")(#11331).- Periodic checkpoint progress status messages added; log spam reduced (#11450).
Indexer Changes
- JSON-RPC can now fetch objects from fallback KV storage if the indexer database doesnβt contain the requested version (e.g., due to pruning) (#11312).
- Heads-up: The old IOTA Indexer CLI will be removed in v1.24. It was deprecated in v1.3.1. Update any dependent scripts now.
JSON-RPC Updates
- Dropped
schemars/JsonSchemadependencies fromiota-types. JSON schema generation moved toiota-json-rpc-types(#10508). - Sequence numbers now display in decimal format in error messages (#11326).
- Fixed "Could not find the referenced object" errors for concurrent shared-object transactions (#11397).
IotaExecutionStatus::Failureerror strings now align withExecutionErrorvariants. Field names in error messages updated (e.g.,arg_idxβargument) (#11395).
GraphQL Optimization
Mutation.executeTransactionBlockperformance improved (#11439).
CLI Updates
Ownerformatting updated to use the SDK'sDisplayimplementation. Example:Address(<addr>)instead ofAccount Address (<addr>)(#11390).Argument::GasCoinnow displays asGasin CLI output and PTB snapshots (#11393).
Rust SDK Changes
- Breaking changes: Several methods removed or renamed due to crate externalization. Key changes include:
SequenceNumbermethods likenext,increment, anddecrementare now fallible. Replaced byiota-sdk-types::Version(#11326).IotaAddressmethods updated. Notable changes:random_for_testing_onlyβrandom,to_innerreplaced byinto_bytes, andDefaultis no longer derived (#11330).ObjectIDmethods removed and replaced byiota-rust-sdk::ObjectId(#11331).Digestand related types are now re-exports ofiota_sdk_types::Digest. Changes include renamed constants, updated methods, and a unifiedDebugrepresentation (#11338).GasCostSummaryis now a re-export ofiota_sdk_types::gas::GasCostSummary. Removednew_from_txn_effects(#11337).Identifier,StructTag, andTypeTagare now re-exports ofiota_sdk_typesequivalents. Public API updated to use methods instead of direct field access (#11355).
Testnet users should focus on adapting to the protocol v26 changes and updating any scripts or tools that rely on the soon-to-be-removed IOTA Indexer CLI. Full details are in the release notes.
Sources: v1.23.1-beta, v1.23.0-alpha, v1.22.1
Tagged with:
Written by IOTA Staking Team
Expert in IOTA staking, blockchain technology, and DeFi strategies. Providing actionable insights to help you maximize your staking rewards.
Related Articles

IOTA Protocol Weekly - May 19, 2026
May 19, 2026: Testnet release v1.23.2-rc introduces protocol version 26, runtime feature flag queries, and node pruning improvements.

IOTA Protocol Weekly - Mar 17, 2026
Mar 17, 2026: Testnet beta v1.19.0 introduces protocol v22 with congestion limit overshoot, Move-based auth, and faster recovery mechanisms.

IOTA Protocol Weekly - Apr 28, 2026
Apr 28, 2026: IOTA Protocol v1.22.0-beta introduces protocol version 25, removes zkLogin, updates JSON-RPC, GraphQL, CLI, and gRPC.
