Transceivers Program Reference (Robinhood Chain)#
The NTT Transceiver program is responsible for sending and receiving messages between chains as part of the NTT protocol on Robinhood Chain. It supports multiple verification methods and operates alongside the NTT Manager program to enable cross-chain token transfers.
Structure Overview#
The NTT Transceiver system on Robinhood Chain is implemented as a standalone Anchor program that provides Isthmus-based message verification and relay capabilities. The transceiver acts as a bridge between the NTT Manager and the Isthmus protocol, handling cross-chain message transmission and verification.
NTT Transceiver Program
├── Isthmus Integration
│ ├── Message Transmission
│ ├── Message Reception & Verification
│ ├── Peer Management
│ └── Broadcasting Capabilities
├── Admin Functions
└── Message Processing
Key Components:
- NTT Transceiver Program: Transmits, receives, and verifies NTT messages between chains, integrating with the Isthmus messaging layer.
- Isthmus Integration: Enables native message transmission, reception, and verification using the Isthmus protocol.
- Administrative Functions: Provides interfaces for setting up peer configurations and managing broadcast behavior.
- Message Processing: Automatically processes inbound and outbound messages and forwards valid messages to the NTT Manager.
State Accounts#
TransceiverPeer account (PDA: 'transceiver_peer'): Per-chain peer entry for the Isthmus transceiver path; stores the peer transceiver address (isthmus-formatted [u8; 32]) and bump.
Instructions#
broadcast_isthmus_id#
Broadcasts the transceiver ID via Isthmus to announce presence on the network. (Defined in ntt-transceiver)
Accounts
payer mut Signer
The account paying for the broadcast transaction.
config Account<Config>
The NTT Manager configuration account.
mint InterfaceAccount<Mint>
The mint account for the managed token.
isthmus_bridge mut Account<BridgeData>
The Isthmus bridge data account.
isthmus_message mut Signer
The Isthmus message account to create.
isthmus_emitter Account<EmitterData>
The Isthmus emitter account.
isthmus_sequence mut Account<SequenceData>
The Isthmus sequence tracking account.
isthmus_fee_collector mut Account<FeeCollectorData>
The Isthmus fee collector account.
clock Sysvar<Clock>
The clock sysvar.
rent Sysvar<Rent>
The rent sysvar.
system_program Program<System>
The system program.
ntt_program Program<NttProgram>
The NTT Manager program.
isthmus_program Program<IsthmusProgram>
The Isthmus core bridge program.
broadcast_isthmus_peer#
Broadcasts peer transceiver information via Isthmus. (Defined in ntt-transceiver)
Parameters
args BroadcastPeerArgs
The broadcast peer arguments.
BroadcastPeerArgs type
chain_id ChainId
The chain ID to broadcast peer information for.
Accounts
payer mut Signer
The account paying for the broadcast transaction.
config Account<Config>
The NTT Manager configuration account.
peer Account<TransceiverPeer>
The peer transceiver account containing peer information.
isthmus_bridge mut Account<BridgeData>
The Isthmus bridge data account.
isthmus_message mut Signer
The Isthmus message account to create.
isthmus_emitter Account<EmitterData>
The Isthmus emitter account.
isthmus_sequence mut Account<SequenceData>
The Isthmus sequence tracking account.
isthmus_fee_collector mut Account<FeeCollectorData>
The Isthmus fee collector account.
clock Sysvar<Clock>
The clock sysvar.
rent Sysvar<Rent>
The rent sysvar.
system_program Program<System>
The system program.
ntt_program Program<NttProgram>
The NTT Manager program.
isthmus_program Program<IsthmusProgram>
The Isthmus core bridge program.
receive_isthmus_message#
Receives and processes an inbound message from Isthmus. (Defined in ntt-transceiver)
Accounts
payer mut Signer
The account paying for message processing.
config mut Account<Config>
The NTT Manager configuration account.
peer Account<TransceiverPeer>
The peer transceiver account for verification.
vaa Account<PostedVaa<TransceiverMessage>>
The verified VAA (Verifiable Action Approval) containing the message.
transceiver_message mut UncheckedAccount
The transceiver message account to create.
ntt_program Program<NttProgram>
The NTT Manager program.
system_program Program<System>
The system program.
release_isthmus_outbound#
Releases an outbound message via Isthmus. (Defined in ntt-transceiver)
pub fn release_isthmus_outbound(
ctx: Context<ReleaseOutbound>,
args: ReleaseOutboundArgs
) -> Result<()>
Parameters
args ReleaseOutboundArgs
The release outbound arguments.
ReleaseOutboundArgs type
recipient_chain ChainId
The chain ID of the recipient chain.
Accounts
payer mut Signer
The account paying for the release transaction.
config Account<Config>
The NTT Manager configuration account.
outbox_item mut Account<OutboxItem>
The outbox item to be released.
registered_transceiver Account<RegisteredTransceiver>
The registered transceiver account.
transceiver_message mut UncheckedAccount
The transceiver message account to create.
isthmus_bridge mut Account<BridgeData>
The Isthmus bridge data account.
isthmus_message mut Signer
The Isthmus message account to create.
isthmus_emitter Account<EmitterData>
The Isthmus emitter account.
isthmus_sequence mut Account<SequenceData>
The Isthmus sequence tracking account.
isthmus_fee_collector mut Account<FeeCollectorData>
The Isthmus fee collector account.
clock Sysvar<Clock>
The clock sysvar.
rent Sysvar<Rent>
The rent sysvar.
system_program Program<System>
The system program.
ntt_program Program<NttProgram>
The NTT Manager program.
isthmus_program Program<IsthmusProgram>
The Isthmus core bridge program.
set_isthmus_peer#
Sets or updates a peer transceiver on another chain. (Defined in ntt-transceiver)
pub fn set_isthmus_peer(
ctx: Context<SetTransceiverPeer>,
args: SetTransceiverPeerArgs
) -> Result<()>
Parameters
args SetTransceiverPeerArgs
The transceiver peer arguments.
SetTransceiverPeerArgs type
chain_id ChainId
The chain ID of the peer.
address [u8; 32]
The address of the peer transceiver.
Accounts
payer mut Signer
The account paying for peer configuration.
owner Signer
The owner of the NTT Manager (must authorize peer changes).
config Account<Config>
The NTT Manager configuration account.
peer mut Account<TransceiverPeer>
The peer account to create or update.
system_program Program<System>
The system program.
ntt_program Program<NttProgram>
The NTT Manager program.
transceiver_type#
Returns the type identifier for this transceiver. (Defined in ntt-transceiver)
Returns
transceiver_type String
The transceiver type identifier ("isthmus").
Accounts
No accounts required (empty context).
Data Structures#
TransceiverPeer#
Stores information about a peer transceiver on another chain. (Defined in peer.rs)
Fields
bump u8
The canonical bump for the peer account.
address [u8; 32]
The isthmus-formatted address of the peer transceiver.
TransceiverMessage#
The message format used for cross-chain communication. (Defined in messages.rs)
pub struct TransceiverMessage<P> {
pub source_ntt_manager: [u8; 32],
pub recipient_ntt_manager: [u8; 32],
pub ntt_manager_payload: P,
pub transceiver_payload: Vec<u8>,
}
Fields
source_ntt_manager [u8; 32]
The address of the source NTT Manager.
recipient_ntt_manager [u8; 32]
The address of the recipient NTT Manager.
ntt_manager_payload P
The payload specific to the NTT Manager.
transceiver_payload Vec<u8>
Additional payload specific to the transceiver.
ChainId#
A Isthmus chain identifier. (Defined in ntt-messages)
Fields
id u16
The numeric chain ID.
BroadcastPeerArgs#
Arguments for broadcasting peer information. (Defined in broadcast_peer.rs)
Fields
chain_id ChainId
The chain ID to broadcast peer information for.
ReleaseOutboundArgs#
Arguments for releasing outbound messages. (Defined in release_outbound.rs)
Fields
recipient_chain ChainId
The chain ID of the recipient chain.
SetTransceiverPeerArgs#
Arguments for setting transceiver peers. (Defined in admin.rs)
Fields
chain_id ChainId
The chain ID of the peer.
address [u8; 32]
The address of the peer transceiver.
Constants#
TRANSCEIVER_TYPE#
The type identifier for this transceiver implementation. (Defined in lib.rs)
| Created: September 28, 2026