The API is the authoritative source for every address on every network. The values below are for reference and verification — if this page and the API ever disagree, the API is right and this page is stale.
Polygon (mainnet)
Calibri settles on Polygon, chain id 137, collateralised in native USDC.
The CTF Exchange was deployed on 2 August 2026 and carries Calibri’s own
EIP-712 domain name — it is not a shared or third-party exchange. That domain
name is hashed into every order signature, which is why the app serves it rather
than hard-coding it, and why signatures made against a different exchange cannot
be replayed here.
ConditionalTokens is not ours. It is Gnosis’ audited Conditional Token Framework, already deployed on Polygon and used by other prediction markets. Calibri deploys against the canonical instance rather than a fork — your collateral sits in a contract that predates us and is not under our control.
Wallet infrastructure
These four are what a Safe is made of. You never need them to trade, or to move funds from a Safe that exists — they matter for exactly one case: a Safe address that was funded before it was deployed. Deployment happens on your first deposit, so an address can hold USDC with no contract at it yet, and both factories below are permissionless, meaning anyone can deploy it. That is what keeps withdrawing without Calibri true even for a wallet we never got around to creating.The mainnet values are published here once the production contracts are deployed. Until then, ask support — they are fixed per network, identical for every member, and not secret: the Safe factory is readable from the exchange’s own
safeFactory view, and the singleton and handler from any deployed Safe’s storage.Cross-network deposits
These contracts let USDC sent to your Safe address on another network reach your Safe on Polygon — see Deposits from other networks. Each is deployed at the same address on Polygon, Ethereum, Base, Arbitrum and Optimism, which is what makes your Safe’s address the same on all of them. When they are live, CalibriSafeFactoryV2 is the Safe factory listed above.These contracts are not deployed to mainnet yet. Addresses are published here once they are. Until then, deposits from other networks are not available — send USDC on Polygon only.
CctpBridgeModule
exposes MAX_FEE_ABS, MAX_FEE_BPS, MIN_AMOUNT, DEST_DOMAIN (7, Polygon) and
TOKEN_MESSENGER (Circle’s TokenMessengerV2) as public views, and localUsdc() returns the
USDC it moves on that network. CalibriSafeFactoryV2.module() names the module every Safe
is created with, and computeProxyAddress(owner) returns your Safe’s address — the same
answer on every network.
Reading the live values
Signed in, these two endpoints return the exact addresses your account is trading against:chain_id, blockchain_key, usdc_address,
conditional_tokens_address, exchange_address, domain_name, your own
proxy_address (your Safe), and owner_address (what owns it). The per-market
call adds condition_id, yes_token_id, and no_token_id — the two ERC-1155
outcome tokens for that market.
Verifying it yourself
1
Check your Safe holds your money
Take
proxy_address from GET /account/wallet and open it on Polygonscan. Its USDC
balance is your money, in a contract only you can authorise. Nothing about
that depends on Calibri being honest.2
Check the exchange you are signing for
Confirm
exchange_address from the API matches the CTF Exchange above, and
that the contract has code at that address.3
Check the collateral
Confirm
usdc_address is native USDC on Polygon — the address in the table
above — and not a look-alike token.4
Check a specific market
For any market, verify its
condition_id and the yes_token_id /
no_token_id against ConditionalTokens. Those token ids are derived from the
resolver, the question and the collateral, so they name exactly one outcome
of one market and never change.5
Watch a settlement land
After a market resolves, the redemption that pays you is a transaction on
ConditionalTokens against your Safe. It is on the explorer like anything
else.
Related
Smart Contracts
What each contract does and why self-custody is verifiable rather than promised.
The Safe
Your own Safe — the
proxy_address in the config.Signed orders
The EIP-712 domain and order struct you sign.
Market resolution
What the resolver can and cannot do, and the permissionless fallbacks.