curl -X POST "https://api.chipipay.com/v1/cctp/register-burn" \
-H "Authorization: Bearer sk_prod_xxxx" \
-H "x-api-key: pk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"burnTx": "0x7f3a...",
"sourceDomain": 6,
"mintRecipient": "0x03329497...",
"amountUsdc": 25.5
}'
const response = await fetch("https://api.chipipay.com/v1/cctp/register-burn", {
method: "POST",
headers: {
"Authorization": "Bearer sk_prod_xxxx",
"x-api-key": "pk_xxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
burnTx: "0x7f3a...",
sourceDomain: 6,
mintRecipient: "0x03329497...",
amountUsdc: 25.5
})
});
{
"ok": true
}
Cross-chain
Register CCTP Deposit Burn
Register a cross-chain deposit burn so Chipi delivers the Starknet mint, even if the user closes the page
POST
/
cctp
/
register-burn
curl -X POST "https://api.chipipay.com/v1/cctp/register-burn" \
-H "Authorization: Bearer sk_prod_xxxx" \
-H "x-api-key: pk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"burnTx": "0x7f3a...",
"sourceDomain": 6,
"mintRecipient": "0x03329497...",
"amountUsdc": 25.5
}'
const response = await fetch("https://api.chipipay.com/v1/cctp/register-burn", {
method: "POST",
headers: {
"Authorization": "Bearer sk_prod_xxxx",
"x-api-key": "pk_xxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
burnTx: "0x7f3a...",
sourceDomain: 6,
mintRecipient: "0x03329497...",
amountUsdc: 25.5
})
});
{
"ok": true
}
curl -X POST "https://api.chipipay.com/v1/cctp/register-burn" \
-H "Authorization: Bearer sk_prod_xxxx" \
-H "x-api-key: pk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"burnTx": "0x7f3a...",
"sourceDomain": 6,
"mintRecipient": "0x03329497...",
"amountUsdc": 25.5
}'
const response = await fetch("https://api.chipipay.com/v1/cctp/register-burn", {
method: "POST",
headers: {
"Authorization": "Bearer sk_prod_xxxx",
"x-api-key": "pk_xxxx",
"Content-Type": "application/json"
},
body: JSON.stringify({
burnTx: "0x7f3a...",
sourceDomain: 6,
mintRecipient: "0x03329497...",
amountUsdc: 25.5
})
});
{
"ok": true
}
Call it the moment the burn hash exists, before waiting for the receipt. From then on the deposit completes without the browser: Chipi polls Circle every two minutes and mints from its own account. The mint recipient must be one of your API key’s wallets. The SDK’s
useCrossChainDeposit does this for you.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
application/json
The source-chain burn transaction hash (depositForBurn)
Circle CCTP domain of the source chain (6 Base, 3 Arbitrum, 2 Optimism, 7 Polygon, 0 Ethereum, 5 Solana)
The Chipi wallet the burn mints to. Must be one of this API key's wallets.
Human USDC amount burned, e.g. 25.5
Response
Burn registered
Available options:
true Was this page helpful?
⌘I
