Skip to main content
POST
/
v2
/
cctp
/
burn
Python (SDK)
from compass_api_sdk import CompassAPI, models


with CompassAPI(
    api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:

    res = compass_api.bridge.cctp_burn(owner="0x01E62835dd7F52173546A325294762143eE4a882", chain=models.DepositForBurnRequestChain.ARBITRUM, amount="3", destination_chain=models.DestinationChain.BASE, gas_sponsorship=True, transfer_mode=models.DepositForBurnRequestTransferMode.STANDARD)

    # Handle response
    print(res)
{
  "bridge_id": "br_a1b2c3d4e5f6",
  "estimated_time_seconds": 900,
  "transaction": {
    "chainId": "0x2105",
    "data": "0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020",
    "from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
    "gas": "0x7a120",
    "maxFeePerGas": "0x59682f00",
    "maxPriorityFeePerGas": "0x3b9aca00",
    "nonce": "0x5",
    "to": "0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1",
    "value": "0x0"
  },
  "transfer_mode": "standard"
}

Authorizations

x-api-key
string
header
required

Your Compass API Key. Get your key here.

Body

application/json
owner
string
default:0x01E62835dd7F52173546A325294762143eE4a882
required

The primary wallet address that owns and controls the Product Account.

Example:

"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"

chain
enum<string>
default:arbitrum
required

The source chain where USDC will be burned.

Available options:
ethereum,
arbitrum,
base
Examples:

"base"

"ethereum"

"arbitrum"

amount
default:3
required

The amount of USDC to bridge (in token units, e.g., 100.5 for 100.5 USDC).

Required range: x > 0
Example:

100

destination_chain
enum<string>
default:base
required

The destination chain where USDC will be minted.

Available options:
ethereum,
arbitrum,
base
Examples:

"ethereum"

"arbitrum"

"base"

gas_sponsorship
boolean
default:false

Optionally request gas sponsorship. If set to true, EIP-712 typed data will be returned that must be signed by the owner and submitted to the 'Prepare gas-sponsored transaction' endpoint (/gas_sponsorship/prepare).

transfer_mode
enum<string>
default:standard

Transfer speed mode. 'fast': ~30 second transfers using confirmed finality (requires a small fee taken from transfer amount). 'standard': ~15-19 minute transfers using full finality (free, no fee). Default is 'standard'.

Available options:
fast,
standard
Examples:

"standard"

"fast"

Response

Successful Response

Response model for CCTP depositForBurn transaction from a smart account.

Contains either an unsigned transaction for direct submission or EIP-712 typed data for gas-sponsored transactions. Also includes a bridge_id for tracking the cross- chain transfer.

transfer_mode
enum<string>
required

The transfer speed mode used. 'fast' uses confirmed finality (~30s), 'standard' uses full finality (~15-19 min).

Available options:
fast,
standard
Examples:

"standard"

"fast"

estimated_time_seconds
integer
required

Estimated time to complete the bridge in seconds.

Examples:

30

900

bridge_id
string | null

Unique bridge identifier for tracking this cross-chain transfer. Use this ID when calling /mint/prepare to complete the transfer. Only present when Redis is configured on the server.

Example:

"br_a1b2c3d4e5f6"

transaction
UnsignedTransaction · object

Unsigned transaction for direct execution. Present when gas_sponsorship=false.

Example:
{
"chainId": "0x2105",
"data": "0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000675f4a3d",
"from": "0x4A83b4413CF41C3244027e1590E35a0F48403F0c",
"gas": "0x7a120",
"maxFeePerGas": "0x59682f00",
"maxPriorityFeePerGas": "0x3b9aca00",
"nonce": "0x5",
"to": "0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67",
"value": "0x0"
}
eip_712
BatchedSafeOperationsResponse · object

EIP-712 typed data for gas-sponsored execution. Present when gas_sponsorship=true.

Example:
{
"domain": {
"chainId": 8453,
"verifyingContract": "0x6B90E8B4E3E971E74C1A47a3a20976377E2dB4b1"
},
"message": {
"baseGas": "0",
"data": "0x8d80ff0a0000000000000000000000000000000000000000000000000000000000000020",
"gasPrice": "0",
"gasToken": "0x0000000000000000000000000000000000000000",
"nonce": "7",
"operation": 1,
"refundReceiver": "0x0000000000000000000000000000000000000000",
"safeTxGas": "0",
"to": "0x93C23AAE4793C14D6DF35D2A2A2234204e1559dA",
"value": "0"
},
"primaryType": "SafeTx",
"types": {
"EIP712Domain": [
{ "name": "chainId", "type": "uint256" },
{
"name": "verifyingContract",
"type": "address"
}
],
"SafeTx": [
{ "name": "to", "type": "address" },
{ "name": "value", "type": "uint256" },
{ "name": "data", "type": "bytes" },
{ "name": "operation", "type": "uint8" },
{ "name": "safeTxGas", "type": "uint256" },
{ "name": "baseGas", "type": "uint256" },
{ "name": "gasPrice", "type": "uint256" },
{ "name": "gasToken", "type": "address" },
{
"name": "refundReceiver",
"type": "address"
},
{ "name": "nonce", "type": "uint256" }
]
}
}
fee
string | null

Fee amount in USDC charged for this transfer. Only present for fast mode. Standard mode transfers are free (fee is None or 0).

Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
Example:

0.01