<!-- tempo-docs-context -->
> Source: [/docs/changelog](https://tempo.xyz/developers/docs/changelog.md)
> Section: [Tempo EVM](https://tempo.xyz/developers/docs/development.md). Build on Tempo EVM: wallets and keys, payments, transactions and fees, TIP-20 Tokens, contracts, exchange, network details, nodes, protocol specifications, and changelog.
> [Documentation index](https://tempo.xyz/developers/llms.txt) · [Docs skill](https://tempo.xyz/developers/SKILL.md)

> Tempo MCP: Use `search`, `find_pages`, `read_page`, and `code` at `https://mcp.tempo.xyz` for Tempo and related documentation.
> If an indexed page is missing or reflects an older site, read this site’s [documentation index](https://tempo.xyz/developers/llms.txt) and Markdown pages directly.

<span id="changelog" />

# Node releases

Read the 20 most recent Tempo node releases. For network upgrades and how changes roll out, see the [Changelog overview](https://tempo.xyz/developers/docs/protocol/upgrades).

## tempo/v1.18.3 — Release v1.18.3 (2026-11-12)

This is a maintenance release with reliability fixes for consensus, block building, the transaction pool and RPC. It does not activate a network upgrade.

**Upcoming: image verification moves to GitHub build provenance.** Starting with the next release, Tempo container images will come with GitHub build-provenance attestations, and Cosign signatures will no longer be published. If you verify images with `cosign verify`, switch to `gh attestation verify` before upgrading ([guide](https://tempo.xyz/developers/docs/guide/node/installation#verifying-releases)). If you don't verify image signatures, there's nothing to change.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | Recommended |
| RPC Nodes | Recommended |

***

### <a id="operators"></a>Operators

#### Behaviour Changes

* **Debug consensus flags are rejected with the consensus engine** ([#9152](https://github.com/tempoxyz/tempo/pull/9152)): `tempo node` now fails at startup when `--debug.rpc-consensus-url` or `--debug.etherscan` is combined with validator mode or certified `--follow`. They remain allowed with `--dev` and `--follow --follow.nocertify`.

#### What's Changed

* **Configurable network learning** ([#8468](https://github.com/tempoxyz/tempo/pull/8468)): New CLI controls for maximum network reservation, percentile, fast rise and build-overrun tolerance used in proposal budgeting. Invalid combinations are rejected at startup. Defaults are unchanged.
* **Finalization verification** ([#8977](https://github.com/tempoxyz/tempo/pull/8977)): Followers reject unrepresentable block heights before verifying finalizations instead of panicking.
* **Transaction pool** ([#9057](https://github.com/tempoxyz/tempo/pull/9057), [#8819](https://github.com/tempoxyz/tempo/pull/8819), [#9066](https://github.com/tempoxyz/tempo/pull/9066), [#9065](https://github.com/tempoxyz/tempo/pull/9065), [#9146](https://github.com/tempoxyz/tempo/pull/9146)): Rejects access keys that expire before `valid_after` and transactions whose priority fee exceeds the max fee. Reports AA 2D transactions evicted on insert, skips non-propagatable AA 2D transactions in pooled lookups, and counts cached transaction data in pooled size so subpool byte limits reflect actual memory.
* **Block building** ([#9075](https://github.com/tempoxyz/tempo/pull/9075), [#9081](https://github.com/tempoxyz/tempo/pull/9081)): Prewarming skips AA transactions outside their time bounds or with expired keychain keys.
* **Mainnet default RPC** ([#9058](https://github.com/tempoxyz/tempo/pull/9058)): `rpc.mainnet.tempo.xyz` is the default mainnet RPC.
* **Dependencies** ([#8795](https://github.com/tempoxyz/tempo/pull/8795), [#9054](https://github.com/tempoxyz/tempo/pull/9054), [#9121](https://github.com/tempoxyz/tempo/pull/9121)): Updates reth from main (latest 2026-11-10).

***

### <a id="developers"></a>Developers

#### Integration Notes

* **AA traces** ([#9115](https://github.com/tempoxyz/tempo/pull/9115)): `callTracer`, parity and `ots_*` output for AA transactions is back to the v1.17 shape, with AA calls nested under the root. Execution is unchanged.
* **Simulation** ([#9061](https://github.com/tempoxyz/tempo/pull/9061), [#9062](https://github.com/tempoxyz/tempo/pull/9062)): `eth_call` and simulation no longer treat legacy calls as system transactions, and AA batches simulate without an extra create call.

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/tempo/v1.18.2...tempo/v1.18.3

## tempo/v1.18.2 — Release v1.18.2 (2026-11-06)

This is a maintenance release with security and reliability fixes for consensus, block execution and RPC. It does not activate a network upgrade.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | Recommended |

***

### <a id="operators"></a>Operators

#### What's Changed

**Security & Reliability**

* **EVM call input hardening**: Performance improvement for the EVM.
* **Trie iterator fix**: Updates reth with a fix for trie iterator seeks.
* **DKG robustness** ([#8787](https://github.com/tempoxyz/tempo/pull/8787), [#8852](https://github.com/tempoxyz/tempo/pull/8852), [#8709](https://github.com/tempoxyz/tempo/pull/8709), [#8808](https://github.com/tempoxyz/tempo/pull/8808)): Rejects and blocks peers that send undecodable DKG messages, rejects boundary outcomes for the wrong epoch when healing, limits per-peer DKG work, and restores dealer state correctly on restart.
* **Finalization and restarts** ([#8809](https://github.com/tempoxyz/tempo/pull/8809), [#8466](https://github.com/tempoxyz/tempo/pull/8466), [#8689](https://github.com/tempoxyz/tempo/pull/8689)): Checks cached and executed blocks at the finalized tip height, paces block production from the header timestamp, and keeps observed follower identities across restarts.
* **Consensus RPC subscriptions** ([#8770](https://github.com/tempoxyz/tempo/pull/8770), [#8766](https://github.com/tempoxyz/tempo/pull/8766)): Caps consensus subscriptions and drops slow subscribers. The node now warns when the consensus RPC module is served without being selected.
* **Dependencies** ([#8636](https://github.com/tempoxyz/tempo/pull/8636), [#8674](https://github.com/tempoxyz/tempo/pull/8674), [#8771](https://github.com/tempoxyz/tempo/pull/8771)): Patches RUSTSEC-2026-0386 (tokio), and bumps zstd and libz-sys.

***

### <a id="developers"></a>Developers

#### Integration Notes

* **2D nonces in tempo-alloy** ([#8888](https://github.com/tempoxyz/tempo/pull/8888)): 2D nonce keys are now filled from their own sequence by default.
* **Transaction requests** ([#8830](https://github.com/tempoxyz/tempo/pull/8830), [#8829](https://github.com/tempoxyz/tempo/pull/8829)): `TempoTransactionRequest` now forwards `set_input_kind`, and `AASigned` forwards Transaction methods to the inner transaction.

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/tempo/v1.17.0...tempo/v1.18.2

## tempo/v1.17.0 — Release v1.17.0 (2026-10-26)

> \[!IMPORTANT]
> This release is required for the T13 network upgrade. Validators and RPC operators must upgrade before their network's activation.

T13 ships the **Zones prover**, adds multi-block Tempo imports for Zones, makes block system calls explicit, and adds **OUSD as a fallback gas token**.

#### Update Priority

| User Class | Priority |
|---|---|
| Validators | High |
| RPC Nodes | High |

Nodes running an earlier release may fall out of sync at activation.

#### Activation Times

| Network | Activation | Unix timestamp |
|---|---|---|
| Moderato testnet | October 29, 2026, 16:00 CET | `1793286000` |
| Mainnet | November 3, 2026, 16:00 CET | `1793718000` |

#### TIPs included with T13

1. **[TIP-1098: Zones prover](https://tempo.xyz/developers/docs/protocol/upgrades/t13#zone-prover)**: Replays Zone transactions inside AWS Nitro so Tempo can verify an attestation of their execution before settlement. A temporary `NoProof` fallback permits settlement using sequencer signatures during rollout.
2. **[TIP-1096: Multi-block Tempo imports](https://tempo.xyz/developers/docs/protocol/upgrades/t13#multi-block-tempo-imports-for-zones)**: Allows Zones to catch up after downtime while keeping each batch's execution bounded for the prover.
3. **[TIP-1119: Explicit block system calls](https://tempo.xyz/developers/docs/protocol/upgrades/t13#explicit-block-system-calls)**: Runs only Tempo's required system calls, preventing upstream Ethereum changes from unexpectedly changing block validity.
4. **[TIP-1115: Ordered fallback fee tokens](https://tempo.xyz/developers/docs/protocol/upgrades/t13#ordered-fallback-fee-tokens)**: When no explicit fee token, stored preference or inferred token applies, selects pathUSD first, then OUSD if pathUSD cannot cover the maximum fee. One token must cover the full fee.

***

### <a id="operators"></a>Operators

#### Release Tags

The release-tag format changes from `v1.17.0` to **`tempo/v1.17.0`**. Update automation watching GitHub release tags and use **tempoup 0.0.18 or later**. Docker version tags and binary asset names remain unchanged. ([#8590](https://github.com/tempoxyz/tempo/pull/8590))

#### What's Changed

* **Validator fee claims** ([#7893](https://github.com/tempoxyz/tempo/pull/7893)): Adds `tempo consensus claim-fees` for validator entries or explicit recipients, including historical and deactivated entries.
* **Catch-up and restart reliability** ([#8263](https://github.com/tempoxyz/tempo/pull/8263), [#8338](https://github.com/tempoxyz/tempo/pull/8338)): Fixes follower stalls after `SYNCING` responses and finalized-tip tracking during replay.
* **Crash-recovery durability** ([#8544](https://github.com/tempoxyz/tempo/pull/8544)): Acknowledges finalized blocks only after execution state is durably persisted, preventing recovery from rolling back blocks already considered processed.
* **Payload building** ([#7996](https://github.com/tempoxyz/tempo/pull/7996)): Avoids unnecessary waits on queued prewarming during transaction invalidation in non-parallel mode.
* **P2P proxy** ([#8239](https://github.com/tempoxyz/tempo/pull/8239), [#8110](https://github.com/tempoxyz/tempo/pull/8110)): Improves concurrent peer requests and cached-header handling so missing headers do not unnecessarily block other requests.
* **Transaction validation** ([#8109](https://github.com/tempoxyz/tempo/pull/8109)): Keeps the state provider and cache aligned to the same chain tip.
* **Gas-price oracle** ([#8329](https://github.com/tempoxyz/tempo/pull/8329)): Sets the default ignore threshold and fallback priority fee to zero. Explicit `--gpo.*` overrides remain effective; this does not remove base fees.

***

### <a id="developers"></a>Developers

#### Integration Notes

* **Automatic OUSD fallback:** transactions reaching the protocol's fallback selection can pay fees in OUSD when pathUSD is insufficient. Explicit fee tokens, stored preferences and inference retain precedence.
* **Integrations that pin pathUSD:** integrations setting pathUSD explicitly, including through SDK chain-level defaults, or requiring a pathUSD balance must accept OUSD or remove those restrictions to support OUSD-only users.
* **Wallets and fee displays:** read the actual fee token from the receipt's `feeToken` field rather than assuming pathUSD.

See the [OUSD integration guidance](https://tempo.xyz/developers/docs/protocol/upgrades/t13#integration-impact).

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.16.1...tempo/v1.17.0

## v1.16.1 — Release v1.16.1 (2026-10-14)

### What's Changed

This patch release updates the built-in network identity for Tempo Mainnet. [More details](https://tempo.xyz/developers/docs/guide/node/consensus-and-dkg#network-identity-rotation).

New Mainnet Identity from epoch 2042:

```
0x8627d33753b0d90a8eae75363d6b393ab9204076545b3af6caf831903e4bedde4374f1106551b481fb5ea35e59d51c92165c963881c718216e3e4570a307c08885af55c274f19488f709afe021ca3d9e567138ab097860d9146e895407bea182
```

#### Update Priority

Update is recommended for RPC Nodes running on Tempo Mainnet.

## v1.16.0 — Release v1.16.0 (2026-10-06)

> \[!IMPORTANT]
> This release is required for the T12 network upgrade scheduled for testnet on October 8, 2026 16:00 CEST (`1791468000`) and mainnet on October 13, 2026 16:00 CEST (`1791900000`). Node operators must update before activation.
>
> This release contains a breaking change for integrators & developers, please check the release notes below.

T12 adds configurable nonces for parallel expiring transactions, enables MPP sessions for closed-loop stablecoins, relaxes ABI validation, aligns Stablecoin DEX quote and swap calculations, and adds authorized burns for TIP-20 tokens.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

Nodes running an earlier release can fall out of sync at the T12 activation timestamp.

#### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | October 8, 2026 16:00 CEST (14:00 UTC) | `1791468000` |
| Mainnet | October 13, 2026 16:00 CEST (14:00 UTC) | `1791900000` |

#### TIPs included with T12

1. **[TIP-1106: Configurable nonces for expiring transactions](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1106.md)**: Allows any `uint64` value in the existing `nonce` field. Distinct nonces let otherwise identical transactions be submitted in parallel within the same validity window, without coordinating sequential nonces or adding access-list entries solely for uniqueness.
2. **[TIP-1095: MPP sessions for closed-loop stablecoins](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1095.md)**: Enables recipient-restricted TIP-20 tokens to fund payment channels without requiring issuers to allowlist the channel reserve. Funding and settlement enforce TIP-403 permissions against the payer and payee; refunds can return unused funds to the original payer. Token pauses and account receive policies still apply.
3. **[TIP-1116: Relaxed ABI validation](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1116.md)**: Accepts trailing bytes in otherwise valid calls to Tempo's native contracts, restoring compatibility with calldata suffixes rejected at T11. Other strict decoding checks remain.
4. **[TIP-1088: Accurate swap quotes and cheaper execution](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1088.md)**: Uses the same per-order matching and rounding for quotes and swaps. For unchanged orderbook state, quotes match swap fill calculations. Removes redundant liquidity-tracking writes during swaps, order placement, and cancellation.
5. **[TIP-1006: Authorized burns for TIP-20 tokens](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1006.md)**: Adds `burnAt(from, amount)` for contracts granted `BURN_AT_ROLE`, enabling issuer-authorized burn-and-mint bridging without a separate user token approval. Token pauses, protected-address checks, and applicable access-key spending limits still apply.

***

### <a id="operators"></a>Operators

#### What's Changed

* **Finalization gossip enabled by default** ([#7950](https://github.com/tempoxyz/tempo/pull/7950)): Validators and certified followers now enable P2P finalization-certificate gossip automatically. Disable it with `--consensus.devp2p.finalizations=false`; it remains disabled in dev and uncertified follower modes.
* **Testnet network identity** ([#8064](https://github.com/tempoxyz/tempo/pull/8064)): Updates testnet network identities and activation epochs.
* **AA transaction pool** ([#8065](https://github.com/tempoxyz/tempo/pull/8065)): Refreshes the AA 2D pool's base fee on canonical state changes, keeping transaction ordering and eviction priorities current.
* **Expiring-nonce validation** ([#8066](https://github.com/tempoxyz/tempo/pull/8066)): Corrects pre-T12 expiring-nonce error classification while keeping ordinary nonce overflow permanently invalid.
* **Consensus snapshot replay** ([#8091](https://github.com/tempoxyz/tempo/pull/8091)): Resets the delivery batch on stale-skipped forkchoice updates to prevent snapshot replay from starving finalized deliveries.

***

### <a id="developers"></a>Developers

#### Compatible tooling versions

| Package | Version | Notes |
|---------|---------|-------|
| Foundry | [nightly (2026-10-03)](https://github.com/foundry-rs/foundry/releases/tag/nightly-8311e2e57095ecc32d057c6a9ca9a3e2a664a869) | Includes T12 hardfork support and updated Tempo precompile bindings. |
| viem | [2.57.3](https://github.com/wevm/viem/releases/tag/viem%402.57.3) | Includes TIP-1106 expiring nonce preservation and TIP-1006 `burnAt` support, added in 2.57.2. |
| pytempo | `0.6.1` | Adds T12 `burn_at` and `burn_at_role` helpers and updated ABIs. Requires Python 3.10+. |
| tempo-go | `0.6.1` | Adds T12 expiring nonce discriminators and `burnAt` bindings. |
| tempo-alloy | [1.16.0](https://github.com/tempoxyz/tempo/releases/tag/tempo-alloy%401.16.0) | Rust client and transaction builders with updated Tempo SDK dependencies. crates.io publication pending. |
| tempo-primitives | [1.16.0](https://github.com/tempoxyz/tempo/releases/tag/tempo-primitives%401.16.0) | Shared Tempo transaction and signature types. crates.io publication pending. |
| tempo-contracts | [1.16.0](https://github.com/tempoxyz/tempo/releases/tag/tempo-contracts%401.16.0) | Includes T12 `burnAt`, `BURN_AT_ROLE`, and `BurnAt` event bindings. crates.io publication pending. |
| tempo-chainspec | [1.16.0](https://github.com/tempoxyz/tempo/releases/tag/tempo-chainspec%401.16.0) | Includes T12 activation schedules for mainnet and testnet. crates.io publication pending. |
| tempo-hardfork | [1.16.0](https://github.com/tempoxyz/tempo/releases/tag/tempo-hardfork%401.16.0) | Includes T12 hardfork identifiers and activation timestamps. crates.io publication pending. |
| Zones | [v0.3.4](https://github.com/tempoxyz/zones/tree/v0.3.4) | Includes T12 support and inheritance of the parent chain’s hardfork schedule. |

#### Breaking behavior at T12

* **Native contract gas limits:** Before writing to storage, a native contract call must have more than 2,300 gas remaining or it fails with an out-of-gas error. Re-estimate hardcoded transaction gas limits on T12 testnet and test any explicit caps on gas forwarded to native contracts. Fees remain based on gas actually used.
* **DEX tick liquidity storage:** Stored tick liquidity totals stop updating at T12. Integrations reading those totals directly from storage must switch to `getTickLevel()` or sum the remaining amounts of active orders. Quote and swap APIs are unchanged.

#### Integration Notes

* Assign distinct `uint64` nonces to otherwise identical expiring transactions after activation. Ensure builders and signers preserve the supplied nonce, and remove access-list entries used only for uniqueness. Retry by resending the original signed transaction while it remains valid.
* Existing MPP channels need no migration. Closed-loop credits can be used with sessions after activation.
* Integrations affected by T11's strict ABI validation can restore calldata suffixes after T12 activates on their network.
* Grant `BURN_AT_ROLE` only to tightly scoped contracts, such as a bridge that burns only amounts users request to bridge out. `ISSUER_ROLE` and `BURN_BLOCKED_ROLE` do not grant access to `burnAt`.

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.15.1...v1.16.0

## v1.15.1 — Release v1.15.1 (2026-10-01)

### What's Changed

This patch release updates the built-in network identity for Tempo Testnet. [More details](https://tempo.xyz/developers/docs/guide/node/consensus-and-dkg#network-identity-rotation).

New Testnet (Moderato) Identity from epoch 1747:

```
0x967ae1a6d3ddbe5cb0fe5e6fc58e74249787b4a277619b549fed6609d04660540dd2449cd7174def35e40f544e5ad72d15d064191a205ed6e0c49619c68f975108b614d0d51def9a8416a10a07c4193bea0cbbc4252ec1b33f21095a5d7aa590
```

#### Update Priority

Update is recommended for RPC Nodes running on Tempo Testnet.

## v1.15.0 — Release v1.15.0 (2026-09-24)

#### Update Priority

This maintenance release improves node reliability, sync stability, and performance.

| User Class | Priority |
|------------|----------|
| Validators | Medium |
| RPC Nodes |  Medium |

***

### <a id="operators"></a>Operators

#### What's Changed

* **Commonware v2026.9.0**: Update to the latest version of commonware [#7450](https://github.com/tempoxyz/tempo/pull/7450)
* **Optional P2P Sync**: Enables validators to broadcast finalized-block confirmations and RPC nodes to receive them from peers, helping RPC nodes stay in sync with less reliance on their upstream connection. This feature is currently disabled by default, but available to opt into with `--consensus.devp2p.finalizations` [#7405](https://github.com/tempoxyz/tempo/pull/7405).
* **Consensus Network Identity Startup Enforcements**: Validators will check local executions state against the provided network identity and local DKG state. These checks allow for a trustless startup when booting up from a snapshot [#7630](https://github.com/tempoxyz/tempo/pull/7630)
* **Performance**: reduces signature/key-authorization encoding allocations, precompile cloning and repeated hashing, and unnecessary txpool checks. ([#7415](https://github.com/tempoxyz/tempo/pull/7415), [#7416](https://github.com/tempoxyz/tempo/pull/7416), [#7419](https://github.com/tempoxyz/tempo/pull/7419), [#7431](https://github.com/tempoxyz/tempo/pull/7431), [#7421](https://github.com/tempoxyz/tempo/pull/7421))

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.14.0...v1.15.0

## v1.14.0 — Release v1.14.0 (2026-09-07)

> \[!IMPORTANT]
> This release is required for the T11 network upgrade scheduled for testnet on September 9, 2026 16:00 CEST (`1788962400`) and mainnet on September 10, 2026 16:00 CEST (`1789048800`). Node operators must update before activation.
>
> This release contains a breaking change for integrators & developers, please check the release notes below.

T11 extends the expiring-nonce validity window (TIP-1093) and hardens precompile pricing and input decoding (TIP-1100, TIP-1105).

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

Nodes running an earlier release can fall out of sync at the T11 activation timestamp.

#### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | September 9, 2026 16:00 CEST (14:00 UTC) | `1788962400` |
| Mainnet | September 10, 2026 16:00 CEST (14:00 UTC) | `1789048800` |

#### TIPs included with T11

1. **[TIP-1093: Extend Expiring Nonce Window to Five Minutes](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1093.md)**: Extends the maximum validity window for expiring-nonce transactions from 30 seconds to five minutes and grows the circular replay-protection buffer from 300,000 to 3,000,000 entries, preserving the TIP-1009 sizing target of 10,000 expiring-nonce transactions per second.
2. **[TIP-1100: Increase Precompile Input Gas Cost](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1100.md)** ([#7281](https://github.com/tempoxyz/tempo/pull/7281)): Raises the calldata input charge for Tempo precompiles from 6 to 30 gas per 32-byte word, bringing worst-case ABI decoding throughput from roughly 200 MGas/s to 1 GGas/s while adding less than 768 gas for calls below 1 KiB.
3. **[TIP-1105: T11 Pricing Hardening Meta TIP](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1105.md)**:
   * **Strict ABI decoding** ([#7444](https://github.com/tempoxyz/tempo/pull/7444)): Every Tempo precompile dispatcher enables Alloy's strict ABI decoder ([Alloy Core v1.7.2](https://github.com/alloy-rs/core/releases/tag/v1.7.2)) while retaining the 16 MiB decoder memory limit.
   * **Priced duplicate validation** ([#7298](https://github.com/tempoxyz/tempo/pull/7298), [#7447](https://github.com/tempoxyz/tempo/pull/7447)): Checking precompile input lists for duplicate entries is now ~4x faster: median validation of a worst-case 65,536-entry list drops from 2.40 ms to 0.57 ms. AccountKeychain call-scope and recipient duplicate checks switch from hash-set insertion to sort-and-scan, and ZoneFactory rejects duplicate addresses within or across its allowed-account, gateway, and sequencer role lists.

***

### <a id="operators"></a>Operators

#### What's Changed

* **`tempo download` fix** (reth [#26934](https://github.com/paradigmxyz/reth/pull/26934)): Downloaded snapshots now resolve the configured minimal pruning defaults. `tempo download → tempo node` no longer requires additional flags after a snapshot restore.
* **Txpool address filter** ([#7363](https://github.com/tempoxyz/tempo/pull/7363)): Adds `--txpool.filter` to reject transactions by sender or direct call target at pool admission. Accepts comma-separated addresses or a file.
* **`tempo-localnet` image** ([#7050](https://github.com/tempoxyz/tempo/pull/7050)): Publishes a bootstrapped localnet container with each release, preconfigured with faucet, fee liquidity, and exchange setup.

***

### <a id="developers"></a>Developers

#### Breaking behavior at T11

* Precompile calldata must be strict, canonical ABI: gaps, overlaps, trailing data, and non-zero padding are rejected. Standard tooling (alloy/ethers/viem) is unaffected.
* Precompile calldata charge increases from 6 to 30 gas per 32-byte word. Re-check gas estimates and hardcoded limits for keychain, DEX, and zone flows.
* Duplicate entries in AccountKeychain call scopes, recipient lists, and ZoneFactory role lists are rejected.
* Expiring-nonce validity window extends from 30 seconds to five minutes.

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.13.2...v1.14.0

## v1.13.2 — Release v1.13.2 (2026-08-27)

This is a quality-of-life patch release for operators.

> \[!IMPORTANT]\
> Operators using `tempo download` to start nodes from snapshots please upgrade

### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | Recommended |
| RPC Nodes | Recommended |

### What's Changed

**UX Improvements**

* **Fixes `tempo download --force`** [#7256](https://github.com/tempoxyz/tempo/pull/7256):
  `tempo download --force` now deletes the entire consensus directory.
* **Fixes `tempo download` not fetching required consensus data** [#7154](https://github.com/tempoxyz/tempo/pull/7154): operators no longer need to provide `tempo download --skip-consensus=false` to download required consensus data. This now is the default.
* **Fixes `tempo download` requiring explicit `--datadir` and `--manifest-url` arguments** [#7264](https://github.com/tempoxyz/tempo/pull/7264): operators no longer need to provide these arguments (unless desired). With v1.13.2 the node uses the Tempo snapshot API to determine which manifest to download and correctly resolves the datadir.

**Bug Fixes:**

* **Fix rare race condition leaving consensus metadata invalid** [#7203](https://github.com/tempoxyz/tempo/pull/7203): never observed in real deployments but identified as a potential issue that would require operator intervention.
* **Fresh or stale nodes can participate in consensus faster** [#6950](https://github.com/tempoxyz/tempo/pull/6950): validator nodes that have been offline and are restarted with a fresh snapshot, or nodes that are freshly spun up, will now attempt to reconstruct their signing share by reading their last known epoch. If successful, they will participate in consensus immediately instead of waiting for a full cycle.
* **Fix nodes refusing to start up because they cannot find boundary headers** [#7244](https://github.com/tempoxyz/tempo/pull/7244): in certain scenarios nodes running with `tempo node --minimal` tried to read already pruned boundary blocks and shut down even though boundary headers were available and contained the desired data.
* **Noisily rejects startup on invalid data** [#7255](https://github.com/tempoxyz/tempo/pull/7255): due to manual intervention a node could be brought into a state where its available finalization certificates were older than persisted node metadata. This state is now detected early and a node shuts down with a clear error message.

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.13.1...v1.13.2

## v1.13.1 — Release v1.13.1 (2026-08-20)

> \[!IMPORTANT]
> **v1.13.1 is a security release. The coordinated operator rollout has been completed. Independent node operators should upgrade promptly.**

This patch hardens precompile input processing. No configuration changes or data migrations are required.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

### What’s Changed

* Hardened precompile input processing.
* Improved Zone validation performance.

## v1.13.0 — Release v1.13.0 (2026-08-17)

> \[!IMPORTANT]
> **This release is required for the T10 network upgrade scheduled for testnet on August 20, 2026 16:00 CEST (`1787234400`) and mainnet on August 21, 2026 16:00 CEST (`1787320800`).** Node operators must update before activation. T10 activates TIP-1091, adding the native ZoneFactory and installing the canonical Zone Portal, Verifier, and Messenger runtimes.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

Nodes running an earlier release can diverge when T10 installs the Zone contracts or processes a native ZoneFactory call.

#### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | August 20, 2026 16:00 CEST (14:00 UTC) | `1787234400` |
| Mainnet | August 21, 2026 16:00 CEST (14:00 UTC) | `1787320800` |

#### TIPs included with T10

1. **[TIP-1091: Enshrined ZoneFactory](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1091.md)**: Adds an owner-gated native ZoneFactory at `0x5AF2000000000000000000000000000000000000`. Zones receive deterministic portal addresses in the reserved `0x5AD0` namespace, while shared Portal, Verifier, and Messenger runtimes are installed at protocol-managed addresses. Zone creation validates the initial sequencer set, settlement threshold, TIP-403 token-policy binding, access roles, token metadata, and initial token-enablement commitment.

***

### Developers

#### SDK Crate Versions

No new SDK crate versions accompany this binary release.

#### T10 Protocol Changes

* **Native ZoneFactory and deterministic portals** ([#6874](https://github.com/tempoxyz/tempo/pull/6874), [#6990](https://github.com/tempoxyz/tempo/pull/6990)): Activates TIP-1091 at T10, installs the factory and shared Zone runtimes atomically, and creates portals as minimal proxies at deterministic `0x5AD0` addresses.
* **Zone Portal leadership and initial token commitment** ([#6987](https://github.com/tempoxyz/tempo/pull/6987), [#7054](https://github.com/tempoxyz/tempo/pull/7054), [#7150](https://github.com/tempoxyz/tempo/pull/7150)): Records leader transitions, commits the initial token-enablement event into portal state, and applies token metadata and same-block enablement bounds during native zone creation.
* **Portal authorization and pause state** ([#7175](https://github.com/tempoxyz/tempo/pull/7175), [#7171](https://github.com/tempoxyz/tempo/pull/7171)): Uses one role mapping for sequencers, accounts, and gateways; adds a pause guardian and typed capabilities; and allows proof-verified batch submission while asset flows are paused.
* **Canonical Zone runtimes** ([#6986](https://github.com/tempoxyz/tempo/pull/6986), [#6996](https://github.com/tempoxyz/tempo/pull/6996), [#7151](https://github.com/tempoxyz/tempo/pull/7151)): Updates the embedded Portal, Verifier, and Messenger bytecode installed at T10, including bounded callback revert-data handling in the Messenger.

#### Consensus, EVM, and SDK Integration

* **Revm and Reth update** [#6946](https://github.com/tempoxyz/tempo/pull/6946): Updates Revm to `42.0.1`, `revm-inspectors` to `0.41.2`, and Reth to `2.4.0`. This brings block building and validation performance improvements of up to 10%.

### Operators

* **Commonware Upgrade** ([#7009](https://github.com/tempoxyz/tempo/pull/7009)). Upgrade to commonware `2026.7.0`. Better tracing, perf improvements, `--strict-startup` is now the default
  * Validation nodes require finalization certificates to anchor their start; certs are now provided with all tempo published snapshots.
* **Notarized tip driven execution** ([#7057](https://github.com/tempoxyz/tempo/pull/7057)). Validators now proactively reach the pending notarized tip.
  * When load testing multi-region setups some validators would struggle to reach the pending notarized tip and be unable to contribute to consensus.
  * Validator block sync is now forced through Consensus Layer P2P only.
  * As a side effect, if a validator falls behind too much (3 epochs, 64800 blocks), it needs to now be restarted from a fresh snapshot with (see `$ tempo download` to download one)
*

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.12.0...v1.13.0

## v1.12.0 — Release v1.12.0 (2026-08-03)

> \[!IMPORTANT]
> **This release is required for the T9 network upgrade scheduled for testnet on August 5, 2026 16:00 CEST (`1785938400`) and mainnet on August 6, 2026 16:00 CEST (`1786024800`).** Node operators must update before activation. T9 activates TIP-1092, introducing TIP-403 transfer-policy bindings for TIP-20 tokens.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

After activation, nodes running an earlier release can diverge when a block uses T9 policy-binding behavior or the new TIP-403 interfaces.

#### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | August 5, 2026 16:00 CEST (14:00 UTC) | `1785938400` |
| Mainnet | August 6, 2026 16:00 CEST (14:00 UTC) | `1786024800` |

#### TIPs included with T9

The T9 network upgrade includes:

1. **[TIP-1092: TIP-20 Policy IDs in TIP-403](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1092.md)**: Adds token-to-policy bindings to TIP-403 so transfer-policy selection can be proven from registry state. New TIP-20 tokens register their policy during creation. Existing tokens continue to use their token-local policy until a permissionless migration copies it into TIP-403, or an administrator changes the policy after activation. Zone and provable-contract flows must require `tokenTransferPolicyId(token).isSet == true`; an unset lookup can still return the token's legacy policy ID.

### Operators

#### What's Changed

* **Reliable finalized-block feeds** ([#6968](https://github.com/tempoxyz/tempo/pull/6968), [#6989](https://github.com/tempoxyz/tempo/pull/6989)): Drives consensus RPC state and subscriptions from persisted marshal finalizations, including while a node is syncing, and removes reorg-prone notarized block delivery.
* **Follower RPC lifetime fix** ([#6920](https://github.com/tempoxyz/tempo/pull/6920)): Keeps the execution node alive for the full follower-engine lifetime so HTTP RPC and other execution services do not shut down after startup.
* **Validator fee-token command** ([#6906](https://github.com/tempoxyz/tempo/pull/6906)): Adds `tempo consensus set-validator-token`, with verified-token lookup by symbol or name, raw-address support, and `--list` output for the connected chain.
* **Snapshot restore planning** ([#6929](https://github.com/tempoxyz/tempo/pull/6929)): Extends `tempo download --print-plan-json` to report the selected consensus archive together with Reth's execution-layer archives without downloading or modifying data directories.
* **Consensus status output** ([#6933](https://github.com/tempoxyz/tempo/pull/6933)): Adds the number of blocks remaining before the next epoch to `tempo consensus info`.
* **Signing-key file permissions** ([#6840](https://github.com/tempoxyz/tempo/pull/6840)): Creates encrypted signing-key files with owner-only permissions on Unix and tightens permissions when replacing an existing file.

### Developers

#### SDK Crate Versions

No new SDK crate versions accompany this binary release.

| Package | Version | Notes |
|---------|---------|-------|
| `tempo-alloy` | `1.10.1` | Unchanged from v1.11.0. |
| `tempo-primitives` | `1.10.1` | Unchanged from v1.11.0. |
| `tempo-contracts` | `1.10.1` | Unchanged from v1.11.0. |
| `tempo-chainspec` | `1.10.1` | Unchanged from v1.11.0. |
| `tempo-hardfork` | `1.10.1` | Unchanged from v1.11.0. |

#### T9 Protocol Changes

* **TIP-403 token-policy bindings** ([#6846](https://github.com/tempoxyz/tempo/pull/6846), [#6935](https://github.com/tempoxyz/tempo/pull/6935)): Adds the T9-gated `tokenTransferPolicyId(address)` and `migrateTransferPolicyIds(address[])` interfaces, distinguishes an unset binding from policy ID `0`, and preserves legacy fallback for unmigrated tokens.
* **Token creation, updates, and migration** ([#6846](https://github.com/tempoxyz/tempo/pull/6846)): New T9 tokens write their initial binding atomically. Permissionless migration skips invalid or already-bound addresses, copies the current local policy, and deletes the local slot. An administrator policy update writes the new registry binding while leaving the legacy slot untouched.

#### EVM, Transaction Pool, and Genesis Tooling

* **Custom fee-manager integration** ([#6908](https://github.com/tempoxyz/tempo/pull/6908), [#6917](https://github.com/tempoxyz/tempo/pull/6917), [#6928](https://github.com/tempoxyz/tempo/pull/6928), [#6938](https://github.com/tempoxyz/tempo/pull/6938)): Lets downstream nodes supply their configured EVM to transaction-pool validation, customize fee-token resolution and validation, and programmatically disable only the FeeAMM liquidity admission check. Tempo's default USD-only validation remains unchanged.
* **Reusable TIP-20 mutation APIs** ([#6927](https://github.com/tempoxyz/tempo/pull/6927), [#6930](https://github.com/tempoxyz/tempo/pull/6930)): Exposes checked balance mutation and transfer helpers for downstream fee managers without requiring direct TIP-20 storage writes.
* **EIP-2935 genesis provisioning** ([#6925](https://github.com/tempoxyz/tempo/pull/6925)): Adds the canonical block-hash history account to genesis state generated by `tempo-xtask`, allowing Zone deployments to anchor batches to L1 block hashes.

#### Testing, Benchmarks, and Tooling

* Added focused driver, resolver, and executor actor coverage for follower synchronization ([#6896](https://github.com/tempoxyz/tempo/pull/6896), [#6899](https://github.com/tempoxyz/tempo/pull/6899), [#6900](https://github.com/tempoxyz/tempo/pull/6900)).
* Added StablecoinDEX gas and overflow snapshots across historical hardforks through T9 ([#6967](https://github.com/tempoxyz/tempo/pull/6967)).
* Added a stable public benchmark preset and synchronized multi-region benchmark workflows with GCP support ([#6905](https://github.com/tempoxyz/tempo/pull/6905), [#6977](https://github.com/tempoxyz/tempo/pull/6977)).

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.11.0...v1.12.0

## v1.11.0 — Release v1.11.0 (2026-07-22)

> \[!IMPORTANT]
> **This release is required for the T8 network upgrade scheduled for testnet on July 27, 2026 16:00 CEST (`1785160800`) and mainnet on July 30, 2026 16:00 CEST (`1785420000`).** Node operators must update before activation or their nodes will fall out of sync. T8 activates versioned StablecoinDEX order storage, FeeAMM policy changes, current-committee persistence, and the final phase of TIP-20 reward deprecation.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

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

#### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | July 27, 2026 16:00 CEST (14:00 UTC) | `1785160800` |
| Mainnet | July 30, 2026 16:00 CEST (14:00 UTC) | `1785420000` |

#### TIPs included with T8

The T8 network upgrade includes:

1. **[TIP-1042 FeeAMM TIP-403 Policy Exemptions](https://tips.sh/1042)**: Fee collection checks the fee payer as an authorized sender without requiring the FeeManager to be an authorized recipient. Public FeeAMM operations retain policy enforcement, with explicit authorization requirements for liquidity providers and recipients on `mint` and `burn`. Existing pools are grandfathered and are not revalidated or migrated at activation.
2. **[TIP-1062 Versioned DEX Order Storage](https://tips.sh/1062)**: Introduces version-dispatched StablecoinDEX order storage. Legacy version-0 orders remain readable, while T8 writes compact version-1 records that reduce an order from six storage slots to four. Post-T8 flip-order rewrites migrate the rewritten record through the versioned storage path.
3. **[TIP-1070 Current Committee State](https://tips.sh/1070)**: Activates the `CurrentCommittee` precompile at `0xC077E00000000000000000000000000000000000`. An epoch-boundary system call persists the committee selected by the finalized DKG outcome, including the fallback outcome when DKG does not complete, so contracts can read the committee that is actually effective for consensus.
4. **[TIP-1075 Deprecate TIP-20 Rewards](https://tips.sh/1075)**: Completes the two-stage reward shutdown begun at T7. After T8, transfers, mints, burns, fee refunds, and other balance-changing paths stop checkpointing reward accumulators. Rewards settled before T8 remain claimable indefinitely; lazy rewards that were not checkpointed before activation are forfeited.
5. **[TIP-1087 V2 DEX Order Storage with Book Indexes](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1087.md)**: Adds version-2 orders that replace the repeated 32-byte book key with a compact index, reducing indexed orders from four slots to three. New orderbooks persist their index automatically. Pre-existing orderbooks remain functional with version-1 writes until their index is supplied by off-chain migration tooling through the new `setBookIndex` API.

#### Breaking Changes

* **Consensus-breaking upgrade**: T8 changes protocol state-transition rules. Nodes that do not run this release before activation will reject or produce invalid blocks after the T8 timestamp.
* **TIP-20 pending reward behavior changes**: T8 disables reward-accumulator updates on ordinary balance changes. Only reward balances settled before activation remain claimable; integrations must not rely on a post-T8 transfer to checkpoint older lazy accruals.
* **StablecoinDEX now contains mixed order layouts**: Readers and writers must use the versioned order-storage abstraction. Direct assumptions about the legacy six-slot order layout are invalid for T8-created orders, and unknown versions must be rejected.
* **DEX index migration is off-chain assisted**: Existing orderbooks are not scanned or migrated automatically. They continue writing version-1 orders until `setBookIndex(uint32)` records a verified index; tooling may also use `bookIndexForKey(bytes32)` and `bookKeyForIndex(uint32)`.
* **FeeAMM policy authorization changes**: Fee collection no longer checks FeeManager recipient authorization, while T8 liquidity `mint` and `burn` paths enforce the TIP-1042 participant checks. Existing pools are not revalidated.
* **New reserved precompile surface**: The `CurrentCommittee` precompile becomes active at `0xC077E00000000000000000000000000000000000`. Tooling and contracts must treat this address as reserved protocol space.
* **Consensus snapshot archive layout changed**: Snapshot manifests are written at the archive root instead of under `consensus/`. Snapshot producers and consumers that depend on the old prefix must be updated.

***

### Operators

#### What's Changed

* **T8 activation schedule** ([#6866](https://github.com/tempoxyz/tempo/pull/6866), [#6888](https://github.com/tempoxyz/tempo/pull/6888)): Adds the T8 chainspec configuration and schedules activation for July 27 on testnet and July 30 on mainnet.
* **Consensus-enabled snapshot startup** ([#6536](https://github.com/tempoxyz/tempo/pull/6536), [#6714](https://github.com/tempoxyz/tempo/pull/6714), [#6796](https://github.com/tempoxyz/tempo/pull/6796)): When a snapshot includes consensus certificates, starts fresh nodes from its smallest certified height; otherwise the existing execution-finalized fallback remains in place. This also relaxes archive contents to hash/size and safe-unpack constraints, moves the manifest to the archive root, adds certification-anchor recovery scenarios, and passes `--force` through to the wrapped Reth download command.
* **CL-to-EL backfill and startup floors** ([#6517](https://github.com/tempoxyz/tempo/pull/6517), [#6723](https://github.com/tempoxyz/tempo/pull/6723), [#6872](https://github.com/tempoxyz/tempo/pull/6872)): Simplifies the DKG/executor startup path, backfills CL blocks to the finalized floor before the main executor loop, treats an unfillable archive backfill as a hard error, and preserves a nonzero marshal startup floor across restarts.
* **Execution/consensus reconciliation** ([#6790](https://github.com/tempoxyz/tempo/pull/6790), [#6801](https://github.com/tempoxyz/tempo/pull/6801)): Makes hybrid gap tracking aware of the Reth finalized watermark and permits EL to be ahead of CL when the overlapping finalized block hashes agree, avoiding unnecessary rewinds while still rejecting inconsistent state.
* **Finalized archive observability** ([#6775](https://github.com/tempoxyz/tempo/pull/6775)): Reports the contents of the finalized block archive to make snapshot and recovery state easier to diagnose.
* **DKG correctness and diagnostics** ([#6809](https://github.com/tempoxyz/tempo/pull/6809), [#6834](https://github.com/tempoxyz/tempo/pull/6834)): Corrects invalid dealer-log diagnostics and preserves first-write-wins finalized dealer logs while filling incomplete caches, keeping validators on the same DKG input.
* **Consensus proposal metrics** ([#6831](https://github.com/tempoxyz/tempo/pull/6831)): Counts canonical self-proposals even when EL is already at or ahead of the CL finalized block.
* **Regenesis validator-state safety** ([#6599](https://github.com/tempoxyz/tempo/pull/6599), [#6745](https://github.com/tempoxyz/tempo/pull/6745), [#6820](https://github.com/tempoxyz/tempo/pull/6820)): Synchronizes `ValidatorConfigV2` during regenesis, fully replaces its block-0 current and historical state when validator counts change, streams large changesets to avoid OOMs, and fixes a process-seed-dependent static-file provider self-deadlock.
* **Follower reliability** ([#6392](https://github.com/tempoxyz/tempo/pull/6392), [#6754](https://github.com/tempoxyz/tempo/pull/6754), [#6783](https://github.com/tempoxyz/tempo/pull/6783)): Enforces websocket upstreams, adds keepalive pings and reconnect behavior, and uses a follower-specific executor that verifies finalizations, advances the marshal, and maintains a one-epoch sync window.
* **Consensus operations and tooling** ([#6229](https://github.com/tempoxyz/tempo/pull/6229), [#6545](https://github.com/tempoxyz/tempo/pull/6545), [#6633](https://github.com/tempoxyz/tempo/pull/6633), [#6678](https://github.com/tempoxyz/tempo/pull/6678)): Lowers noisy cut-short event logs, defines a three-epoch `--minimal` sync window, moves identity transitions from node RPC to an xtask, and exercises strict-startup behavior in end-to-end testing.
* **Hardware telemetry** ([#6814](https://github.com/tempoxyz/tempo/pull/6814)): Exposes a static anonymized hardware metric covering CPU, core count, memory, and filesystem types while omitting disk names and mount sources.
* **Reth and Alloy updates** ([#6797](https://github.com/tempoxyz/tempo/pull/6797), [#6878](https://github.com/tempoxyz/tempo/pull/6878)): Updates the pinned Reth revision and Alloy core dependencies used by the node.

***

### Developers

#### SDK Crate Versions

| Package | Version | Notes |
|---------|---------|-------|
| `tempo-alloy` | `1.10.1` | Published since the previous binary release. |
| `tempo-primitives` | `1.10.1` | Published since the previous binary release. |
| `tempo-contracts` | `1.10.1` | Includes T8 ABI/address surfaces. |
| `tempo-chainspec` | `1.10.1` | Includes the standalone hardfork dependency. |
| `tempo-hardfork` | `1.10.1` | New crate for Tempo hardfork identifiers and activation schedules. |

#### T8 Protocol Changes

* **FeeAMM TIP-403 policy exemptions** ([#6604](https://github.com/tempoxyz/tempo/pull/6604), [#6605](https://github.com/tempoxyz/tempo/pull/6605), [#6808](https://github.com/tempoxyz/tempo/pull/6808)): Implements TIP-1042's T8 fee-collection exemption, adds the liquidity lifecycle authorization gates, updates txpool policy invalidation to stop tracking the exempt FeeManager recipient side, and documents that existing pools are grandfathered.
* **Versioned StablecoinDEX order storage** ([#4075](https://github.com/tempoxyz/tempo/pull/4075), [#6546](https://github.com/tempoxyz/tempo/pull/6546)): Adds version detection and dispatch for legacy and compact order layouts, routes reads and mutations through the storage abstraction, and safely rewrites filled flip orders into the active T8 format.
* **V2 indexed DEX orders** ([#6682](https://github.com/tempoxyz/tempo/pull/6682), [#6691](https://github.com/tempoxyz/tempo/pull/6691), [#6767](https://github.com/tempoxyz/tempo/pull/6767)): Adds compact `bookIndex` storage, the orderbook index migration/read ABI, and mixed V0/V1/V2 linked-list handling. Unindexed legacy books deliberately fall back to V1.
* **Current committee persistence** ([#5215](https://github.com/tempoxyz/tempo/pull/5215), [#6209](https://github.com/tempoxyz/tempo/pull/6209), [#6819](https://github.com/tempoxyz/tempo/pull/6819)): Adds the `ICurrentCommittee` ABI and T8 precompile, persists the DKG outcome at epoch boundaries, and disables TIP-1060 accounting for system-only committee writes so committee shrink/regrowth cannot leave storage credits behind.
* **TIP-20 rewards final shutdown** ([#5433](https://github.com/tempoxyz/tempo/pull/5433)): Stops reward hooks in ordinary balance-changing paths at T8 while preserving claims for settled balances and leaving legacy reward storage intact.
* **T8 invariant and integration coverage** ([#6804](https://github.com/tempoxyz/tempo/pull/6804), [#6805](https://github.com/tempoxyz/tempo/pull/6805)): Updates FeeAMM invariants for T8 and adds storage-credit invariants around the new system behavior.

#### EVM, Transactions, RPC, and Performance

* **Protocol fee extensibility** ([#6879](https://github.com/tempoxyz/tempo/pull/6879)): Adds context-aware protocol-fee hooks so downstream EVMs can install a custom `StorageCtx` without duplicating Tempo's handler logic.
* **FeeAMM error diagnostics** ([#6698](https://github.com/tempoxyz/tempo/pull/6698)): Reports the user-token to validator-token pair when a fee swap fails for insufficient liquidity, with a generic fallback when the pair cannot be resolved.
* **Account-abstraction RPC and pool fixes** ([#6859](https://github.com/tempoxyz/tempo/pull/6859), [#6871](https://github.com/tempoxyz/tempo/pull/6871)): Shares AA request detection between transaction construction and simulation so gas estimation uses the correct intrinsic cost, and removes stale ordering keys during live two-dimensional-nonce replacements.
* **Precompile downstream integration** ([#6650](https://github.com/tempoxyz/tempo/pull/6650), [#6845](https://github.com/tempoxyz/tempo/pull/6845), [#6869](https://github.com/tempoxyz/tempo/pull/6869)): Exposes dispatch helpers, supports custom downstream dispatch errors, and makes the generated inner helpers reusable by downstream precompiles.
* **Speculative parallel payload building** ([#6238](https://github.com/tempoxyz/tempo/pull/6238), [#6641](https://github.com/tempoxyz/tempo/pull/6641), [#6736](https://github.com/tempoxyz/tempo/pull/6736)): Adds default-off speculative prewarming and storage-action replay for payment transactions, ensures payload construction always performs an initial build, and keeps the experimental builder flag out of normal help output.
* **Storage-action replay and DEX hot paths** ([#6502](https://github.com/tempoxyz/tempo/pull/6502), [#6645](https://github.com/tempoxyz/tempo/pull/6645), [#6649](https://github.com/tempoxyz/tempo/pull/6649), [#6662](https://github.com/tempoxyz/tempo/pull/6662), [#6666](https://github.com/tempoxyz/tempo/pull/6666), [#6670](https://github.com/tempoxyz/tempo/pull/6670), [#6768](https://github.com/tempoxyz/tempo/pull/6768)): Expands replayable storage actions, validates cached reads and writes without recording replay writes again, adds FeeAMM swap replay, and removes redundant DEX deletes and maker reads.

#### Testing, Benchmarks, and Tooling

* Added certification-anchor snapshot scenarios and strict-startup end-to-end coverage ([#6796](https://github.com/tempoxyz/tempo/pull/6796), [#6678](https://github.com/tempoxyz/tempo/pull/6678)).
* Added multi-region benchmark workflows, scheduled runs, telemetry wiring, and neobank/parameterized transaction presets ([#6726](https://github.com/tempoxyz/tempo/pull/6726), [#6821](https://github.com/tempoxyz/tempo/pull/6821), [#6839](https://github.com/tempoxyz/tempo/pull/6839), [#6740](https://github.com/tempoxyz/tempo/pull/6740), [#6595](https://github.com/tempoxyz/tempo/pull/6595)).
* Added StablecoinDEX microbenchmarks and storage-action snapshots for two-dimensional nonces and FeeAMM flows ([#6618](https://github.com/tempoxyz/tempo/pull/6618), [#6627](https://github.com/tempoxyz/tempo/pull/6627), [#6497](https://github.com/tempoxyz/tempo/pull/6497)).

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.10.1...v1.11.0

## v1.10.2 — Release v1.10.2 (2026-07-17)

This patch release updates the v1.10.x release line with alloy dependency updates.

### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

Operators running v1.10.x should upgrade to v1.10.2.

## v1.10.1 — Release v1.10.1 (2026-06-29)

> \[!IMPORTANT]
> **This release is required for the T7 network upgrade scheduled for testnet on July 2, 2026 16:00 CEST (`1783000800`) and mainnet on July 9, 2026 16:00 CEST (`1783605600`).** Node operators must update before activation or their nodes will fall out of sync. This release activates T7 support for dynamic base fees, storage credits, and reusable storage accounting across contract, DEX, and channel-reserve state, with the goal of lowering ordinary Tempo transaction costs and making repeated storage use cheaper.

> \[!NOTE]
> **v1.10.1 supersedes v1.10.0.** The v1.10.0 release was published without release assets after the release workflow failed the Cargo workspace-version check. v1.10.1 uses the same T7 release line with the Cargo workspace version corrected and includes the generated release assets.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

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

#### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | July 2, 2026 16:00 CEST | `1783000800` |
| Mainnet | July 9, 2026 16:00 CEST | `1783605600` |

#### TIPs included with T7

The T7 network upgrade includes:

1. **[TIP-1060 Storage Credits](https://tips.sh/1060)**: Replaces one-time storage-clearing refunds with per-account storage credits that can offset later storage creations by the same account. Adds the `StorageCredits` precompile at `0x1060000000000000000000000000000000000000`.
2. **[TIP-1064 StablecoinDEX Order Storage Credits](https://tips.sh/1064)**: Adds maker-attributed reusable storage accounting for StablecoinDEX order records, so makers receive credit for reusable order storage they previously freed.
3. **[TIP-1067 Dynamic Base Fee](https://tips.sh/1067)**: Replaces the fixed base fee with a bounded EIP-1559-style controller capped at `12_000_000_000` attodollars per gas, floored at `600_000_000`, with a `10_000_000` gas target.
4. **TIP-1066 Channel Storage Credits**: Adds payer-scoped reusable storage credits for TIP-20 channel reserve state, including the `storageCredits(address)` channel-reserve view.

#### Gas Cost and Benchmarking Highlights

| Area | T6 | T7 | Diff | Notes |
|------|----|----|------|-------|
| Base-fee ceiling (50k-gas transfer) | `$0.001` | cap `$0.0006` · floor `$0.00003` | cap `−40%` · floor `−97%` | The T7 cap is `12_000_000_000` attodollars per gas; the floor is `600_000_000`, 20x below the cap. |
| Observed transfer-like costs | avg `$0.0037857` · median `$0.0011855` (1k txs); avg `$0.0008975` · median `$0.0007657` (598 steady-state) | — | — | Removing state-creation-like txs (`gas_used >= 250k`) left 598 steady-state transfers; excluding two IQR outliers gives `$0.0008929` avg. T7's lower base-fee cap/floor reduces the per-gas component further for equivalent gas profiles. |
| Credited storage creation (SSTORE `0→x`) | `250,000` gas | `5,000` residual + `245,000` creditable | `−98%` | TIP-1060 splits the previous creation component into a `5,000` gas residual plus a `245,000` gas creditable portion. |
| Channel reserve gas | open-existing `1,055,229` · open-first `1,302,429` | open-existing `294,425` · open-first `791,625` | open-existing `−72.1%` · open-first `−39.2%` | Call-level numbers exclude separate approval gas; implicit approvals for MPP/DEX/FeeAMM improve user-total comparisons for flows that previously required explicit approvals. |

#### Breaking Changes

* **Consensus-breaking upgrade**: T7 changes protocol state transition rules. Nodes that do not run this release before activation will reject or produce invalid blocks after the T7 timestamp.
* **Base fee is no longer fixed**: After T7, `baseFeePerGas` is computed from parent gas usage and clamped to the T7 floor/cap range. Wallets, fee estimators, transaction builders, tests, and monitoring that assume the T1 fixed base fee of `20_000_000_000` attodollars per gas must handle a changing base fee.
* **Storage gas and refund semantics changed**: T7 removes the legacy storage-clearing refund, splits the TIP-1000 SSTORE creation cost into a `5_000` gas residual plus a `245_000` gas creditable portion, and removes the EIP-3529 one-fifth refund cap for T7 refunds. Contracts and tests that depend on exact SSTORE gas/refund behavior should be revalidated.
* **TIP-20 reward mutators are disabled at T7**: `setRewardRecipient` and `distributeReward` become no-ops after T7. Integrators relying on new reward opt-ins or reward distributions must adjust their flows before activation.
* **New reserved precompile surface**: The `StorageCredits` system precompile becomes active at T7. Contracts and tooling should treat `0x1060000000000000000000000000000000000000` as reserved protocol space.
* **RPC, standby, follow nodes require certificates**: with the `tempo node --follow` flag nodes are now verifying finalization certificates before executing blocks against their local state. When tracking the official mainnet or testnet default RPCs operators will not see a change. If tracking their local validator, operators need to ensure that validator exposes websocket via `--ws`. For more info, see [/docs/guide/node/rpc/](https://tempo.xyz/developers/docs/guide/node/rpc/) and [/docs/guide/node/validator-failover/](https://tempo.xyz/developers/docs/guide/node/validator-failover/)

***

### Operators

#### What's Changed

* **T7 activation timestamps** ([#6396](https://github.com/tempoxyz/tempo/pull/6396)): Adds testnet and mainnet T7 timestamps to chainspec and genesis configuration.
* **Dynamic base fee** ([#5153](https://github.com/tempoxyz/tempo/pull/5153)): Seeds the T7 activation block at the lowered cap of `12_000_000_000` attodollars per gas, then adjusts each child block from parent gas usage with a floor of `600_000_000` and a `10_000_000` gas target.
* **Snapshot and recovery improvements** ([#5789](https://github.com/tempoxyz/tempo/pull/5789), [#6203](https://github.com/tempoxyz/tempo/pull/6203), [#6207](https://github.com/tempoxyz/tempo/pull/6207), [#6208](https://github.com/tempoxyz/tempo/pull/6208)): Bundles consensus finalized-block archives with execution snapshots and preserves recovered block handles through consensus lookup paths.
* **Consensus and payload performance** ([#5421](https://github.com/tempoxyz/tempo/pull/5421), [#5998](https://github.com/tempoxyz/tempo/pull/5998), [#6176](https://github.com/tempoxyz/tempo/pull/6176)): Caches encoded execution blocks, reduces payload transaction iterator cloning, and avoids cloning subblock pool transactions on the RPC path.
* **Payload builder configuration** ([#6387](https://github.com/tempoxyz/tempo/pull/6387), [#6306](https://github.com/tempoxyz/tempo/pull/6306)): Resolves builder gas limits from CLI arguments and chain defaults, and threads the skip-state-root benchmark setting through the Tempo payload builder.
* **Installer reliability** ([#6274](https://github.com/tempoxyz/tempo/pull/6274)): Installs the macOS `libusb` runtime dependency when required, verifies the installed binary before replacing backups, and adds installer regression tests.
* **Reth and dependency updates** ([#5876](https://github.com/tempoxyz/tempo/pull/5876), [#6134](https://github.com/tempoxyz/tempo/pull/6134), [#6211](https://github.com/tempoxyz/tempo/pull/6211), [#6270](https://github.com/tempoxyz/tempo/pull/6270)): Updates Reth from upstream main and refreshes selected runtime dependencies.

***

### Developers

#### SDK Crate Versions

| Package | Version | Notes |
|---------|---------|-------|
| `tempo-alloy` | `1.8.1` | Unchanged in this binary patch release; SDK crate version bumps will follow separately. |
| `tempo-primitives` | `1.8.1` | Unchanged in this binary patch release; SDK crate version bumps will follow separately. |
| `tempo-contracts` | `1.8.1` | Unchanged in this binary patch release; SDK crate version bumps will follow separately. |
| `tempo-chainspec` | `1.8.2` | Unchanged in this binary patch release; SDK crate version bumps will follow separately. |

#### T7 Protocol Changes

* **Storage credits precompile** ([#5228](https://github.com/tempoxyz/tempo/pull/5228), [#4016](https://github.com/tempoxyz/tempo/pull/4016)): Adds per-account persistent storage credit balances and transaction-local `Refund`, `Preserve`, and `Direct` creation modes. Refund mode remains the default so gas limits do not depend on credit balance at inclusion time.
* **Storage-credit safety fixes** ([#6206](https://github.com/tempoxyz/tempo/pull/6206), [#6233](https://github.com/tempoxyz/tempo/pull/6233), [#6237](https://github.com/tempoxyz/tempo/pull/6237), [#6310](https://github.com/tempoxyz/tempo/pull/6310)): Excludes fee/keychain bookkeeping slots from unbacked credit minting, avoids recreating exhausted periodic spending-limit slots, disables minting during fee distribution, and decodes the T7 zero-remaining sentinel consistently.
* **StablecoinDEX storage credits** ([#5305](https://github.com/tempoxyz/tempo/pull/5305), [#4082](https://github.com/tempoxyz/tempo/pull/4082)): Credits reusable order-record storage to the maker that owned the cleared order slot and exposes `storageCredits(address)` for DEX credit balances.
* **TIP-20 channel reserve storage credits** ([#5935](https://github.com/tempoxyz/tempo/pull/5935)): Credits terminal channel close/withdraw storage deletion to the channel payer and consumes payer-scoped credits on later channel opens.
* **TIP-20 rewards deprecation path** ([#5433](https://github.com/tempoxyz/tempo/pull/5433)): T7 disables new reward-recipient changes and reward distributions while preserving existing reward state for lazy checkpointing ahead of the later full-disable phase.
* **Dynamic base fee constants and validation** ([#5153](https://github.com/tempoxyz/tempo/pull/5153)): Adds T7 base-fee floor/cap constants, fixed `10_000_000` gas target, and block-header validation for the computed dynamic base fee.

#### EVM, Transaction, and Fee Semantics

* **Generic protocol fee manager** ([#6279](https://github.com/tempoxyz/tempo/pull/6279)): Routes fee token resolution and pre/post-transaction fee collection through a generic `TempoFeeManager`, preserving current L1 behavior while allowing alternate fee managers for Tempo Zones.
* **Storage action recording** ([#5423](https://github.com/tempoxyz/tempo/pull/5423), [#5605](https://github.com/tempoxyz/tempo/pull/5605), [#6075](https://github.com/tempoxyz/tempo/pull/6075)): Adds SLOAD/SSTORE action recording and storage delta helpers while avoiding default allocations when recording is disabled.
* **Transaction pool and raw transaction recovery** ([#6175](https://github.com/tempoxyz/tempo/pull/6175)): Optimizes raw Tempo AA transaction recovery by threading the precomputed expiring nonce hash through sender recovery.
* **Precompile storage and block environment plumbing** ([#6286](https://github.com/tempoxyz/tempo/pull/6286), [#6394](https://github.com/tempoxyz/tempo/pull/6394)): Exposes epoch-length mapping and the full `TempoBlockEnv` to precompile storage providers.
* **Serde and RPC shape fixes** ([#6252](https://github.com/tempoxyz/tempo/pull/6252)): Serializes sealed blocks through the plain Tempo block shape for consensus RPC and execution data.

#### Testing, Benchmarks, and Tooling

* Added T7 gas-estimation and hardfork matrix coverage for upcoming devnet hardforks ([#6194](https://github.com/tempoxyz/tempo/pull/6194), [#6217](https://github.com/tempoxyz/tempo/pull/6217)).
* Added storage-credit integration and gas snapshot coverage for StablecoinDEX and TIP-20 channel reserve flows ([#6297](https://github.com/tempoxyz/tempo/pull/6297), [#5935](https://github.com/tempoxyz/tempo/pull/5935), [#4082](https://github.com/tempoxyz/tempo/pull/4082)).
* Improved bench-e2e presets, comments, gas-limit controls, metadata, and T7/T8 hardfork support ([#5959](https://github.com/tempoxyz/tempo/pull/5959), [#6232](https://github.com/tempoxyz/tempo/pull/6232), [#6261](https://github.com/tempoxyz/tempo/pull/6261), [#6283](https://github.com/tempoxyz/tempo/pull/6283), [#6391](https://github.com/tempoxyz/tempo/pull/6391), [#6393](https://github.com/tempoxyz/tempo/pull/6393), [#6395](https://github.com/tempoxyz/tempo/pull/6395)).

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.9.1...v1.10.1

## v1.10.0 — v1.10.0 (superseded by v1.10.1) (2026-06-29)

### Release v1.10.0

> \[!WARNING]
> **v1.10.0 is superseded by v1.10.1.** The v1.10.0 release was published without release assets after the release workflow failed the Cargo workspace-version check. Use [v1.10.1](https://github.com/tempoxyz/tempo/releases/tag/v1.10.1) for the T7 release artifacts.

> \[!IMPORTANT]
> **This release is required for the T7 network upgrade scheduled for testnet on July 2, 2026 16:00 CEST (`1783000800`) and mainnet on July 9, 2026 16:00 CEST (`1783605600`).** Node operators must update before activation or their nodes will fall out of sync. This release activates T7 support for dynamic base fees, storage credits, and reusable storage accounting across contract, DEX, and channel-reserve state, with the goal of lowering ordinary Tempo transaction costs and making repeated storage use cheaper.

##### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

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

##### Activation Times

| Network | Date | Timestamp |
|---------|------|-----------|
| Testnet | July 2, 2026 16:00 CEST | `1783000800` |
| Mainnet | July 9, 2026 16:00 CEST | `1783605600` |

##### TIPs included with T7

The T7 network upgrade includes:

1. **[TIP-1060 Storage Credits](https://tips.sh/1060)**: Replaces one-time storage-clearing refunds with per-account storage credits that can offset later storage creations by the same account. Adds the `StorageCredits` precompile at `0x1060000000000000000000000000000000000000`.
2. **[TIP-1064 StablecoinDEX Order Storage Credits](https://tips.sh/1064)**: Adds maker-attributed reusable storage accounting for StablecoinDEX order records, so makers receive credit for reusable order storage they previously freed.
3. **[TIP-1067 Dynamic Base Fee](https://tips.sh/1067)**: Replaces the fixed base fee with a bounded EIP-1559-style controller capped at `12_000_000_000` attodollars per gas, floored at `600_000_000`, with a `10_000_000` gas target.
4. **TIP-1066 Channel Storage Credits**: Adds payer-scoped reusable storage credits for TIP-20 channel reserve state, including the `storageCredits(address)` channel-reserve view.

##### Gas Cost and Benchmarking Highlights

| Area | T6 | T7 | Diff | Notes |
|------|----|----|------|-------|
| Base-fee ceiling (50k-gas transfer) | `$0.001` | cap `$0.0006` · floor `$0.00003` | cap `−40%` · floor `−97%` | The T7 cap is `12_000_000_000` attodollars per gas; the floor is `600_000_000`, 20x below the cap. |
| Observed transfer-like costs | avg `$0.0037857` · median `$0.0011855` (1k txs); avg `$0.0008975` · median `$0.0007657` (598 steady-state) | — | — | Removing state-creation-like txs (`gas_used >= 250k`) left 598 steady-state transfers; excluding two IQR outliers gives `$0.0008929` avg. T7's lower base-fee cap/floor reduces the per-gas component further for equivalent gas profiles. |
| Credited storage creation (SSTORE `0→x`) | `250,000` gas | `5,000` residual + `245,000` creditable | `−98%` | TIP-1060 splits the previous creation component into a `5,000` gas residual plus a `245,000` gas creditable portion. |
| Channel reserve gas | open-existing `1,055,229` · open-first `1,302,429` | open-existing `294,425` · open-first `791,625` | open-existing `−72.1%` · open-first `−39.2%` | Call-level numbers exclude separate approval gas; implicit approvals for MPP/DEX/FeeAMM improve user-total comparisons for flows that previously required explicit approvals. |

##### Breaking Changes

* **Consensus-breaking hardfork**: T7 changes protocol state transition rules. Nodes that do not run this release before activation will reject or produce invalid blocks after the T7 timestamp.
* **Base fee is no longer fixed**: After T7, `baseFeePerGas` is computed from parent gas usage and clamped to the T7 floor/cap range. Wallets, fee estimators, transaction builders, tests, and monitoring that assume the T1 fixed base fee of `20_000_000_000` attodollars per gas must handle a changing base fee.
* **Storage gas and refund semantics changed**: T7 removes the legacy storage-clearing refund, splits the TIP-1000 SSTORE creation cost into a `5_000` gas residual plus a `245_000` gas creditable portion, and removes the EIP-3529 one-fifth refund cap for T7 refunds. Contracts and tests that depend on exact SSTORE gas/refund behavior should be revalidated.
* **TIP-20 reward mutators are disabled at T7**: `setRewardRecipient` and `distributeReward` become no-ops after T7. Integrators relying on new reward opt-ins or reward distributions must adjust their flows before activation.
* **New reserved precompile surface**: The `StorageCredits` system precompile becomes active at T7. Contracts and tooling should treat `0x1060000000000000000000000000000000000000` as reserved protocol space.
* **RPC, standby, follow nodes require certificates**: with the `tempo node --follow` flag nodes are now verifying finalization certificates before executing blocks against their local state. When tracking the official mainnet or testnet default RPCs operators will not see a change. If tracking their local validator, operators need to ensure that validator exposes websocket via `--ws`. For more info, see [/docs/guide/node/rpc/](https://tempo.xyz/developers/docs/guide/node/rpc/) and [/docs/guide/node/validator-failover/](https://tempo.xyz/developers/docs/guide/node/validator-failover/)

***

#### Operators

##### What's Changed

* **T7 activation timestamps** ([#6396](https://github.com/tempoxyz/tempo/pull/6396)): Adds testnet and mainnet T7 timestamps to chainspec and genesis configuration.
* **Dynamic base fee** ([#5153](https://github.com/tempoxyz/tempo/pull/5153)): Seeds the T7 activation block at the lowered cap of `12_000_000_000` attodollars per gas, then adjusts each child block from parent gas usage with a floor of `600_000_000` and a `10_000_000` gas target.
* **Snapshot and recovery improvements** ([#5789](https://github.com/tempoxyz/tempo/pull/5789), [#6203](https://github.com/tempoxyz/tempo/pull/6203), [#6207](https://github.com/tempoxyz/tempo/pull/6207), [#6208](https://github.com/tempoxyz/tempo/pull/6208)): Bundles consensus finalized-block archives with execution snapshots and preserves recovered block handles through consensus lookup paths.
* **Consensus and payload performance** ([#5421](https://github.com/tempoxyz/tempo/pull/5421), [#5998](https://github.com/tempoxyz/tempo/pull/5998), [#6176](https://github.com/tempoxyz/tempo/pull/6176)): Caches encoded execution blocks, reduces payload transaction iterator cloning, and avoids cloning subblock pool transactions on the RPC path.
* **Payload builder configuration** ([#6387](https://github.com/tempoxyz/tempo/pull/6387), [#6306](https://github.com/tempoxyz/tempo/pull/6306)): Resolves builder gas limits from CLI arguments and chain defaults, and threads the skip-state-root benchmark setting through the Tempo payload builder.
* **Installer reliability** ([#6274](https://github.com/tempoxyz/tempo/pull/6274)): Installs the macOS `libusb` runtime dependency when required, verifies the installed binary before replacing backups, and adds installer regression tests.
* **Reth and dependency updates** ([#5876](https://github.com/tempoxyz/tempo/pull/5876), [#6134](https://github.com/tempoxyz/tempo/pull/6134), [#6211](https://github.com/tempoxyz/tempo/pull/6211), [#6270](https://github.com/tempoxyz/tempo/pull/6270)): Updates Reth from upstream main and refreshes selected runtime dependencies.

***

#### Developers

##### Compatible Tooling Versions

| Package | Version | Notes |
|---------|---------|-------|
| `tempo-alloy` | `1.10.0` | Includes SDK helpers for receive-policy/admin-key flows and T7-compatible ABI bindings. |
| `tempo-primitives` | `1.10.0` | Includes T7 hardfork, block, and base-fee primitives. |
| `tempo-contracts` | `1.10.0` | Includes `StorageCredits`, StablecoinDEX, and channel-reserve ABI updates. |
| `tempo-chainspec` | `1.10.0` | Includes T7 activation timestamps and dynamic base-fee constants. |

##### T7 Protocol Changes

* **Storage credits precompile** ([#5228](https://github.com/tempoxyz/tempo/pull/5228), [#4016](https://github.com/tempoxyz/tempo/pull/4016)): Adds per-account persistent storage credit balances and transaction-local `Refund`, `Preserve`, and `Direct` creation modes. Refund mode remains the default so gas limits do not depend on credit balance at inclusion time.
* **Storage-credit safety fixes** ([#6206](https://github.com/tempoxyz/tempo/pull/6206), [#6233](https://github.com/tempoxyz/tempo/pull/6233), [#6237](https://github.com/tempoxyz/tempo/pull/6237), [#6310](https://github.com/tempoxyz/tempo/pull/6310)): Excludes fee/keychain bookkeeping slots from unbacked credit minting, avoids recreating exhausted periodic spending-limit slots, disables minting during fee distribution, and decodes the T7 zero-remaining sentinel consistently.
* **StablecoinDEX storage credits** ([#5305](https://github.com/tempoxyz/tempo/pull/5305), [#4082](https://github.com/tempoxyz/tempo/pull/4082)): Credits reusable order-record storage to the maker that owned the cleared order slot and exposes `storageCredits(address)` for DEX credit balances.
* **TIP-20 channel reserve storage credits** ([#5935](https://github.com/tempoxyz/tempo/pull/5935)): Credits terminal channel close/withdraw storage deletion to the channel payer and consumes payer-scoped credits on later channel opens.
* **TIP-20 rewards deprecation path** ([#5433](https://github.com/tempoxyz/tempo/pull/5433)): T7 disables new reward-recipient changes and reward distributions while preserving existing reward state for lazy checkpointing ahead of the later full-disable phase.
* **Dynamic base fee constants and validation** ([#5153](https://github.com/tempoxyz/tempo/pull/5153)): Adds T7 base-fee floor/cap constants, fixed `10_000_000` gas target, and block-header validation for the computed dynamic base fee.

##### EVM, Transaction, and Fee Semantics

* **Generic protocol fee manager** ([#6279](https://github.com/tempoxyz/tempo/pull/6279)): Routes fee token resolution and pre/post-transaction fee collection through a generic `TempoFeeManager`, preserving current L1 behavior while allowing alternate fee managers for Tempo Zones.
* **Storage action recording** ([#5423](https://github.com/tempoxyz/tempo/pull/5423), [#5605](https://github.com/tempoxyz/tempo/pull/5605), [#6075](https://github.com/tempoxyz/tempo/pull/6075)): Adds SLOAD/SSTORE action recording and storage delta helpers while avoiding default allocations when recording is disabled.
* **Transaction pool and raw transaction recovery** ([#6175](https://github.com/tempoxyz/tempo/pull/6175)): Optimizes raw Tempo AA transaction recovery by threading the precomputed expiring nonce hash through sender recovery.
* **Precompile storage and block environment plumbing** ([#6286](https://github.com/tempoxyz/tempo/pull/6286), [#6394](https://github.com/tempoxyz/tempo/pull/6394)): Exposes epoch-length mapping and the full `TempoBlockEnv` to precompile storage providers.
* **Serde and RPC shape fixes** ([#6252](https://github.com/tempoxyz/tempo/pull/6252)): Serializes sealed blocks through the plain Tempo block shape for consensus RPC and execution data.

##### Testing, Benchmarks, and Tooling

* Added T7 gas-estimation and hardfork matrix coverage for upcoming devnet hardforks ([#6194](https://github.com/tempoxyz/tempo/pull/6194), [#6217](https://github.com/tempoxyz/tempo/pull/6217)).
* Added storage-credit integration and gas snapshot coverage for StablecoinDEX and TIP-20 channel reserve flows ([#6297](https://github.com/tempoxyz/tempo/pull/6297), [#5935](https://github.com/tempoxyz/tempo/pull/5935), [#4082](https://github.com/tempoxyz/tempo/pull/4082)).
* Improved bench-e2e presets, comments, gas-limit controls, metadata, and T7/T8 hardfork support ([#5959](https://github.com/tempoxyz/tempo/pull/5959), [#6232](https://github.com/tempoxyz/tempo/pull/6232), [#6261](https://github.com/tempoxyz/tempo/pull/6261), [#6283](https://github.com/tempoxyz/tempo/pull/6283), [#6391](https://github.com/tempoxyz/tempo/pull/6391), [#6393](https://github.com/tempoxyz/tempo/pull/6393), [#6395](https://github.com/tempoxyz/tempo/pull/6395)).

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.9.1...v1.10.0

## v1.9.1 — Release v1.9.1 (2026-06-19)

This patch release updates the v1.9.x release line with follow-mode stability fixes, payload-builder latency fixes, Reth/Rust dependency updates, and transaction-pool/RPC improvements.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

Operators running v1.9.0 should upgrade to v1.9.1.

### What's Changed

* Fixed follower upstream event handling by making certified follow the default, keeping the deprecated certify flag accepted, and resubscribing after upstream event stream errors or termination ([#5845](https://github.com/tempoxyz/tempo/pull/5845), [#5964](https://github.com/tempoxyz/tempo/pull/5964), [#6051](https://github.com/tempoxyz/tempo/pull/6051)).
* Improved payload builder and consensus latency by keeping executor-owned payload jobs running to completion and deferring block/state provider drops off the response path ([#5625](https://github.com/tempoxyz/tempo/pull/5625), [#6012](https://github.com/tempoxyz/tempo/pull/6012), [#6046](https://github.com/tempoxyz/tempo/pull/6046)).
* Enabled builder cache sharing by default again, with `--engine.disable-execution-cache-sharing-with-builder` available as the opt-out flag ([#5529](https://github.com/tempoxyz/tempo/pull/5529)).
* Fixed snapshot manifest/download logging by initializing tracing before running snapshot commands ([#5982](https://github.com/tempoxyz/tempo/pull/5982)).
* Updated Reth/Alloy dependencies, the workspace MSRV and CI toolchains to Rust 1.96, and Rust Docker base images used by release builds ([#5564](https://github.com/tempoxyz/tempo/pull/5564), [#5822](https://github.com/tempoxyz/tempo/pull/5822), [#5876](https://github.com/tempoxyz/tempo/pull/5876), [#6035](https://github.com/tempoxyz/tempo/pull/6035), [#6025](https://github.com/tempoxyz/tempo/pull/6025)).
* Improved transaction-pool validation and maintenance performance by sharing EVM/state reads, caching active hardfork state, reducing AA insertion and fee-payer lookups, narrowing TIP-20 transfer decoding, and batching maintenance work ([#5572](https://github.com/tempoxyz/tempo/pull/5572), [#5602](https://github.com/tempoxyz/tempo/pull/5602), [#5603](https://github.com/tempoxyz/tempo/pull/5603), [#5621](https://github.com/tempoxyz/tempo/pull/5621), [#5622](https://github.com/tempoxyz/tempo/pull/5622), [#5645](https://github.com/tempoxyz/tempo/pull/5645), [#5646](https://github.com/tempoxyz/tempo/pull/5646), [#5648](https://github.com/tempoxyz/tempo/pull/5648), [#5649](https://github.com/tempoxyz/tempo/pull/5649)).
* Added developer/API improvements for programmatic node overrides, transaction-pool validation hooks, AA signer recovery, and consistent `tempo_simulateV1` metadata block selection ([#5910](https://github.com/tempoxyz/tempo/pull/5910), [#5628](https://github.com/tempoxyz/tempo/pull/5628), [#5664](https://github.com/tempoxyz/tempo/pull/5664), [#5658](https://github.com/tempoxyz/tempo/pull/5658)).
* Added future-fork implementation work for dynamic base fees, the `StorageCredits` precompile, and TIP-20 rewards deprecation behind later hardfork activation ([#5153](https://github.com/tempoxyz/tempo/pull/5153), [#5228](https://github.com/tempoxyz/tempo/pull/5228), [#5433](https://github.com/tempoxyz/tempo/pull/5433)).
* Bumped workspace and SDK crate versions to v1.9.1 ([#6040](https://github.com/tempoxyz/tempo/pull/6040), [#6089](https://github.com/tempoxyz/tempo/pull/6089)).

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.9.0...v1.9.1

## v1.9.0 — Release v1.9.0 (2026-06-15)

> \[!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](https://tips.sh/1028)**: 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](https://tips.sh/1049)**: 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](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/3870), [#5234](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/5312)): Queues forkchoice/new-payload work through the executor actor to improve consensus responsiveness.
* **Consensus signing key CLI fix** ([#5276](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/3800), [#5476](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/5506)): Resets collected-fee state for each transaction so stale fee collection cannot affect same-transaction key authorization/use paths.
* **Transaction validation caching** ([#5522](https://github.com/tempoxyz/tempo/pull/5522), [#5518](https://github.com/tempoxyz/tempo/pull/5518), [#5513](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/5553)): Signature RLP length calculation now avoids materializing an intermediate `Bytes` buffer.
* **Dynamic base fee support in txpool ordering** ([#5243](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/4473)): Refactors block building to offload transaction cloning and computation of transaction/receipt roots to a separate spawned task
* **Redundant builder precache disabled** ([#5419](https://github.com/tempoxyz/tempo/pull/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](https://github.com/tempoxyz/tempo/pull/5432), [#5546](https://github.com/tempoxyz/tempo/pull/5546), [#5585](https://github.com/tempoxyz/tempo/pull/5585), [#5590](https://github.com/tempoxyz/tempo/pull/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**: https://github.com/tempoxyz/tempo/compare/v1.5.2...v1.9.0

## v1.8.2 — Release v1.8.2 (2026-06-08)

This patch release includes a fix for nodes running versions older than 1.8.2 in a `--minimal` configuration. The issue occurs when requesting historical blocks using the commonware marshal interface.

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

### What’s Changed

* chore(1.8.2): avoid panic by mapping expired blocks to None in https://github.com/tempoxyz/tempo/pull/5214

**Full Changelog**: https://github.com/tempoxyz/tempo/compare/v1.8.1...v1.8.2

## v1.8.1 — Release v1.8.1 (2026-06-01)

> \[!IMPORTANT]
> **v1.8.1 is required for the T5 network upgrade scheduled for testnet and mainnet.**

#### Update Priority

| User Class | Priority |
|------------|----------|
| Validators | High |
| RPC Nodes | High |

Nodes running versions older than v1.8.0 will fall out of sync at the T5 activation timestamp. Nodes already running v1.8.0, must update to v1.8.1 for the latest operator defaults.

### Operators

#### Performance

With v1.8.0 we enabled state caching for block builder by default. Some nodes experienced validation errors caused by reading stale state in our cache sharing implementation. The issue could be resolved with a restart, affected nodes did not have their databases corrupted.

This release reverts this performance improvement, we are currently testing a fix which will be published in a follow up release.

* **Builder prewarming**: Reverted builder prewarming being enabled by default ([#4710](https://github.com/tempoxyz/tempo/pull/4710)).
* **Cache sharing**: Reverted execution cache sharing between payload building and validation ([#4709](https://github.com/tempoxyz/tempo/pull/4709)).

***

### What’s Changed

* Reverted builder prewarming being enabled by default ([#4710](https://github.com/tempoxyz/tempo/pull/4710)).
* Reverted execution cache sharing for the payload builder ([#4709](https://github.com/tempoxyz/tempo/pull/4709)).
* Bumped the workspace version to v1.8.1 ([6ade8f1](https://github.com/tempoxyz/tempo/commit/6ade8f1a5c4fdf963ac8b6fa23551417951ed310)).

**Full Changelog**: [v1.8.0...v1.8.1](https://github.com/tempoxyz/tempo/compare/v1.8.0...v1.8.1)

[Browse the full release history on GitHub](https://github.com/tempoxyz/tempo/releases).
