curl -X POST "https://api.chipipay.com/v1/transactions/record-cross-chain-withdrawal" \
-H "Authorization: Bearer sk_prod_xxxx" \
-H "x-api-key: pk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"burnTxHash": "0x07d61890...",
"walletAddress": "0x03329497...",
"destChain": "Base",
"destDomain": 6,
"recipient": "0x879f50787Ab4A36aA3cDf971691BFC8058DA203c",
"token": "USDC",
"amount": "7.810000",
"feeBps": 12,
"finality": "fast"
}'
{
"burnTxHash": "0x07d61890...",
"destChain": "Base",
"destDomain": 6,
"recipient": "0x879f50787Ab4A36aA3cDf971691BFC8058DA203c",
"recipientOwner": null,
"amount": "7.81",
"status": "PENDING",
"destTxHash": null,
"sponsoredByChipi": true,
"feeBps": 12,
"finality": "fast",
"verifiedOnChain": true
}
Record Cross-chain Withdrawal
Record a withdrawal burn (Starknet to an EVM chain or Solana); Chipi verifies it against the burn itself
curl -X POST "https://api.chipipay.com/v1/transactions/record-cross-chain-withdrawal" \
-H "Authorization: Bearer sk_prod_xxxx" \
-H "x-api-key: pk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"burnTxHash": "0x07d61890...",
"walletAddress": "0x03329497...",
"destChain": "Base",
"destDomain": 6,
"recipient": "0x879f50787Ab4A36aA3cDf971691BFC8058DA203c",
"token": "USDC",
"amount": "7.810000",
"feeBps": 12,
"finality": "fast"
}'
{
"burnTxHash": "0x07d61890...",
"destChain": "Base",
"destDomain": 6,
"recipient": "0x879f50787Ab4A36aA3cDf971691BFC8058DA203c",
"recipientOwner": null,
"amount": "7.81",
"status": "PENDING",
"destTxHash": null,
"sponsoredByChipi": true,
"feeBps": 12,
"finality": "fast",
"verifiedOnChain": true
}
curl -X POST "https://api.chipipay.com/v1/transactions/record-cross-chain-withdrawal" \
-H "Authorization: Bearer sk_prod_xxxx" \
-H "x-api-key: pk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"burnTxHash": "0x07d61890...",
"walletAddress": "0x03329497...",
"destChain": "Base",
"destDomain": 6,
"recipient": "0x879f50787Ab4A36aA3cDf971691BFC8058DA203c",
"token": "USDC",
"amount": "7.810000",
"feeBps": 12,
"finality": "fast"
}'
{
"burnTxHash": "0x07d61890...",
"destChain": "Base",
"destDomain": 6,
"recipient": "0x879f50787Ab4A36aA3cDf971691BFC8058DA203c",
"recipientOwner": null,
"amount": "7.81",
"status": "PENDING",
"destTxHash": null,
"sponsoredByChipi": true,
"feeBps": 12,
"finality": "fast",
"verifiedOnChain": true
}
DepositForBurn event: the burn must be USDC from walletAddress, and its amount, destination domain and mint recipient replace yours (for Solana, the recipient must be recipientOwner’s USDC token account). feeBps is capped at Circle’s live fee. When the receipt is not indexed yet, your values are stored with verifiedOnChain: false and finalize verifies them before any USDC moves.Authorizations
Bearer token — use your secret key (sk_prod_xxx) for server-side calls, or the user's JWT for client-side calls
Your Chipi public API key (pk_xxx)
Body
The Starknet deposit_for_burn transaction hash. Idempotency key.
The Chipi wallet that burned. The burn's DepositForBurn event must name it as the depositor.
Destination chain label, e.g. "Base"
Circle CCTP domain of the destination chain. Replaced by the burn's own value.
Destination address (EVM) or Solana owner. For EVM, replaced by the burn's own mint recipient.
Token identifier
USDC, USDC_E, USDT, DAI, ETH, STRK, SLINK, ALF, BROTHER, ARB, DOC, MXNB, WLD, WBTC, OTHER Human USDC amount, e.g. "7.810000". Replaced by the burn's own amount.
Solana only: the owner whose USDC token account the burn mints to
The fee quoted for this route, in basis points. Capped at Circle's live fee.
fast: Circle attests after a few confirmations, for a fee taken from the amount. standard: free, attested at the source chain's hard finality.
fast, standard Response
Withdrawal recorded (PENDING)
Human USDC
PENDING, COMPLETE, FAILED The destination receiveMessage transaction, once COMPLETE
Whether amount, destDomain and recipient were read from the burn's own DepositForBurn event
Was this page helpful?
