Domain Policy
for supply accounting
USDX uses protocol-defined domain IDs to reconcile supply across 11 EVM networks. This policy explains what a domain is, why it is not the same thing as a native chain ID, and how the public API resolves domain aliases.
01 Overview
A domain is a protocol-defined integer identifier used by USDX to represent one supply-bearing network in the global accounting model. Domain IDs are assigned at system design time and remain stable for the life of the deployment.
USDXGlobalSupplyController tracks remote domain supply keyed by domain ID,
not by chain ID.
Phase 1 covers 11 EVM-compatible networks. All domains use the same
USDXToken contract interface, the same 6-decimal denomination,
and the same governance and compliance architecture.
02 Phase 1 Domain Registry
The following table defines the canonical domain ID assignments for all 11 Phase 1 networks. These values are fixed in the manifest files and in the public registry.
| Domain ID | Network | Network Family | EVM Chain ID |
|---|---|---|---|
| 1 | Ethereum | EVM | 1 |
| 2 | Arbitrum One | EVM | 42161 |
| 3 | Polygon PoS | EVM | 137 |
| 4 | BNB Smart Chain | EVM | 56 |
| 5 | Base | EVM | 8453 |
| 6 | Optimism | EVM | 10 |
| 7 | Celo | EVM | 42220 |
| 8 | Avalanche C-Chain | EVM | 43114 |
| 9 | Scroll | EVM | 534352 |
| 10 | Linea | EVM | 59144 |
| 11 | Unichain | EVM | 130 |
Each network also has a distinct set of operator addresses: a governance multisig, an emergency multisig, a treasury operator, a compliance operator, a reserve reporter, and a supply reporter. These are defined per-chain in the deployment manifests and are independent of the domain ID assignment.
03 Alias Resolution
The public API resolves multiple aliases for GET /supply/{identifier}.
An identifier may be a numeric domain ID, a network label, or a common short alias.
All aliases resolve to the canonical domain object.
- Ethereum:
1,ethereum,eth,ethereum-mainnet - Arbitrum:
2,arbitrum,arb,arbitrum-mainnet - Polygon:
3,polygon,poly,polygon-mainnet - BNB Chain:
4,bnb,bsc,bnb-mainnet - Base:
5,base,base-mainnet - Optimism:
6,optimism,op,optimism-mainnet - Celo:
7,celo,celo-mainnet - Avalanche:
8,avalanche,avax,avalanche-cchain-mainnet - Scroll:
9,scroll,scroll-mainnet - Linea:
10,linea,linea-mainnet - Unichain:
11,unichain,unichain-mainnet
Aliases that are ambiguous (e.g., a short name that could match multiple networks)
should not be added. The canonical rule is: one alias maps to exactly one domain.
Unknown aliases return 404.
04 Adding Domains
New domains may be added in future phases when they meet the deployment criteria. All new domains must be EVM-compatible in Phase 1+. Non-EVM support requires separate aggregation infrastructure and a separate policy amendment.
- Assign a unique canonical
domain_idsequentially from 12 onward. - Create and populate a deployment manifest with operator addresses and configuration.
- Deploy the full six-contract stack and verify via the RPC smoke matrix.
- Register the domain in the public registry with real contract addresses.
- Update the
USDX_REMOTE_DOMAIN_IDSparameter on all existing domains via the governance timelock (48-hour delay applies). - Update this policy document, the transparency API reference, and the public registry rules.