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.

Testnet release v1.23.2-rc is live with protocol version 26. This update focuses on runtime feature flag queries, node pruning, and several fixes across the stack. Not for mainnetβtestnet only.
Protocol Changes
- Protocol version bumped to
26. - Added
is_feature_enabled()toiota::protocol_config. This enables Move code to query protocol feature flags dynamically at runtime. Useful for conditionally enabling features based on protocol version.
Node Updates
- Debug format for
ObjectIdchanged from0x...toObjectId("0x..."). - Periodic checkpoint progress status messages added. Log spam reduced.
- Removed
epoch-db-pruning-period-secsconfig parameter. Pruning now happens automatically during every epoch transition, fixing a memory leak and ensuring consistent pruning during sync. - Improved state sync peer tracking:
- Handshake protocol added to prevent race conditions during peer registration.
- Stale peers are now handled properly.
- Periodic cleanup added to avoid memory bloat during long syncs.
Indexer Enhancements
- JSON-RPC now supports fetching objects from fallback KV storage when the indexer database lacks the requested version (due to pruning).
- Heads-up: the old IOTA Indexer CLI will be removed in
v1.24. It was deprecated inv1.3.1. Update any scripts or workflows still relying on it.
JSON-RPC Adjustments
- Removed
schemars/JsonSchemadependencies fromiota-types. JSON schema generation now handled exclusively iniota-json-rpc-types. - Sequence numbers in error messages now display in decimal format.
- Error strings for
IotaExecutionStatus::Failureare now derived fromExecutionErrorvariants. Field names in messages updated (e.g.,arg_idxβargument). - Fixed "Could not find the referenced object" errors in balance/object changes for concurrent shared-object transactions.
GraphQL Optimization
- Improved performance of
Mutation.executeTransactionBlock.
CLI Tweaks
Ownernow uses the SDK'sDisplayimplementation for output formatting (e.g.,Address(<addr>)instead ofAccount Address ( <addr> )).Argument::GasCoinnow displays asGasin CLI output and PTB snapshots.
Rust SDK Updates
SequenceNumbermethods removed due to externalization. Useiota-sdk-types::Versioninstead. Some methods likenext,increment, anddecrementare now fallible.IotaAddressmethods also moved toiota-sdk-types::Address. Key changes:random_for_testing_onlyrenamed torandom,to_innerreplaced byinto_bytes, andDefaultis no longer derived (useIotaAddress::ZERO).ObjectIDmethods removed and replaced byiota-rust-sdk::ObjectIdequivalents.- Digest types (
TransactionDigest,CheckpointDigest, etc.) now useiota_sdk_types::Digest. Changes include new method names (to_base58replacesbase58_encode) and updated tombstone constants (OBJECT_DIGEST_DELETEDβOBJECT_DELETED). GasCostSummarynow re-exported fromiota_sdk_types::gas.new_from_txn_effectsremoved; use the colocated free function iniota-core::checkpointsinstead.Identifier,StructTag, andTypeTagre-exported fromiota_sdk_types. Public APIs updated: struct fields are private, accessed via methods likeaddress()andname().
This release is still in RC, so test thoroughly before integrating into production workflows. For full details, see the release notes.
Sources: v1.23.2-rc
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 12, 2026
May 12, 2026: Testnet release v1.23.1-beta introduces protocol version 26, runtime feature flags, and node pruning improvements.

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.

IOTA Protocol Weekly - Apr 21, 2026
Apr 21, 2026: Protocol v24 ships on testnet with Starfish consensus, REST API removal, and new gRPC metrics.
