supporting agave 4.2 in our solana indexer

spent today updating our solana indexer for agave 4.2. the main change was transaction v1 support across every ingestion path. for RPC block reads, we moved maxSupportedTransactionVersion from 0 to 1. this value is a ceiling, so the same path still accepts legacy and v0 transactions. for Yellowstone, we upgraded the Rust client and protobuf definitions. v1 messages now expose their inline transactionConfig instead of making us derive everything from Compute Budget instructions. the decoder detects the transaction version and persists the compute unit limit, loaded accounts data size limit, heap size and priorityFee. the fee detail matters. in v1, priorityFee is already the total number of lamports. treating it like the legacy micro-lamports-per-CU price would calculate the fee twice and corrupt every downstream metric. agave 4.2 also required changes unrelated to the v1 format. Token-2022 introduced new fields and shapes in parsed instructions, so the parser now accepts them without breaking older payloads. rewards can now contain DeactivatedStake, commissionBps and future values we may not know yet. the indexer preserves unknown variants instead of failing an entire block. we also removed the fixed 400 ms assumption for slot timing. timing is now calculated from observed slots. the last part was compatibility testing across legacy, v0 and v1, plus a parsing issue where stackHeight can explicitly be null.

More in Tech

Sacha Delhoux