<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 NTT + Executor. For on-chain v1 VAA integration, check out Executor Integration Notes (Public).

<aside> 🙌

The Wormhole NTT TypeScript SDKs now include a route for NTT With Executor.

Definitions

EVM

SVM

</aside>

0. Check Capabilities

Always check the capabilities endpoint to ensure that the source and destination chains are supported, NTT v1 (ERN1) relays are supported on the destination chain, 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.

Our relay provider currently supports relaying wormhole Transceivers. Other transceiver messages will be ignored.

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 the NTT Manager configuration, the specific token being redeemed, and whether a gas drop-off instruction is included or not (in addition to the normal differences between various EVM chains).

msgValue is not used by NTT Transceivers’ receiveMessage function and should be set to 0.