Skip to main content
Every contract Calibri trades against is public. You do not have to take custody claims on trust: read the code, check the balances, and confirm your own Safe holds what you think it holds. This page lists what is deployed and shows you how to verify each address for yourself.
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.
When they are live, you can check a module against its limits yourself. 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:
The member-level call returns 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.
Read these addresses from the API rather than copying them into your own client. A wrong address silently sends signatures somewhere they cannot settle.

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.

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.