Minor Changes
- Added the T10 hardfork and moved TIP-1091 activation (ZoneFactory precompile and shared Zone runtime installation) from T9 to T10, so the ZonePortal runtime can still change after the audit without reopening T9. (by @hamdiallam, #7244)
- Implemented TIP-1091 with a native permissioned ZoneFactory, deterministic ZonePortal proxy accounts, and owner-managed runtimes copied from verified source deployments. Activates at T10. (by @hamdiallam, #7244)
Patch Changes
- Added the canonical EIP-2935 history storage account to the built-in development genesis. (by @hamdiallam, #7244)
What's Changed
- chore: hide
--builder.parallelflag from node help by @decofe in #6736 - docs: add TIP-1042 FeeAMM TIP-403 policy exemptions by @decofe in #6604
- docs(tip-1070): current committee state by @SuperFluffy in #5215
- feat(follower): ping websocket to keep alive client by @SuperFluffy in #6754
- feat(dex): add
V2Ordersupport by @0xrusowsky in #6691 - feat(tip-1070): persist current committee by @decofe in #6209
- docs(tip-1087): match DEX book index ABI by @decofe in #6767
- fix(payload): retain changed paths in built payloads by @mediocregopher in #6763
- ci(bench): correct bench e2e merge-base label by @decofe in #6769
- ci(bench): trigger cyclops on reth update PRs by @decofe in #6770
- ci(bench): update e2e bench gas limit defaults by @decofe in #6772
- feat: add TIP-403 exemption for fee manager by @0xKitsune in #6605
- feat(bench): add parameterized txgen scenarios by @Rjected in #6595
- fix(consensus): report contents of finalized block archive by @SuperFluffy in #6775
- perf(dex): avoid useless deletes + double
maker()reads by @0xrusowsky in #6768 - ci: Add GitHub Actions scanner workflow by @decofe in #6747
- fix(ci): prompt Cyclops to review reth commits by @decofe in #6793
- deps: bump reth by @shekhirin in #6797
- fix(consensus): hybrid block storage is reth-aware across the entire storage interface by @hamdiallam in #6790
- chore: add Docker build image summary by @decofe in #6776
- test: update FeeAMM invariant for T8 by @grandizzy in #6804
- test(snapshot): scenarios for certification anchors by @SuperFluffy in #6796
- ci(bench): remove target TPS from scenario names by @decofe in #6813
- ci(bench): restore reusable workflow permissions by @decofe in #6812
- ci(bench): report payload builder stop reasons by @decofe in #6811
- feat(consensus): allow EL ahead of CL if consistent by @SuperFluffy in #6801
- feat(ci): support Cyclops perf audits by @decofe in #6817
- feat(evm): report FeeAMM liquidity pair when available by @struong in #6698
- fix: harden regenesis account replacement when validator count changes by @sds in #6745
- feat: add multi-region benchmark workflow by @sds in #6726
- fix: scope jar provider guards in regenesis to avoid self-deadlock by @sds in #6820
- feat: add scheduled multi-region E2E benchmark workflow by @sds in #6821
- test: add storage credits invariants by @decofe in #6805
- docs(tip-1042): clarify T8 transition semantics by @decofe in #6808
- fix(evm): skip storage credits for committee updates by @decofe in #6819
- fix(consensus): correct invalid dealer log error by @decofe in #6809
- fix(consensus): count canonical self proposals by @decofe in #6831
- fix(consensus): preserve finalized DKG dealer logs by @klkvr in #6834
- fix: allow scheduled multi-region benchmarks by @sds in #6825
- ci: build and publish reth-bump candidate images by @Rjected in #6799
- fix(ci): repair reth-bump image workflow by @decofe in #6835
- ci(bench): neobank preset by @shekhirin in #6740
- chore(precompiles): drop
stdusage indispatch!macro by @0xrusowsky in #6838 - fix(follower): simplified executor to drive sync by @hamdiallam in #6783
- feat(precompiles): support custom downstream dispatch errors by @0xrusowsky in #6845
- docs(tip-1092): move TIP-20 policy IDs into TIP-403 by @legion2002 in #6788
- ci: wire telemetry secret to multi-region benchmark by @sds in #6839
- refactor(chainspec): generalize Tempo provider bounds by @0xKitsune in #6862
- fix: honor disabled multi-region OTLP input by @sds in #6863
- fix(clippy): resolve nightly macro semicolon errors by @decofe in #6867
- fix(rpc): share AA request detection by @mattsse in #6859
- feat(chainspec): set T8 activation timestamps by @jenpaff in #6866
- chore(precompiles): expose
dispatch!inner helpers by @0xrusowsky in #6869 - fix(pool): deduplicate live AA 2D replacements by @klkvr in #6871
- feat: report anonymized hardware telemetry by @decofe in #6814
- chore(deps): bump alloy core 1.6.1 by @DaniPopes in #6878
- fix(consensus): preserve marshal startup floor by @decofe in #6872
- feat(revm): support custom
StorageCtxinProtocolFeeManagertrait by @0xrusowsky in #6879 - chore(release): bump version to 1.10.2 by @emmajam in #6882
- chore(chainspec): reschedule T8 activation by @jenpaff in #6888
- fix(hardfork): sync T8 activation constants by @klkvr in #6890
- docs(tip-1091): add enshrined ZoneFactory TIP by @legion2002 in #6787
- feat(precompiles): implement TIP-1091 ZoneFactory by @legion2002 in #6874
- docs(tip-1091): allow unordered sequencer sets by @legion2002 in #6910
- deps: update reth from main (2026-07-21) by @decofe in #6746
- feat(bench): add stable public benchmark preset by @emmajam in #6905
- fix(ci): refresh rust-toolchain action pins by @decofe in #6911
- feat(tip-1092): store TIP-20 policy IDs in TIP-403 by @legion2002 in #6846
- chore(follower): parameterize and unit test the follower driver actor by @hamdiallam in #6900
- chore(follower): parameterize and unit test the follower resolver actor by @hamdiallam in #6899
- chore(follower): parameterize and unit test the follower executor actor by @hamdiallam in #6896
- fix: start TIP-1091 configuration nonce at zero by @legion2002 in #6914
- feat(tx-pool): generic evm config by @0xrusowsky in #6908
- fix(follower): retain execution node for engine lifetime by @decofe in #6920
- fix(xtask): initialize T9 zone factory at genesis by @decofe in #6921
- chore(ci): rebalance e2e test shards by @decofe in #6924
- feat(txpool): allow disabling FeeAMM validation by @decofe in #6917
- fix(ci): bypass Docker cache for version tags only by @decofe in #6926
- fix(xtask): provision EIP-2935 history contract by @decofe in #6925
- feat(tip20): expose balance mutation methods by @0xKitsune in #6927
- chore: update
_transfervisibility by @0xKitsune in #6930 - feat: add
FeeTokenResolvertrait to allow customization by @0xrusowsky in #6928 - fix(precompiles): require zone token policy binding by @legion2002 in #6931
- feat(precompiles): export ZonePortal storage slots by @klkvr in #6923
- feat(precompiles): expose TokenTransferPolicy by @decofe in #6936
- docs(tip-1092): preserve local policy on update by @decofe in #6935
- chore: bump cargo to v1.11.0 by @jenpaff in #6937
- feat: include blocks remaining in the epoch for the validators-info cmd by @hamdiallam in #6933
- test(evm): move handler tests to separate file by @klkvr in #6907
- feat(evm): allow custom fee token validation by @0xKitsune in #6938
- feat(zone-factory): initialize zone access modes and roles by @legion2002 in #6934
- chore(precompiles): pub
ZonePortalStorageby @0xrusowsky in #6947 - refactor(zone-factory): restrict runtime updates to hardforks by @legion2002 in #6948
- fix(zone-factory): install shared runtimes at T9 by @legion2002 in #6952
- fix: restrict encrypted signing key file permissions by @decofe in #6840
- chore(precompiles): expose
Slotaddress and context by @decofe in #6958 - chore(zone-factory): add max Tempo gas rate slot by @decofe in #6959
- test(dex): snapshot overflow behavior across T9 by @0xrusowsky in #6967
- feat(cli): add set validator token command by @decofe in #6906
- deps: update reth from main (2026-07-27) by @decofe in #6918
- feat(cli): print combined snapshot download plans by @kuyziss in #6929
- fix(consensus): more reliable finalized block RPC delivery by @SuperFluffy in #6968
- fix(ci): allow sync app to update workflows by @decofe in #6970
- fix(ci): restrict scheduled jobs to upstream repo by @decofe in #6972
- fix(ci): use client ID input for sync app by @decofe in #6973
- fix(ci): pin changelog action release by @decofe in #6975
- fix(ci): allow scheduled fork syncs by @decofe in #6976
- fix(ci): sync multi-region benchmark workflows by @decofe in #6977
- fix(ci): restrict release PR workflow to upstream by @decofe in #6978
- deps: update reth from main (2026-07-28) by @decofe in #6979
- perf(engine): use sender recovery cache by @shekhirin in #6985
- fix(consensus): publish feed events from finalized tips by @hamdiallam in #6989
- feat(hardfork): add T10 and move TIP-1091 activation to it by @legion2002 in #6990
- Add t9 timestamps by @jenpaff in #6994
- feat: Add leadership record to zone portal contract by @adityapk00 in #6987
- refactor(tip20): use allow-all policy constant by @decofe in #6993
- chore(tips): bump verification hardfork to T9 by @decofe in #7005
- fix(contracts): regenerate ZONE_MESSENGER_RUNTIME with bounded callback returndata by @legion2002 in #6986
- chore(ci): report scheduled multi-region benchmarks to ClickHouse by @decofe in #7007
- feat: add promote canary workflow by @laibe in #6865
- ci(bench): change default derek bench preset by @shekhirin in #7018
- fix(ci): group promote canary output writes by @decofe in #7017
- fix(ci): enable multi-region metrics push by @decofe in #7015
- chore(consensus): remove unused file by @pepyakin in #7019
- ci(bench): filter ClickHouse metric samples by @decofe in #7014
- fix(ci): fetch ClickHouse metric allowlist by @decofe in #7020
- fix(ci): fetch ClickHouse allowlist from Tempo by @decofe in #7022
- fix(consensus): deadline for upstream requests by @pepyakin in #7010
- fix(evm): initialize dev ZoneFactory genesis state by @struong in #7011
- fix(deps): keep Reqwest Rustls provider-neutral by @gakonst in #7025
- refactor(consensus): remove unused finalized marker lookup by @decofe in #7008
- feat(alloy): add Tempo Accounts wallet filler by @gakonst in #6965
- chore(ci): use master for Foundry checkouts by @decofe in #7028
- feat(alloy): add transaction request call builder by @mattsse in #7029
- fix(precompiles): ensure new portal is not initialized by @0xrusowsky in #7026
- fix(ci): forward Tempo telemetry secret by @decofe in #7035
- feat(alloy): add authorization request builders by @mattsse in #7032
- chore(follower): parameterize and unit test the upstream actor by @hamdiallam in #7033
- fix(ci): use GitHub STS for multi-region benchmarks by @decofe in #7051
- test(ci): verify default and next Tempo hardforks by @decofe in #7013
- refactor: replace dead code allows with expects by @decofe in #7046
- feat(hardfork): add plumbing generator by @decofe in #7036
- feat: add new hardfork workflow by @decofe in #7052
- fix(txpool): stop pending over-eviction after demotion by @klkvr in #7058
- docs(tip-1093): extend expiring nonce window to five minutes by @decofe in #7053
- ci(bench): reduce multi-region validator default by @decofe in #7061
- fix(ci): use GitHub STS for e2e benchmarks by @decofe in #7062
- fix(ci): use separate STS token for ValScope by @decofe in #7065
- fix(ci): use GitHub token for Cyclops comments by @legion2002 in #7059
- refactor(pool): accept generic transaction results by @klkvr in #7066
- chore(consensus): commonware 2026.7.0 by @hamdiallam in #7009
- fix(ci): install rustfmt and refresh toolchain pins by @decofe in #7070
- fix(download): resolve consensus archive beside manifest by @kuyziss in #7056
- fix(chainspec): add dev eip-2935 history account by @jxom in #7069
- fix(ci): preserve scheduled OTLP default by @decofe in #7073
- fix(bench): raise default concurrent requests to 5000 by @decofe in #7067
- fix(ci): allow release bump to fetch Git dependencies by @decofe in #7037
- fix(ci): use GitHub STS for replay benchmarks by @decofe in #7084
- fix(ci): require immutable STS subject IDs by @decofe in #7086
- fix(ci): isolate gcloud state in benchmark workflow by @decofe in #7087
- fix(upstream): prevent retry storm due to subscription failure by @pepyakin in #7068
- fix(ci): remove benchmark hardfork allowlist by @decofe in #7072
- feat(release): add release preparation workflow by @kamsz in #7078
- fix(release): use release-pr environment for preparation workflow by @decofe in #7090
- feat(consensus): add verified finalized block stream by @klkvr in #6961
- fix(release): use pre-release preparation branch by @kamsz in #7091
- fix: replace deprecated Nushell string command by @decofe in #7092
- fix(ci): restrict add-hardfork workflow to main by @decofe in #7096
- chore(commonware-p2p): size enforcing sender by @hamdiallam in #7049
- chore: bump revm to 42.0.1 by @rakita in #6946
- feat(revm): add explicit execution context by @klkvr in #7085
- refactor(follow): make forkchoice targets round-aware by @pepyakin in #7041
- feat(hardfork): update Zone runtimes by @tempoxyz-release-bot[bot] in #6996
- fix: restore Nushell 0.112 compatibility by @decofe in #7106
- refactor: centralize transaction time-bound checks by @mattsse in #7105
- ci: add Cyclops super-fast audit trigger by @legion2002 in #7108
- feat(tip-1093): extend expiring nonce window at T10 by @legion2002 in #7080
- fix(ci): restore Clippy and Foundry specs by @decofe in #7125
- chore(ci): use shared PR audit and enforce gate by @mablr in #6806
- feat(alloy): add fee token filler by @decofe in #7129
- test(evm): use production Tempo gas tables in tip20 storage actions test by @rakita in #7132
- test(consensus): share certificate fixtures by @pepyakin in #7042
- chore: allow unmaintained bitmaps advisory by @decofe in #7135
- feat(node): add tempo/1 wire format by @pepyakin in #7043
- chore(ci): remove stale cargo-deny entries by @decofe in #7136
- feat(zone): commit initial token enablement by @0xrusowsky in #7054
- ci: increase e2e test concurrency by @decofe in #7141
- ci(bench): report total fees in benchmark summaries by @shekhirin in #7145
- chore: remove Amp tools by @decofe in #7138
- fix(zone): enforce initial token enablement bounds by @0xrusowsky in #7150
- refactor(consensus): drive execution layer to the notarized tip by @SuperFluffy in #7057
- ci(docker): build partial persistence nightly image by @decofe in #7161
- feat(hardfork): update Zone runtimes by @tempoxyz-bot in #7151
- refactor(consensus): generalize TempoConsensus over chain spec by @klkvr in #7166
- feat(hardfork): add T11 plumbing by @tempoxyz-release-bot[bot] in #7088
- fix(bench): revert receipt fee reporting by @decofe in #7168
- feat(tip-1093): activate expanded nonce window at T11 by @legion2002 in #7152
- feat(hardfork): schedule T10 activation by @decofe in #7172
- refactor: mirror portal sequencer membership in role storage by @0xalpharush in #7175
- refactor: type portal roles and capability storage by @0xalpharush in #7171
- test(precompiles): expose conformance helpers by @decofe in #7180
- ci: use GitHub STS for benchmark acknowledgements by @decofe in #7190
- fix(txpool): enforce AA 2D pool size limits by @mattsse in #7144
- fix(consensus): read validator state from pending parents by @mattsse in #7192
- fix(bench): extend TIP20 transaction validity by @decofe in #7197
- fix(bench): restore default concurrent requests by @decofe in #7167
- refactor(consensus): remove redundant DKG send failure branch by @decofe in #7200
- chore(release): prepare v1.13.0 by @tempoxyz-release-bot[bot] in #7184
- fix(bench): allow release tags to mint STS tokens by @decofe in #7205
- fix(ci): update renamed S3 upload action by @decofe in #7207
- docs(tip-1091): update ZonePortal source link by @legion2002 in #7204
- chore(deps): bump h2 to 0.4.16 by @decofe in #7210
- docs(tip-1016): align spec with TIP-1060 credit split and execution-gas naming by @rakita in #7213
- docs(tip-1096): specify multi-block Tempo imports for Zones by @shekhirin in #7164
- chore(deps): bump Commonware to v2026.7.1 by @decofe in #7203
- perf(precompiles): use hash set for zone validation by @decofe in #7212
- refactor(txpool): scan pool for expired transactions by @klkvr in #7198
- chore(consensus): recover dkg share if revealed & ignore stale state by @hamdiallam in #6950
- feat(node): add tempo/1 transport and peer control by @pepyakin in #7044
- fix(evm): classify invalid subblock transactions as validation errors by @rappie in #7220
- test(primitives): generalize precompile activation checks by @joshieDo in #7221
- refactor(txpool): evict transactions using paused tokens by @klkvr in #7217
- refactor(revm): isolate signature gas accounting by @joshieDo in #7229
- fix(rpc): mark block simulations in tx envs by @joshieDo in #7228
- chore: release canary every day instead of weekly by @laibe in #7224
- docs(tip-1096): clarify activation transition by @shekhirin in #7233
- fix(consensus): startup uses all available header sources, not just execution layer by @hamdiallam in #7244
- chore: release
tempo-alloy@1.11.0,tempo-chainspec@1.11.0and 3 more by @tempoxyz-release-bot[bot] in #6903