Transfer Ownership#
After deploying Native Token Transfers (NTT), you may need to move ownership to a new owner address (e.g., a multisig). This page outlines the process for transferring ownership on EVM, Solana, and Sui.
EVM#
The NTT CLI supports transferring ownership on EVM chains. To transfer ownership on the EVM chains, you can do the following:
-
Set the private key used to sign the transaction.
-
Run the
ntt transfer-ownership
command, specifying the chain and destination address.You’ll see a confirmation prompt. Type
y
to proceed.
If successful, you will see the following output:
Solana#
Transferring ownership of Wormhole's NTT to a multisig on Solana is a two-step process for safety. This ensures that ownership is not transferred to an address that cannot claim it. Refer to the transfer_ownership
method in the NTT Manager Contract to initiate the transfer.
- Initiate transfer: Use the
transfer_ownership
method on the NTT Manager contract to set the new owner (the multisig). - Claim ownership: The multisig must then claim ownership via the
claim_ownership
instruction. If not claimed, the current owner can cancel the transfer. - Single-step transfer (Riskier): You can also use the
transfer_ownership_one_step_unchecked
method to transfer ownership in a single step, but if the new owner cannot sign, the contract may become locked. Be cautious and ensure the new owner is a Program Derived Address (PDA).
For a practical demonstration of transferring ownership of Wormhole's NTT to a multisig on Solana, visit the GitHub demo, which provides scripts and guidance for managing an NTT program using Squads' multisig functionality, including procedures for ownership transfer.
Sui#
The Sui CLI supports transferring ownership by moving the NTT Manager’s AdminCap
and UpgradeCap
to your multisig. You can transfer ownership as follows:
-
Find out the
AdminCap
andUpgradeCap
for your NTT manager. -
Transfer
AdminCap
object over to a multisig. -
Transfer
UpgradeCap
object over to a multisig. -
Check the new owner of the
AdminCap
object.