From e421e9f6b1c0341dff7a4f507c760b524e519b55 Mon Sep 17 00:00:00 2001
From: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Date: Mon, 17 Aug 2026 14:47:22 +0000
Subject: [PATCH 1/4] docs: add T10 network upgrade
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
---
.../docs/guide/node/network-upgrades.mdx | 17 ++++
src/pages/docs/protocol/upgrades/t10.mdx | 87 +++++++++++++++++++
vocs.config.ts | 5 ++
3 files changed, 109 insertions(+)
create mode 100644 src/pages/docs/protocol/upgrades/t10.mdx
diff --git a/src/pages/docs/guide/node/network-upgrades.mdx b/src/pages/docs/guide/node/network-upgrades.mdx
index 8db7d58d..b28fde6a 100644
--- a/src/pages/docs/guide/node/network-upgrades.mdx
+++ b/src/pages/docs/guide/node/network-upgrades.mdx
@@ -15,6 +15,7 @@ For detailed release notes and binaries, see the [Changelog](/docs/changelog).
| Release | Date | Network | Description | Priority |
|---------|------|---------|-------------|----------|
+| v1.13.0 | Forthcoming | Testnet + Mainnet | Required for T10. Enshrines ZoneFactory, assigns deterministic ZonePortal addresses, and installs canonical shared zone runtimes. Testnet activation is scheduled for Aug 20, 2026; mainnet activation is scheduled for Aug 21, 2026. | Required |
| [v1.12.0](https://github.com/tempoxyz/tempo/releases/tag/v1.12.0) | Aug 3, 2026 | Testnet + Mainnet | Required for T9. Adds TIP-403 storage for TIP-20 token policy bindings used by zones/provable contract flows, plus a targeted migration path for existing tokens that need one. T9 is active on testnet and mainnet. | Required |
| [v1.11.0](https://github.com/tempoxyz/tempo/releases/tag/v1.11.0) | Jul 22, 2026 | Testnet + Mainnet | Required for T8. Includes current committee state, FeeAMM policy changes, versioned Stablecoin DEX order storage, DEX V2Order support, and final TIP-20 rewards deprecation. T8 is active on testnet and mainnet. | Required |
| [v1.10.1](https://github.com/tempoxyz/tempo/releases/tag/v1.10.1) | Jun 29, 2026 | Testnet + Mainnet | Required for T7; includes storage credits for DEX order storage and TIP-20 channel storage, dynamic base fee behavior, and TIP-20 rewards deprecation. | Required |
@@ -37,6 +38,22 @@ For detailed release notes and binaries, see the [Changelog](/docs/changelog).
| [v1.3.1](https://github.com/tempoxyz/tempo/releases/tag/v1.3.1) | Feb 22, 2026 | Testnet + Mainnet | Fixes high-load issues and finalizes T1A/T1B hardening for expiring nonce replay protection and keychain precompile gas handling | Required |
| [v1.2.0](https://github.com/tempoxyz/tempo/releases/tag/v1.2.0) | Feb 13, 2026 | Mainnet only | Fixes validation bug rejecting transactions with gas limits above ~16.7M, blocking large contract deployments | Required |
+## T10
+
+| | |
+|---|---|
+| **Scope** | Native ZoneFactory, deterministic ZonePortal accounts, and protocol-managed shared zone runtimes |
+| **TIPs** | [Enshrined ZoneFactory](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1091.md) |
+| **Details** | [T10 network upgrade](/docs/protocol/upgrades/t10) |
+| **Release** | v1.13.0 (forthcoming) |
+| **Testnet** | Scheduled: August 20, 2026 at 14:00 UTC (`1787234400`) |
+| **Mainnet** | Scheduled: August 21, 2026 at 14:00 UTC (`1787320800`) |
+| **Priority** | Required |
+
+T10 is scheduled for testnet on August 20, 2026 and mainnet on August 21, 2026. Node operators must upgrade to v1.13.0 before activation once the release is available.
+
+---
+
## T9
| | |
diff --git a/src/pages/docs/protocol/upgrades/t10.mdx b/src/pages/docs/protocol/upgrades/t10.mdx
new file mode 100644
index 00000000..7808f6a0
--- /dev/null
+++ b/src/pages/docs/protocol/upgrades/t10.mdx
@@ -0,0 +1,87 @@
+---
+title: T10 Network Upgrade
+description: T10 enshrines ZoneFactory and installs canonical ZonePortal runtimes for native zone creation.
+---
+
+# T10 Network Upgrade
+
+T10 makes zone creation a native Tempo protocol operation. It enshrines `ZoneFactory`, assigns each zone a deterministic `ZonePortal` address, and installs canonical shared runtimes for portals, verification, and messaging.
+
+For most partners, T10 matters if you operate a node, create Tempo Zones, or integrate directly with `ZoneFactory` and `ZonePortal`.
+
+:::info[T10 status]
+T10 is scheduled for testnet on August 20, 2026 at 14:00 UTC and mainnet on August 21, 2026 at 14:00 UTC. The forthcoming v1.13.0 release is required; see the [Network Upgrades and Releases table](/docs/guide/node/network-upgrades#node-operator-updates) for the current node-operator release status.
+:::
+
+## Timeline
+
+| Network | Date | Unix timestamp |
+|---------|------|----------------|
+| Testnet | August 20, 2026 at 14:00 UTC | `1787234400` |
+| Mainnet | August 21, 2026 at 14:00 UTC | `1787320800` |
+
+Node operators must run v1.13.0 before T10 activates on their network to stay synced.
+
+## T10 upgrade overview
+
+T10 introduces three related protocol changes:
+
+- **Native zone creation.** `ZoneFactory` becomes a precompile at `0x5AF2000000000000000000000000000000000000`.
+- **Deterministic zone portals.** Every new zone receives a `ZonePortal` account whose address encodes its zone ID.
+- **Protocol-managed shared runtimes.** The hardfork installs canonical portal, verifier, and messenger runtimes at reserved addresses.
+
+Read the [TIP-1091 specification](https://github.com/tempoxyz/tempo/blob/main/tips/tip-1091.md).
+
+## Native `ZoneFactory`
+
+Zone creation moves from a separately deployed factory contract into the Tempo protocol. The native factory retains the canonical registry behavior, including sequential zone IDs, `zones`, `nextZoneId`, `isZonePortal`, and the `ZoneCreated` event.
+
+The initial T10 rollout is permissioned. Only the factory owner can call `createZone`; a later hardfork can open zone creation. A successful `createZone` call consumes at least 15,000,000 gas.
+
+An initial TIP-20 token must have an explicit [TIP-403 policy binding](/docs/protocol/upgrades/t9) before the factory can create a zone with it.
+
+## Deterministic `ZonePortal` accounts
+
+Each zone receives a portal at a reserved vanity address. The high 12 bytes are the fixed prefix `0x5AD000000000000000000000`, and the low 8 bytes contain the zone ID in big-endian form. For example, zone ID `1` maps to:
+
+```text
+0x5AD0000000000000000000000000000000000001
+```
+
+Use `ZoneFactory.isZonePortal(address)` to validate portal addresses instead of reproducing the prefix and zone-ID checks in application code.
+
+Each portal is an ERC-1167 proxy to a shared, protocol-managed implementation. Portals keep independent state while using the same canonical logic.
+
+## Protocol-managed Zone runtimes
+
+At activation, T10 installs the factory and three shared runtimes atomically:
+
+| Component | Address |
+|-----------|---------|
+| `ZoneFactory` | `0x5AF2000000000000000000000000000000000000` |
+| `ZonePortal` implementation | `0x5AD1000000000000000000000000000000000000` |
+| Zone verifier | `0x5a56000000000000000000000000000000000000` |
+| Zone messenger | `0x5A4d000000000000000000000000000000000000` |
+
+The factory owner cannot replace these runtimes. Any future runtime replacement requires another hardfork. Because every portal delegates to the shared implementation address, a future replacement upgrades all existing portals and must preserve their storage layout.
+
+## Integration impact
+
+### For node operators
+
+- Upgrade to v1.13.0 before activation on each network.
+- Nodes that do not upgrade fall out of consensus when T10 activates.
+
+### For zone operators and applications
+
+- Create zones through the native `ZoneFactory` address.
+- Budget at least 15,000,000 gas for `createZone`.
+- Ensure the initial TIP-20 token has a TIP-403 policy binding.
+- Read the created portal address from factory state or `ZoneCreated` rather than predicting deployment addresses.
+- Use `isZonePortal` when validating whether an address is a registered portal.
+
+### For indexers and infrastructure
+
+- Index the native factory at its reserved address.
+- Continue consuming `ZoneCreated` and the canonical factory registry.
+- Treat portal accounts as ERC-1167 proxies with independent storage and a shared implementation.
diff --git a/vocs.config.ts b/vocs.config.ts
index d18e738c..6af86af1 100644
--- a/vocs.config.ts
+++ b/vocs.config.ts
@@ -893,6 +893,11 @@ export default defineConfig({
text: 'Network Upgrades',
collapsed: false,
items: [
+ {
+ text: 'T10',
+ badge: { text: 'Planned', variant: 'note' as const },
+ link: '/docs/protocol/upgrades/t10',
+ },
{
text: 'T9',
badge: { text: 'Latest', variant: 'info' as const },
From 3726da436e0fcf776d83f654707e726e3745953d Mon Sep 17 00:00:00 2001
From: Jennifer <5339211+jenpaff@users.noreply.github.com>
Date: Mon, 17 Aug 2026 17:43:52 +0000
Subject: [PATCH 2/4] docs: address T10 review feedback
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
---
src/pages/docs/protocol/upgrades/t10.mdx | 13 -------------
src/pages/docs/protocol/zones/architecture.mdx | 9 +++++++++
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/src/pages/docs/protocol/upgrades/t10.mdx b/src/pages/docs/protocol/upgrades/t10.mdx
index 7808f6a0..4dfba81d 100644
--- a/src/pages/docs/protocol/upgrades/t10.mdx
+++ b/src/pages/docs/protocol/upgrades/t10.mdx
@@ -63,15 +63,8 @@ At activation, T10 installs the factory and three shared runtimes atomically:
| Zone verifier | `0x5a56000000000000000000000000000000000000` |
| Zone messenger | `0x5A4d000000000000000000000000000000000000` |
-The factory owner cannot replace these runtimes. Any future runtime replacement requires another hardfork. Because every portal delegates to the shared implementation address, a future replacement upgrades all existing portals and must preserve their storage layout.
-
## Integration impact
-### For node operators
-
-- Upgrade to v1.13.0 before activation on each network.
-- Nodes that do not upgrade fall out of consensus when T10 activates.
-
### For zone operators and applications
- Create zones through the native `ZoneFactory` address.
@@ -79,9 +72,3 @@ The factory owner cannot replace these runtimes. Any future runtime replacement
- Ensure the initial TIP-20 token has a TIP-403 policy binding.
- Read the created portal address from factory state or `ZoneCreated` rather than predicting deployment addresses.
- Use `isZonePortal` when validating whether an address is a registered portal.
-
-### For indexers and infrastructure
-
-- Index the native factory at its reserved address.
-- Continue consuming `ZoneCreated` and the canonical factory registry.
-- Treat portal accounts as ERC-1167 proxies with independent storage and a shared implementation.
diff --git a/src/pages/docs/protocol/zones/architecture.mdx b/src/pages/docs/protocol/zones/architecture.mdx
index 57dce550..2f95c4ce 100644
--- a/src/pages/docs/protocol/zones/architecture.mdx
+++ b/src/pages/docs/protocol/zones/architecture.mdx
@@ -66,6 +66,15 @@ The system consists of contracts on both Tempo Mainnet and within each Tempo Zon
- **`ZonePortal`** is the central bridge contract. It locks all deposited tokens, verifies validity proofs, and processes withdrawals. The Zone Portal contract maintains the authoritative state: which deposits have been made, which batches have been proven, and which withdrawals are pending.
- **`ZoneMessenger`** handles withdrawals that include callbacks. When a user wants to withdraw tokens and trigger a contract call atomically, the messenger executes both operations together. If the callback fails, the entire withdrawal reverts and funds bounce back to the zone.
+The protocol manages the shared Tempo contracts at these addresses:
+
+| Component | Address |
+|-----------|---------|
+| `ZoneFactory` | `0x5AF2000000000000000000000000000000000000` |
+| `ZonePortal` implementation | `0x5AD1000000000000000000000000000000000000` |
+| Zone verifier | `0x5a56000000000000000000000000000000000000` |
+| `ZoneMessenger` | `0x5A4d000000000000000000000000000000000000` |
+
### Zone Predeploys
Tempo Zones have four system contract predeploys at fixed addresses:
From dbb7a236f7e550b84796987d4b9e57788a7ba187 Mon Sep 17 00:00:00 2001
From: Jennifer <5339211+jenpaff@users.noreply.github.com>
Date: Mon, 17 Aug 2026 18:44:54 +0000
Subject: [PATCH 3/4] docs: add v1.13.0 release date
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
---
src/pages/docs/guide/node/network-upgrades.mdx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/docs/guide/node/network-upgrades.mdx b/src/pages/docs/guide/node/network-upgrades.mdx
index b28fde6a..4c5f1d44 100644
--- a/src/pages/docs/guide/node/network-upgrades.mdx
+++ b/src/pages/docs/guide/node/network-upgrades.mdx
@@ -15,7 +15,7 @@ For detailed release notes and binaries, see the [Changelog](/docs/changelog).
| Release | Date | Network | Description | Priority |
|---------|------|---------|-------------|----------|
-| v1.13.0 | Forthcoming | Testnet + Mainnet | Required for T10. Enshrines ZoneFactory, assigns deterministic ZonePortal addresses, and installs canonical shared zone runtimes. Testnet activation is scheduled for Aug 20, 2026; mainnet activation is scheduled for Aug 21, 2026. | Required |
+| v1.13.0 | Aug 17, 2026 | Testnet + Mainnet | Required for T10. Enshrines ZoneFactory, assigns deterministic ZonePortal addresses, and installs canonical shared zone runtimes. Testnet activation is scheduled for Aug 20, 2026; mainnet activation is scheduled for Aug 21, 2026. | Required |
| [v1.12.0](https://github.com/tempoxyz/tempo/releases/tag/v1.12.0) | Aug 3, 2026 | Testnet + Mainnet | Required for T9. Adds TIP-403 storage for TIP-20 token policy bindings used by zones/provable contract flows, plus a targeted migration path for existing tokens that need one. T9 is active on testnet and mainnet. | Required |
| [v1.11.0](https://github.com/tempoxyz/tempo/releases/tag/v1.11.0) | Jul 22, 2026 | Testnet + Mainnet | Required for T8. Includes current committee state, FeeAMM policy changes, versioned Stablecoin DEX order storage, DEX V2Order support, and final TIP-20 rewards deprecation. T8 is active on testnet and mainnet. | Required |
| [v1.10.1](https://github.com/tempoxyz/tempo/releases/tag/v1.10.1) | Jun 29, 2026 | Testnet + Mainnet | Required for T7; includes storage credits for DEX order storage and TIP-20 channel storage, dynamic base fee behavior, and TIP-20 rewards deprecation. | Required |
From 918b78205d0d4d1ac861c73e14695cddd41a9415 Mon Sep 17 00:00:00 2001
From: Jennifer <5339211+jenpaff@users.noreply.github.com>
Date: Mon, 17 Aug 2026 18:46:50 +0000
Subject: [PATCH 4/4] docs: remove T10 integration impact section
Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
---
src/pages/docs/protocol/upgrades/t10.mdx | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/src/pages/docs/protocol/upgrades/t10.mdx b/src/pages/docs/protocol/upgrades/t10.mdx
index 4dfba81d..18dc57ea 100644
--- a/src/pages/docs/protocol/upgrades/t10.mdx
+++ b/src/pages/docs/protocol/upgrades/t10.mdx
@@ -62,13 +62,3 @@ At activation, T10 installs the factory and three shared runtimes atomically:
| `ZonePortal` implementation | `0x5AD1000000000000000000000000000000000000` |
| Zone verifier | `0x5a56000000000000000000000000000000000000` |
| Zone messenger | `0x5A4d000000000000000000000000000000000000` |
-
-## Integration impact
-
-### For zone operators and applications
-
-- Create zones through the native `ZoneFactory` address.
-- Budget at least 15,000,000 gas for `createZone`.
-- Ensure the initial TIP-20 token has a TIP-403 policy binding.
-- Read the created portal address from factory state or `ZoneCreated` rather than predicting deployment addresses.
-- Use `isZonePortal` when validating whether an address is a registered portal.