Skip to content

Latest commit

 

History

History
40 lines (28 loc) · 1.83 KB

NttManager.md

File metadata and controls

40 lines (28 loc) · 1.83 KB

NTT Manager

Overview

The NttManager contract is responsible for managing the token and the Transceivers. It also handles the rate-limiting and the message attestation logic. Note that each NttManager corresponds to a single token. However, a single NttManager can control multiple transceivers.

Message Specification

NttManagers do not directly publish messages. These will be wrapped in a TransceiverMessage.

[32]byte id          // a unique message identifier
[32]byte sender      // original message sender address
uint16   payload_len // length of the payload
[]byte   payload

Payloads

Note: Integrators who need to send different types of payloads should also use a unique 4-byte prefix to distinguish them from NativeTokenTransfer and one another.

NativeTokenTransfer

[4]byte   prefix = 0x994E5454 // 0x99'N''T''T'
uint8     decimals            // number of decimals for the amount
uint64    amount              // amount being transferred
[32]byte  source_token        // source chain token address
[32]byte  recipient_address   // the address of the recipient
uint16    recipient_chain     // the Wormhole Chain ID of the recipient

To support integrators who may want to send additional, custom data with their transfers, this format may be extended to also include these additional, optional fields. Customizing transfers in this way ensures compatibility of the canonical portion of the payload across the ecosystem (Connect, explorers, NTT Global Accountant, etc).

In order to aid parsers in identifying your additional payload, it is recommended to start it with a unique 4-byte prefix.

uint16 additional_payload_len // length of the custom payload
[]byte additional_payload     // custom payload - recommended that the first 4 bytes are a unique prefix