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:
- 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.
- 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).
- 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.
- 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.
- 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