IOTA Protocol Weekly - Apr 14, 2026

Apr 14, 2026: Testnet update introduces protocol version 24, Starfish consensus, and major changes to Indexer and REST API.

IOTA Staking Team 3 min read
IOTA protocol update
Share:

Protocol version 24 is live on the IOTA testnet with the v1.21.1-beta release. This is a prerelease, so don't use it in production. Key updates include the switch to the Starfish consensus protocol, major changes to the Indexer, and the complete removal of the REST API.

Protocol Updates

  • Protocol version 24 is now active on the testnet.
  • Starfish consensus is implemented across all networks (#11073).
  • RocksDB updated to version 0.24.0 (#11044).
  • Added tx_data_bytes and signing_digest to AuthContext, along with a signing Intent representation in the IOTA framework (#11039).

Node Changes

  • Authority gRPC metrics renamed for consistency:
    • inflight_grpcauthority_grpc_inflight_requests
    • grpc_requestsauthority_grpc_requests
    • grpc_request_latencyauthority_grpc_request_latency (#11126).

Indexer Updates

  • Transaction object changes now include unwrapped objects. A new run-backfill object-changes-unwrapped command is available to populate historical data (#10988).
  • New iota_tryGetObjectBeforeVersion JSON-RPC endpoint returns BCS-encoded object bytes if found (#11040).
  • Pruning mechanism now uses per-table watermarks, allowing independent pruning per table. Retention policies can be configured with the --pruning-config-path argument (#10875).
    • Optimistic indexing now uses object-based dependency checks, making it more resilient to pruning.
    • --optimistic-pruner-batch-size CLI argument deprecated and no longer used.
    • RPC reads detect pruned data ranges and return appropriate errors.
    • More aggressive autovacuuming configured for pruned tables. Ensure sufficient shm_size (e.g., 2g) for Postgres containers.
  • Execution errors now propagate correctly to transaction response errors fields (#11116).
  • Migration required to remove the redundant objects_owner index from the Indexer. Update your Indexer and restart the writer service (#11120).
  • IndexerExecutor::run() is removed as part of the CheckpointReaderV1 deprecation. Migrate to IndexerExecutor::run_with_config() using CheckpointReaderV2. The remote_store_url parameter now accepts a RemoteUrl instead of a String (#11185).

JSON-RPC Updates

  • Transaction responses now include unwrapped objects in the objectChanges field (#10988).
  • effectiveCommissionRate added to IotaValidatorSummary in iotax_getLatestSystemStateV2, aligning with IIP8 (#10473).

GraphQL Updates

  • effectiveCommissionRate now available in validator query paths, per IIP8. For protocol versions before 20, effectiveCommissionRate = commissionRate (#10412).
  • Migration required for the Indexer also affects GraphQL. Update and restart the service (#11120).

CLI Changes

  • Deprecated commands removed: iota start, iota genesis, iota genesis-ceremony, and iota fire-drill (#10866).
  • TLS enabled for validator connections over gRPC (#10989).

gRPC Changes

  • TLS now supported for validator connections (#10989).

REST API Removal

  • The REST API is fully removed in this release. All users must transition to gRPC APIs (#10566).

This update brings significant changes to the IOTA testnet, particularly with the adoption of the Starfish consensus protocol and the removal of the REST API. Operators and developers should ensure their nodes and tools are updated to avoid disruptions. For full details, check the release notes.

Sources: v1.21.1-beta, v1.21.0-alpha, v1.20.1

I

Written by IOTA Staking Team

Expert in IOTA staking, blockchain technology, and DeFi strategies. Providing actionable insights to help you maximize your staking rewards.

Share this article:

Related Articles

```