Developers
Deposit via CCTP (Native USDC)
Fund Amplifi accounts programmatically with native USDC from any CCTP-enabled chain.
Overview
Integration partners can fund Amplifi accounts by sending native USDC over Circle's CCTP from any CCTP-enabled chain (Base, Arbitrum, Ethereum, Noble/IBC, and others). Amplifi converts the delivered USDC to pUSD (the trading collateral) and credits the account automatically — no manual steps, no Amplifi-side coordination.
Each end-user needs an EOA (for example, a Turnkey-managed key). The EOA never needs gas on Polygon for any Amplifi operation; the only gas anywhere in the flow is whoever relays the CCTP mint.
The flow
1. Provision a deposit wallet
curl -X POST https://api.amplifi.finance/polymarket/wallet \
-H "Content-Type: application/json" \
-d '{"userAddress": "<END_USER_EOA>"}'
Returns the user's deposit wallet address immediately (CREATE2-derived), plus approved / clobReady readiness flags. The call is idempotent — safe to re-call any time. You can send funds to the address right away; it is valid before the contract is deployed.
2. Burn USDC on the source chain
A CCTP v2 depositForBurn with the deposit wallet as the mint recipient. On chains with Fast Transfer (Base, Arbitrum, Ethereum, …) use minFinalityThreshold: 1000 with a nonzero maxFee — attests in seconds for a few bps. On chains where Circle marks Fast Transfer N/A because finality is already near-instant, use a standard transfer — minFinalityThreshold: 2000, maxFee: 0 — which is free and attests just as quickly.
3. Relay the mint on Polygon
Poll Circle's Iris API with the burn tx hash until the attestation is complete, then call MessageTransmitter.receiveMessage on Polygon. Whoever relays holds the mint transaction hash — that hash is what you submit to Amplifi. (If you use Circle's forwarding service instead of self-relaying, Iris returns the delivery hash as forwardTxHash.)
4. Confirm the deposit
curl -X POST https://api.amplifi.finance/polymarket/bridge/deposit-confirmed \
-H "Content-Type: application/json" \
-d '{"userAddress": "<END_USER_EOA>", "txHash": "<POLYGON_MINT_TX_HASH>"}'
Response:
{ "forwarding": true, "amount": "2999610", "txHash": "0x…", "wrapped": false }
forwarding: true means Amplifi verified the mint on-chain and is converting the USDC to pUSD. The credit lands automatically, typically 30–60 seconds after the mint (dominated by the collateral conversion).
5. Poll the balance until credited
curl https://api.amplifi.finance/polymarket/balance/<END_USER_EOA>
The deposit is complete when availableBalanceFormatted has grown by the deposited amount. The account can trade immediately from that point.
Errors
A 4xx is permanent — the tx will never qualify (reverted, not a deposit, or no transfer to this user's wallet). A 5xx is transient (receipt not yet visible). Confirms are idempotent: re-sending the same tx hash is always safe and returns the existing state.
Constraints
- Minimum $2 per deposit (conversion-route minimum). Leave a small buffer — CCTP fast-transfer fees are deducted from the amount.
- The default withdrawal pays out USDC.e on Polygon to the user's EOA. To return funds to native USDC on another chain over CCTP, use Withdraw via CCTP.
- When onboarding many users in a burst, space the provisioning calls and retry on 5xx.
