Skip to main content

Solana (SVM) support on Turnkey

Address derivation

Turnkey supports Solana address derivation with ADDRESS_TYPE_SOLANA. Solana addresses are a simple encoding of the ed25519 public key.

Transaction construction and signing

To construct and sign a Solana transaction we offer a @turnkey/solana NPM package. It offers a TurnkeySigner which integrates our remote signer with the official Solana web3js library.

Transaction parsing, policies, and signing

Turnkey has built a Solana parser which runs in a secure enclave, to parse unsigned transactions and extract metadata. Solana transactions are a list of instructions. We offer details about program keys, accounts, signers, and more. See the SolanaTransaction struct in our policy language page for a full list.

As a bonus, Turnkey also takes care of combining the signature with the original payload if you use the SIGN_TRANSACTION activity types: the input is the unsigned payload, and the output is the signed Solana transaction, ready to be broadcast onchain.

Import and export formats

Turnkey offers wallet or private key imports and export functionality. To be compatible with the Solana ecosystem, we support imports in mnemonics form (for wallet seeds, this is most common) or in base58 format (for single private key import or export).

Wallet signer

Did you know? Turnkey activities can be signed with an API key, a passkey...or a Solana wallet if you use our @turnkey/wallet-stamper package!

Examples and demos

You can find an example of Solana transaction construction and broadcasting using @turnkey/with-solana in examples/with-solana.

If you want to see @turnkey/wallet-stamper in action, head to examples/with-wallet-stamper.