Skip to content

Release v1.9.0

Latest

Choose a tag to compare

@github-actions github-actions released this 15 Jun 10:21
· 33 commits to main since this release
Immutable release. Only release title and notes can be modified.
948196c

Release v1.9.0

Important

This release is required for the T6 network upgrade scheduled for testnet on June 18, 2026 16:00 CEST (1781791200) and mainnet on June 23, 2026 16:00 CEST (1782223200). Node operators must update before activation or their nodes will fall out of sync. This release activates T6 support for address-level receive policies and admin access keys, along with performance, stability, and operator tooling improvements.

Update Priority

User Class Priority
Validators High
RPC Nodes High

Nodes that are not updated will fall out of sync at the T6 activation timestamp.

Activation Times

Network Date Timestamp
Testnet June 18, 2026 16:00 CEST 1781791200
Mainnet June 23, 2026 16:00 CEST 1782223200

TIPs included with T6

The T6 network upgrade includes:

  1. TIP-1028 Address-Level Receive Policies: Lets receivers define which TIP-20 tokens and senders they accept, redirecting blocked transfers or mints to ReceivePolicyGuard for later recovery instead of reverting.
  2. TIP-1049 Admin Access Keys: Adds admin access keys for account key management and extends SignatureVerifier with stateful keychain/admin signature verification helpers.

Operators

What's Changed

  • Certified Follow Mode (#2551): Followers run a lightweight consensus engine that validates consensus certificates as a prerequisite to progressing execution state. Mainnet & Testnet nodes behind the public RPC will be switched over by setting --follow.experimental.certify and serving consensus_ rpcs. The flag is available and will become the default in the next release.
  • Consensus finalized block storage pruning (#3870, #5234): The consensus layer now stores blocks as a persisted cache, pruning it as execution layer finalization watermark rises. This will be automatically pruned for new nodes, for operators running existing nodes may delete the legacy archive at <consensus_storage>/engine-finalized_blocks-{freezer*,metadata,ordinal}. Make sure to retain <consensus_storage>/engine-finalized-blocks-prunable-{key,value}!
  • Embedded Network Identities (#4004): The network keys for Mainnet and Tesnet are embedded in the binaries. Certified followers can jump past several epochs when verifying a certificate against this key instead of progressing boundary to boundary.
  • Improved snapshot bootstrapping (#4482): Tempo snapshots now include finalization data in the manifest and dump the finalization certificate for startup recovery when the finalizations archive is empty.
  • Consensus execution actor no longer blocks on every EL interaction (#5312): Queues forkchoice/new-payload work through the executor actor to improve consensus responsiveness.
  • Consensus signing key CLI fix (#5276): Adds --secret support for signing consensus smart contract arguments.

Developers

Compatible Tooling Versions

Package Version Notes
tempo-alloy 1.9.0 Includes T6 admin access key support in SDK transaction builders.
tempo-primitives 1.9.0 Includes T6 admin access key primitives and signature encoding improvements.
tempo-contracts 1.9.0 Includes T6 AccountKeychain and SignatureVerifier ABI updates.
tempo-chainspec 1.9.0 Includes T6 activation timestamps and hardfork configuration.

T6 Protocol Changes

  • Address-level receive policies (#3800, #5476): TIP-1028 extends TIP-403/TIP-20 so receivers can configure accepted tokens and senders. Blocked TIP-20 transfers and mints succeed by redirecting funds to ReceivePolicyGuard, where they can later be claimed by the originator or configured recovery authority. Recovery addresses may not be precompile addresses.
  • Admin access keys (#4265): TIP-1049 adds authorizeAdminKey(...), isAdminKey(...), admin key authorization events, and account-bound admin key permissions. Admin keys can manage other keys but must not carry spending limits, call scopes, or expiry.
  • Keychain signature verification (#4302): SignatureVerifier now exposes stateful keychain verification helpers, including verifyKeychain(account, hash, signature) and verifyKeychainAdmin(account, hash, signature), for contracts that need to validate active access-key or root/admin signatures against AccountKeychain state.

EVM, Transaction, and Fee Semantics

  • Per-transaction fee accounting fix (#5506): Resets collected-fee state for each transaction so stale fee collection cannot affect same-transaction key authorization/use paths.
  • Transaction validation caching (#5522, #5518, #5513): Validation now reuses state reads across EVM validation, AMM liquidity planning, and ETH account/code checks, while avoiding unnecessary transaction/env clones and eager batch allocation.
  • Signature encoding optimization (#5553): Signature RLP length calculation now avoids materializing an intermediate Bytes buffer.
  • Dynamic base fee support in txpool ordering (#5243): Transaction priority is no longer cached under a fixed-base-fee assumption; ordering indices are recomputed or reindexed when the base fee changes.

Performance

  • Builder budget pacing (#5211): Payload building now reserves proposal-return time using recent local validation latency feedback instead of always mirroring projected builder work.
  • Parallelize builder computations (#4473): Refactors block building to offload transaction cloning and computation of transaction/receipt roots to a separate spawned task
  • Redundant builder precache disabled (#5419): Tempo nodes skip Reth’s basic parent-state pre-cache because the Tempo payload builder already uses the execution cache.
  • Execution/storage hot-path work (#3626, #4455, #5038, #5239, #4480): precomputes TIP-20 keccak slots, improves storage handler caching, removes useless TIP-403 SLOADs, and caches AA replay hash.
  • Transaction pool iteration and eviction improvements (#5432, #5546, #5585, #5590): Adds best-transaction size hints, moves AA allocation out of write locks, removes eviction entries with lightweight order keys, and defers dropping removed transactions until after block update windows.

Full Changelog: v1.5.2...v1.9.0