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>"
}

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.