prepare_native_stake_delegate
Create a Solana stake account at a deterministic address and delegate it to a validator's vote account. Funds the account with specified SOL plus rent-exempt minimum.
Instructions
Build an unsigned native-stake-program tx that creates a fresh stake account at a deterministic address (derived per (wallet, validator) via createAccountWithSeed) and delegates it to the given validator vote account. Funds the stake account with amountSol SOL of active principal PLUS a ~0.00228 SOL rent-exempt seed (reclaimable on full withdraw). Authority is the user's wallet for both staker + withdrawer roles — no separate authority handoff is supported in this server. DURABLE NONCE REQUIRED. Refuses if a stake account already exists at the deterministic address (the user almost certainly meant prepare_native_stake_deactivate / withdraw on the existing position). BLIND-SIGN on Ledger by default — match the Message Hash on-device. To pick a validator, call list_solana_validators first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana wallet that funds the stake account and becomes its staker + withdrawer authority. Must have an initialized durable-nonce account (prepare_solana_nonce_init) and enough SOL to cover the stake amount + rent-exempt seed (~0.00228 SOL) + tx fee. Refuses if a stake account already exists at the deterministic address for this (wallet, validator). | |
| validator | Yes | Vote-account address (NOT validator identity) of the validator to delegate to. Solana's stake program delegates to vote accounts, which validators publish alongside their identity. Use a Solana explorer to find the vote account for a chosen validator. | |
| amountSol | Yes | Human-readable SOL amount to stake (e.g. "1.5"). Decimals are SOL-native (9). The actual lamports moved from the wallet are this value PLUS the stake account rent-exempt minimum (~0.00228 SOL); the rent-exempt floor is reclaimable on full withdraw after deactivation. |