<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>
This document focuses on front-end integration with CCTP + Executor. For on-chain v1 VAA integration, check out Executor Integration Notes (Public).
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.
Use the following layout (implemented from the spec) to generate a relay instruction. A TS SDK is coming soon which will include this.
relayInstructions.ts
For example,
const relayInstructions = serialize(relayInstructionsLayout, {
requests: [{ request: { type: "GasInstruction", gasLimit, msgValue } }],
});
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.
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.