<!-- tempo-docs-context -->
> Source: [/docs/protocol/zones](https://tempo.xyz/developers/docs/protocol/zones.md)
> Section: [Zones](https://tempo.xyz/developers/docs/zones.md). Connect to a Zone and work with private balances, deposits, and withdrawals. Zones is live on Mainnet; see the introduction to set up a Zone. Earlier testnet sandbox guides describe a separate integration.
> [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="tempo-zones-private-transaction-protocol" />

# How Zones Work

Zones are private stablecoin ledgers that use Tempo for deposits, withdrawals, and settlement.

## Overview

A Zone keeps balances and account activity private. Each Zone has a portal (`ZonePortal`) on Tempo and a private ledger. The portal holds the Zone's backing assets. The Zone's operator maintains the ledger. A deposit locks tokens in the portal and credits a private account. A withdrawal moves tokens back to a Tempo address.

The Technical Reference specifies each part of this model:

* **[Architecture](https://tempo.xyz/developers/docs/protocol/zones/architecture):** Covers contracts, chain IDs, sequencer management, and the trust model.
* **[Accounts and Privacy](https://tempo.xyz/developers/docs/protocol/zones/accounts):** Covers read restrictions on balances, allowances, and other account data.
* **[Bridging](https://tempo.xyz/developers/docs/protocol/zones/bridging):** Covers deposits, withdrawals, encrypted deposits, and withdrawal callbacks.
* **[RPC Reference](https://tempo.xyz/developers/docs/protocol/zones/rpc):** Covers authorization tokens, method access, redaction, and event filtering.
* **[Execution and Gas](https://tempo.xyz/developers/docs/protocol/zones/execution):** Covers fee tokens, bridge fees, fixed gas costs, and token management.
* **[Proving and Settlement](https://tempo.xyz/developers/docs/protocol/zones/proving):** Covers batch submission, verification, and current enforcement limits.

A public ZonePortal holds backing assets and bridge queues on Tempo. The operator runs a separate private account ledger. Deposits and withdrawals cross the boundary, while settlement submits commitments and sequencer certificates.

<span id="tempo-zones-are-private" />

## Private Accounts

Accounts read their own balances and activity through the authenticated Zone RPC. Other users and public block explorers can't browse the Zone's ledger. The operator can see its full state. Bridge activity stays public on Tempo, as the [Zone visibility model](https://tempo.xyz/developers/docs/zones/privacy) describes.

Public observers see bridge amounts, withdrawal destinations, and settlement checkpoints. An authenticated account can read its own private balance and history. The operator can see the entire Zone state.

The Zone restricts [account reads](https://tempo.xyz/developers/docs/protocol/zones/accounts), such as private balances and allowances. Its [RPC](https://tempo.xyz/developers/docs/protocol/zones/rpc) scopes each response to the authenticated account.

<span id="tempo-zones-are-compliant-by-design" />

## Issuer Policies

Tokens keep their issuer's transfer policies inside a Zone. Zone execution reads those policies from a finalized Tempo checkpoint. The same issuer rules govern which accounts can send or receive tokens.

The issuer updates its TIP-403 policy on Tempo. The Zone imports a finalized checkpoint through TempoState and applies the policy at that checkpoint during token execution.

The [TIP-403 registry](https://tempo.xyz/developers/docs/protocol/tip403/overview) defines the policies. Zone [execution](https://tempo.xyz/developers/docs/protocol/zones/execution) applies them.

<span id="tempo-zones-are-safe-from-theft" />

<span id="tempo-zone-settlement-verification" />

## Settlement on Tempo

The sequencer groups Zone blocks into batches and submits their commitments to the portal. When the portal accepts a batch, it records the Zone's progress. It then makes the batch's withdrawals available for processing on Tempo. [Proving and settlement](https://tempo.xyz/developers/docs/protocol/zones/proving) defines the checks and their current limits.

<span id="tempo-zones-are-interoperable" />

## Access to Tempo Liquidity

Withdrawals can call Tempo contracts through [composable withdrawals](https://tempo.xyz/developers/docs/protocol/zones/bridging#composable-withdrawals). An application can combine token delivery with a Stablecoin DEX swap or a deposit into another Zone. The public part of the route uses Tempo's liquidity. The destination Zone then processes its deposit into a private balance.

<span id="github-and-specifications" />

## Source and Specification

The [Zones repository](https://github.com/tempoxyz/zones) contains the implementation and [protocol specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md).

<span id="reference" />

<span id="zone-protocol-references" />

## Related

[Tempo Zones](https://tempo.xyz/developers/docs/zones): Covers what a Zone is, who it's for, and the reading path through Build.

[Privacy](https://tempo.xyz/developers/docs/zones/privacy): Covers who can see Zone data and the trust assumptions behind it.

[Connect to a Zone](https://tempo.xyz/developers/docs/zones/connect): Use for authorizing your application's access to a Zone deployment.

[Testnet Sandbox](https://tempo.xyz/developers/docs/guide/private-zones): Use for trying Zone flows with test funds on earlier testnet deployments.
