<aside> 🚧

Executor and our Relay Provider are under active development! Please excuse the debris while we work to improve your experience and feel free to share your feedback. 😊

</aside>

URLs

Contracts

[Public] Executor Addresses

Intro

This document focuses on front-end integration with CCTP + Executor. For on-chain v1 VAA integration, check out Executor Integration Notes (Public).

0. Check Capabilities

Always check the capabilities endpoint to ensure that the source and destination chains are supported, CCTP v1 (ERC1) or CCTP v2 (ERC2) relays are supported on the destination chain, based on your needs, and note the gas drop-off limit. The relayer will only respect the first GasDropOffInstruction and will drop off the lesser of the requested amount and the limit.

1. Generate your relay instructions

Use the following layout (implemented from the spec) to generate a relay instruction. A TS SDK is coming soon which will include this.

For example,

const relayInstructions = serialize(relayInstructionsLayout, {
  requests: [{ request: { type: "GasInstruction", gasLimit, msgValue } }],
});

EVM

For EVM destination chains, the gasLimit is the gas limit that will be set on the redeeming transaction. The gas used may vary based on whether including a gas drop-off instruction or not (in addition to the normal differences between various EVM chains).

msgValue is not used by CCTP’s receiveMessage function and should be set to 0.

SVM

For SVM destination chains, such as Solana, the gasLimit is the number of Compute Units that will be set on the transaction. This will impact the total cost based on the Priority Fee included in the quote and must cover the actual Compute Units used by the transaction.