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"
      }
    ],
    "forwardingFee": "0.210000"
  },
  "expirationBlock": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://developers.circle.com/llms.txt

Use this file to discover all available pages before exploring further.

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
enableForwarder
boolean
default:false

Whether to enable the forwarding service for automatic mint submission.

Body

application/json
Minimum array length: 1
burnIntent
object
required
signature
string
required

The signature over the burnIntent.

Pattern: ^0x[a-fA-F0-9]+$

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

Pattern: ^0x[a-fA-F0-9]+$
signature
string
required

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

Pattern: ^0x[a-fA-F0-9]+$
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.