API Reference

Create a transfer attestation for transferring tokens

posthttps://gateway-api-testnet.circle.com/v1/transfer

  • Reference
  • Playground

Generates a transfer attestation and operator signature for transferring tokens between domains

Body parameters
option 1: object
burnIntent
object
Required
maxBlockHeight
string
Required

The maximum block height at which this burn is valid.

maxFee
string
Required

The maximum fee the user is willing to pay.

spec
object
Required
version
integer
Required

Version of the transfer spec (uint32).

sourceDomain
integer
Required

The domain of the wallet contract this transfer came from (uint32).

destinationDomain
integer
Required

The domain of the minter contract this transfer is valid for (uint32).

sourceContract
string
Required

The address of the wallet contract on the source domain (32-byte padded).

destinationContract
string
Required

The address of the minter contract on the destination domain (32-byte padded).

sourceToken
string
Required

The token address on the source domain (32-byte padded).

destinationToken
string
Required

The token address on the destination domain (32-byte padded).

sourceDepositor
string
Required

The address to debit within the wallet contract on the source domain (32-byte padded).

destinationRecipient
string
Required

The address that should receive the funds on the destination domain (32-byte padded).

sourceSigner
string
Required

The signer who signed for the transfer (32-byte padded).

destinationCaller
string
Required

The address of the caller who may use the attestation, 0 address if any caller (32-byte padded).

value
string
Required

The amount to be transferred.

salt
string
Required

An arbitrary value chosen by the user to be unique.

hookData
string

Arbitrary bytes that may be used for onchain composition (optional).

signature
string
Required

The signature over the burnIntent.

option 2: object
burnIntentSet
object
Required
intents
array of objects
Required
maxBlockHeight
string
Required

The maximum block height at which this burn is valid.

maxFee
string
Required

The maximum fee the user is willing to pay.

spec
object
Required
version
integer
Required

Version of the transfer spec (uint32).

sourceDomain
integer
Required

The domain of the wallet contract this transfer came from (uint32).

destinationDomain
integer
Required

The domain of the minter contract this transfer is valid for (uint32).

sourceContract
string
Required

The address of the wallet contract on the source domain (32-byte padded).

destinationContract
string
Required

The address of the minter contract on the destination domain (32-byte padded).

sourceToken
string
Required

The token address on the source domain (32-byte padded).

destinationToken
string
Required

The token address on the destination domain (32-byte padded).

sourceDepositor
string
Required

The address to debit within the wallet contract on the source domain (32-byte padded).

destinationRecipient
string
Required

The address that should receive the funds on the destination domain (32-byte padded).

sourceSigner
string
Required

The signer who signed for the transfer (32-byte padded).

destinationCaller
string
Required

The address of the caller who may use the attestation, 0 address if any caller (32-byte padded).

value
string
Required

The amount to be transferred.

salt
string
Required

An arbitrary value chosen by the user to be unique.

hookData
string

Arbitrary bytes that may be used for onchain composition (optional).

signature
string
Required

The signature over the burnIntentSet.

Response
RequestChoose a language
ResponseChoose an example
1{
2  "attestation": "",
3  "signature": ""
4}
Did this page help you?
© 2023-2025 Circle Technology Services, LLC. All rights reserved.