Contract Addresses
Canonical list of Dimes Multiply contract and token addresses on Polygon mainnet. Use these to verify on Polygonscan before approving any spend.
Last updated
Canonical list of Dimes Multiply contract and token addresses on Polygon mainnet. Use these to verify on Polygonscan before approving any spend.
Multiply's on-chain surface is a single vault contract per environment. All user funds flow through the vault — pUSD in, position tokens in, pUSD out. Verify these on Polygonscan before allowlisting them. The vault address is also on every quote response (polygon_vault_contract_address) and from GET /prediction-markets/contract-info.
Real pUSD. Real Polymarket CTF (Conditional Token Framework). Live positions.
Chain: Polygon mainnet (EVM chain ID 137).
The vault is the only contract you approve pUSD against. It never holds user funds for longer than it takes to execute an open/close against Polymarket, and it cannot move your pUSD for any purpose other than the position you authorize via signed quote parameters.
Test pUSD. Fake Polymarket CTF. No real funds at risk. See Sandbox for how to get access.
Chain: Polygon mainnet (EVM chain ID 137).
The sandbox vault runs the same LeveragedPredictionVaultV1 contract as production — same ABI, same signature scheme, same position lifecycle. The only differences are the addresses and that the tokens it pulls and settles against are worthless outside the sandbox.
Every quote returned by POST /prediction-markets/quotes is signed by a server-side authority key. Before you submit the quote on-chain, recover the signer from the signature and compare it to the authority address in GET /prediction-markets/contract-info. Any quote where the recovered signer does not match must be rejected — it has been tampered with in transit.
See API Reference — Verifying a quote signature for the exact message hash layout and a working ethers.js example.
Find us on the Telegram link at dimes.fi if you spot an address discrepancy, need the current sandbox contracts, or want us to sign off on your contract allowlist before you ship.
Last updated
curl https://api.dimes.fi/v1/prediction-markets/contract-info \
-H "Authorization: Bearer <jwt>"const info = await client.getContractInfo();
console.log(info.polygonVaultContractAddress, info.polygonUsdcTokenAddress);import {useContractInfo} from "@dimes-dot-fi/sdk/react";
function ContractInfo() {
const {data: info} = useContractInfo();
// info.polygonVaultContractAddress, info.polygonUsdcTokenAddress
}
