Skip to main content
POST
/
v1
/
transfer
Create a transfer attestation for transferring tokens
curl --request POST \
  --url https://gateway-api-testnet.circle.com/v1/transfer \
  --header 'Content-Type: application/json' \
  --data '[
  {
    "burnIntent": {
      "maxBlockHeight": "1000000000000000000",
      "maxFee": "1000000000000000000",
      "spec": {
        "version": 1,
        "sourceDomain": 0,
        "destinationDomain": 4,
        "sourceContract": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "destinationContract": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "sourceToken": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "destinationToken": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "sourceDepositor": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "destinationRecipient": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "sourceSigner": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "destinationCaller": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "value": "1000000000000000000",
        "salt": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "hookData": "0x1a2b3c4d"
      }
    },
    "signature": "<string>"
  }
]'
{
  "transferId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "attestation": "<string>",
  "signature": "<string>",
  "fees": {
    "total": "1.178",
    "token": "USDC",
    "perIntent": [
      {
        "transferSpecHash": "0x1234567890123456789012345678901234567890123456789012345678901234",
        "domain": 0,
        "baseFee": "2",
        "transferFee": "0.125"
      }
    ]
  },
  "expirationBlock": "<string>"
}

Query Parameters

maxAttestationSize
integer

Maximum allowed size (in bytes) for the encoded attestation. If the attestation exceeds this size, the request will be rejected with a 400 error.

Required range: x >= 1

Body

application/json · object[]

Batch of signed burn intents or burn intent sets.

  • Option 1
  • Option 2
burnIntent
object
required
signature
string
required

The signature over the burnIntent.

Response

Successfully created transfer attestation or attestation set

Response containing a transfer attestation or attestation set and operator signature

transferId
string<uuid>
required

The unique identifier of the transfer.

attestation
string
required

The byte-encoded transfer attestation or attestation set that should be passed to the minter contract

signature
string
required

The signature of the operator on the byte-encoded transfer attestation or attestation set

fees
object
required

Information on the transfer fees to be charged.

expirationBlock
string
required

The block number on the destination chain after which this attestation expires.