{"id":51222365,"url":"https://github.com/tempoxyz/zones","last_synced_at":"2026-06-28T08:03:51.113Z","repository":{"id":351875099,"uuid":"1135798703","full_name":"tempoxyz/zones","owner":"tempoxyz","description":"Zones are private blockchains anchored to Tempo, with native support for confidential balances and transactions. Zones inherit compliance from Tempo L1 and support interoperability with Tempo for moving assets in and out of zones.","archived":false,"fork":false,"pushed_at":"2026-06-24T06:52:48.000Z","size":18258,"stargazers_count":40,"open_issues_count":29,"forks_count":14,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-24T08:25:18.015Z","etag":null,"topics":["evm","privacy","tempo"],"latest_commit_sha":null,"homepage":"https://docs.tempo.xyz/guide/private-zones","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tempoxyz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-16T15:56:25.000Z","updated_at":"2026-06-24T02:06:54.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/tempoxyz/zones","commit_stats":null,"previous_names":["tempoxyz/zones"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tempoxyz/zones","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fzones","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fzones/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fzones/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fzones/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tempoxyz","download_url":"https://codeload.github.com/tempoxyz/zones/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tempoxyz%2Fzones/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34881390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["evm","privacy","tempo"],"created_at":"2026-06-28T08:03:50.367Z","updated_at":"2026-06-28T08:03:51.107Z","avatar_url":"https://github.com/tempoxyz.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://tempo.xyz/blog/introducing-tempo-zones\"\u003e\n    \u003cimg src=\"assets/header.png\" alt=\"Tempo Zones\" width=\"100%\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Zones\n\n\u003e [!NOTE]\n\u003e This repository is actively under development and subject to rapid iteration.\n\u003e APIs, interfaces, and behavior may change without notice. Not recommended for production use yet.\n\nZones are private blockchains anchored to [Tempo](https://github.com/tempoxyz/tempo) *(currently available in testnet only),* with native support for confidential balances and transactions. Zones inherit compliance via TIP403 policies from Tempo and support interoperability with Tempo for moving assets in and out of Zones.\n\nYou can get started today by [deploying a Zone](#getting-started) on Tempo testnet, reading the [Zones documentation](https://docs.tempo.xyz/guide/private-zones), or exploring the [Zone spec](specs/ref-impls/zone_spec.md).\n\n\u003cbr\u003e\n\n## What Makes Zones Interesting\n\n- **Private balances and transactions.** State access requires account authentication at the RPC layer. This ensures that only the authorized account holder can access balances and transaction history. The Zone operator maintains full visibility into state for compliance.\n\n- **Encrypted deposits and withdrawals.** When depositing into a Zone, users can encrypt the recipient to not reveal who receives funds inside the Zone. Encrypted withdrawals are also possible, allowing the sender to be replaced with a commitment, preserving recipient verifiability without exposing the sender when withdrawing to Tempo mainnet.\n\n- **Zone to Zone transfers.** Zones interoperate with Tempo via withdrawals with optional calldata. Withdrawal calldata can execute on Tempo and deposit into another Zone, enabling flows like Zone to Zone transfers or executing a swap between sending amounts to another Zone.\n\n- **Compliance inherited from Tempo.** [TIP-403](https://docs.tempo.xyz/protocol/tip403/overview) policies (whitelist, blacklist) are mirrored from Tempo and enforced on Zones. Issuers set the policy once on Tempo and the Zone picks it up automatically. If an issuer freezes an address or updates a blacklist on Tempo, the Zone inherits the change in the next block in the Zone.\n\n- **Fast withdrawals.** The Zone processes transactions every 250ms and submits batches of withdrawals to Tempo, where blocks are produced every ~500ms. Once batches are accepted and the attached proof is validated, withdrawals are processed and funds are released from escrow.\n\n\u003cbr\u003e\n\n## Getting Started\n\nPrerequisites: [Rust](https://rustup.rs/), [Foundry](https://book.getfoundry.sh/getting-started/installation), [`just`](https://github.com/casey/just#packages), [`jq`](https://jqlang.github.io/jq/download/)\n\n\n### Deploying a Zone\n\n```bash\n# Deploy and start a zone on Moderato testnet\nexport L1_RPC_URL=\"wss://rpc.moderato.tempo.xyz\"\njust deploy-zone my-zone\n```\n\nThe `deploy-zone` command generates a sequencer keypair, funds it on L1, deploys the portal via `ZoneFactory`, generates genesis, and starts the node.\n\n```bash\n# Start/restart a zone after initial deployment\njust zone-up my-zone\n```\n\n### Depositing into a Zone\n\n```bash\nexport L1_PORTAL_ADDRESS=$(jq -r '.portal' generated/my-zone/zone.json)\nexport PRIVATE_KEY=$(jq -r '.sequencerKey' generated/my-zone/zone.json)\njust max-approve-portal\n\n# deposit into the zone\njust send-deposit 1000000                       # deposit to your own address\njust send-deposit 1000000 \u003crecipient-address\u003e   # deposit to a specific address\n```\n\n```bash\n# send an encrypted deposit\njust send-deposit-encrypted 1000000                       # to your own address\njust send-deposit-encrypted 1000000 \u003crecipient-address\u003e   # to a specific address\n```\n\n### Withdrawing from Zone to Tempo\n\n```bash\n\n# withdraw from the zone\njust max-approve-outbox\njust send-withdrawal 1000000 \u003crecipient-address\u003e  # withdraw to a specific address\n```\n\nThe sequencer includes the withdrawal in the next batch submission to L1 and processes it automatically.\n\n\n### Querying the Private RPC\n\nZone balances are private by default. Every RPC request must include a signed authorization token that proves you control the querying account.\n\n`just zone-auth-token` reads `generated/\u003cname\u003e/zone.json` and signs a short-lived auth token:\n\n```bash\n\n# generate an auth token\nexport PRIVATE_KEY=\u003czone-wallet-private-key\u003e\nexport TOKEN=$(just zone-auth-token my-zone)\n\n# query your TIP-20 balance \njust check-balance-private my-zone \u003ctoken-address\u003e\n```\n\n\nSee [docs/ZONES.md](docs/ZONES.md) for the full guide on deposits, withdrawals, private RPC, router demos, TIP-403 policy flows, and command references.\n\n\u003cbr\u003e \n\n## License\n\nLicensed under either of [Apache License](./LICENSE-APACHE), Version\n2.0 or [MIT License](./LICENSE-MIT) at your option.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in these crates by you, as defined in the Apache-2.0 license,\nshall be dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftempoxyz%2Fzones","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftempoxyz%2Fzones","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftempoxyz%2Fzones/lists"}