Regions
A region is a sovereign boundary. Your managed cell lives in exactly one region, and every record, key and token belongs to it - nothing crosses that boundary unless you make it.
Your sovereign cell is a dedicated, isolated managed deployment in the region you choose. Identity data, encryption keys, audit logs and session state are written, read and processed only inside that region. There is no shared global control plane that can see your tenants’ data, which is what lets OrthID make hard residency guarantees instead of best-effort ones. For the model behind this, read Regions & sovereignty.
Available and planned regions
One region is live today; the others are on our deployment roadmap. Each region has a short, stable identifier. That identifier names where your cell runs, appears in your region’s API base URL, and is carried by ORTHID_REGION in your application config and when issuing region-bound agent credentials.
| Region | Location | Residency | Status |
|---|---|---|---|
au-syd-1 | Sydney, Australia | AU | Available |
au-mel-2 | Melbourne, Australia | AU | Planned |
uk-lon-1 | London, United Kingdom | UK | Planned |
eu-fra-1 | Frankfurt, Germany | EU | Planned |
us-chi-1 | Chicago, United States | US | Planned |
Reach your region
Set ORTHID_REGIONon every process that talks to OrthID. The SDK uses it to route to your cell’s regional endpoint, and the server rejects any request whose key does not belong to that region, so a misconfigured client fails closed rather than leaking across a boundary.
ORTHID_REGION=au-syd-1 ORTHID_SECRET_KEY=sk_live_... NEXT_PUBLIC_ORTHID_PUBLISHABLE_KEY=pk_live_...
The region also fixes the API base URL. The target architecture gives every regional cell a predictable host of the form api.<region>.orthid.io. The live region is reachable today; the rest follow as each region is stood up:
https://api.au-syd-1.orthid.io # available now https://api.eu-fra-1.orthid.io # planned https://api.us-chi-1.orthid.io # planned
region_mismatch errors immediately.Residency guarantees
For a cell pinned to a region, OrthID guarantees that:
- Data at reststays in-region. The database, object storage and backups are provisioned and replicated only within the region’s jurisdiction.
- Keys never leave.Signing and encryption keys live in the region’s KMS or HSM. With BYOK, OrthID never holds the key material at all - see BYOK.
- Processing is local. Token verification, RBAC evaluation and audit writes all run in-region. Tokens are signed by region-local keys and cannot be verified elsewhere.
- Telemetry is scrubbed. Operational metrics carry no tenant or subject data, so nothing identifying crosses the boundary.
Multi-region
Each region is independent. Operating in several regions means 3verest provisions several cells, each with its own keys, database and identifiers. OrthID does not silently replicate identities between them, because that would defeat the residency guarantee.
If you operate in more than one jurisdiction, the common patterns are:
- Route by tenant.Decide a tenant’s home region at sign-up and send that tenant’s traffic to the matching regional endpoint for its entire lifetime.
- Separate keys per region. Keep one key pair per region and select them with
ORTHID_REGIONrather than sharing a single key across deployments. - Bind agents to a region. When you issue an agent credential, set
regionso the delegated identity is only ever usable inside that boundary.
import { orthid } from "@orthid/sdk";
// An agent credential issued in au-syd-1 is only valid in au-syd-1.
const agent = await orthid.agents.issue({
onBehalfOf: "user_5f3a",
scope: ["records:read"],
ttl: "10m",
region: "au-syd-1",
});Next steps
- Regions & sovereignty - the concepts behind residency and data boundaries.
- Provisioning - how 3verest stands up your regional cell.
- BYOK - keep key material in your own KMS or HSM.