github tempoxyz/tempo v1.6.0
Release v1.6.0 - T3 (Wagner) Network Upgrade

7 hours ago

Release v1.6.0 — T3 (Wagner) Network Upgrade

Important

This release is required for the T3 network upgrade scheduled for testnet and mainnet. Node operators must update their nodes, otherwise your nodes will fall out of sync with the network. This release contains breaking changes for Developers, please read the release notes carefully and upgrade your SDK versions to the T3 compatible versions.

Update Priority

User Class Priority
Validators High
RPC Nodes High

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

Activation Times

Network Date Timestamp
Moderato (testnet) Apr 21st 2026 16:00 CEST 1776780000
Presto (mainnet) Apr 27th 2026 16:00 CEST 1777298400

TIPs included with T3

The T3 network upgrade implements five TIPs:

  1. TIP-1011: Enhanced Access Key Permissions — Extends AccountKeychain with periodic TIP-20 spending limits, per-target and per-selector call scopes, and recipient-constrained token calls for TIP 20 selectors. Enables fine-grained key restrictions for delegated signing use cases.
  2. TIP-1020: Signature Verification Precompile — New precompile that allows contracts to verify Tempo signature types (secp256k1, P256, WebAuthn) onchain, reusing the audited verification logic from transaction processing. Same gas schedule as transaction signatures (3k secp256k1, 8k P256/WebAuthn).
  3. TIP-1022: Virtual Forwarding Addresses — Introduces virtual TIP-20 deposit addresses that auto-forward to a registered master wallet. Eliminates sweep transactions and avoids per-deposit-address state creation and state bloat.
  4. TIP-1031: Consensus Context in Block Header — Encodes consensus metadata directly into Tempo block headers, making consensus context available to all nodes verifying the chain.
  5. TIP-1038: T3 Hardfork Improvements — Meta TIP collecting audit-driven bug fixes and gas correctness changes.

Operators

  • --consensus.enable-subblocks CLI flag removed: The flag has been removed and subblocks are disabled. No action needed — subblocks will be reintroduced in a later release. (#3510)
  • ENR fork ID enforcement enabled by default: --enforce-enr-fork-id is now true by default, filtering out discovered peers without a confirmed fork ID. (#3594)
  • Fetching bootnodes on startup: --tempo.bootnodes-endpoint CLI flag was added, allowing to fetch bootnodes on startup from a predefined endpoint #3582

Improved Peering & Discovery

We now publish curated, regularly-updated peer lists for our networks. To take advantage of faster and more reliable peer discovery,
add the following flag:

Mainnet: --tempo.bootnodes-endpoint https://peers.tempo. xyz
Testnet: --tempo.bootnodes-endpoint https://testnet-peers.tempo. xyz
This will become the default in an upcoming release.

Developers

This release contains breaking changes for Developers, please upgrade your sdk versions to the T3 compatible versions:

Package Version Notes
tempo-alloy (Rust) 1.6.0 Call-scopes, nonzero AA validity bounds, alloy 2.0.0
tempo-primitives (Rust) 1.6.0 NonZeroU64 validity bounds, stricter payment v2 criteria
tempo-contracts (Rust) 1.6.0 T3 precompile bindings
tempo-go (Go) 0.4.0 CallScope/SelectorRule builders, T3 authorizeKey ABI, 192-bit nonce key support
foundry (Foundry) nightly SignatureVerifier, AddressRegistry, cast keychain commands, T3 authorizeKey ABI

Breaking Changes:

  • Scoped access key validation moved to pre-execution: T3 call-scope matching is enforced at pre-execution rather than transaction validation, changing when scope violations surface. (#3537)
  • Nonzero AA validity bounds enforced: AA transactions with zero valid_before/valid_after or zero key expiry are now rejected. (#3500, #3501)
  • Spending limit clamping for T3 refunds: AccountKeychain spending limits are now clamped in T3 refund paths. (#3483)

What's Changed

  • Reth bumped to latest (b3f5e62 → 2026-04-12): #3245, #3332, #3464, #3515, #3549
  • Performance: Sparse trie state root in payload builder (#3476), keccak cache enabled (#3601), dual P256 signature verification backend (#3339)
  • RPC: tempo_simulateV1 with TIP-20 token metadata enrichment (#3449), tempo_forkSchedule endpoint (#3434), operator_peers API (#3589)
  • Networking: --tempo.bootnodes-endpoint for dynamic bootnode fetching (#3582), p2p-proxy subcommand integrated into main binary (#2780)
  • Node operations: History pruning support for non-validator nodes (#3511), reject history pruning on validators (#3298), validator DKG role info in CLI (#3538)
  • Transaction pool: Re-validate transactions on policy changes (#3532), unified validation logic between pool and EVM (#3463), improved AA transaction handling (#3541)
  • Alloy SDK: Call-scopes support in keychain (#3437), alloy bumped to 2.0.0 (#3569)

Full Changelog: v1.5.0...v1.6.0

Don't miss a new tempo release

NewReleases is sending notifications on new releases.