NTT versions >=v2.0.0+solana support SPL tokens with transfer hooks.
Generate NTT Program Keypair
When you deploy a Solana program, you need to hardcode the program ID (which is itself a pubkey) into the program code. The NTT CLI allows you to do this seamlessly.
The NTT Solana program will then compile and deploy.
Configure NTT
ntt status to check whether your deployment.json file is consistent with what's actually on-chain
ntt pull to sync your deployment.json file with the on-chain configuration and set up rate limits with the appropriate number of decimals, depending on the specific chain. For example:
For Solana, the limits are set with 9 decimal places:
"inbound": {
"Sepolia": "1000.000000000" # inbound limit from Sepolia to Solana
}
For Sepolia (Ethereum testnet), the limits are set with 18 decimal places:
"inbound": {
"Solana": "1000.000000000000000000" # inbound limit from Solana to Sepolia
}
This initial configuration ensures that the rate limits are correctly represented for each chain's token precision
Push deployment to Solana, specifying the Keypair that will cover the gas fees
ntt push --payer <your-keypair.json>
The NTT CLI takes inspiration from . You can run:
By default, NTT transfers to Solana support manual relaying, which requires the user to perform a transaction on Solana to complete the transfer. UI components such as Wormhole Connect support this out of the box. For automatic relaying support on Solana, Wormhole contributors.