prepare_solana_native_send
Build an unsigned SOL native-transfer draft via SystemProgram.transfer, with amount in SOL or 'max', optional memo, and automatic durable nonce setup for Ledger signing.
Instructions
Build an unsigned SOL native-transfer DRAFT via SystemProgram.transfer. Returns a compact preview + opaque handle — but does NOT yet serialize the message or fetch a blockhash (those happen in preview_solana_send, called right before send_transaction, to keep the ~60s blockhash validity window from being burned during user review). Run pair_ledger_solana once per session first so the Solana app is open and the device address is verified. Amount is in SOL (e.g. "0.5") or "max" for full balance minus fee + safety buffer. Priority fee is added dynamically only when getRecentPrioritizationFees p50 is above the congestion threshold. OPTIONAL MEMO: pass memo: "..." (≤256 UTF-8 bytes) to attach an SPL Memo program instruction (program id MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr) to the tx — common for invoice / payment-reference strings. The Ledger Solana app clear-signs Memo program calls and renders the UTF-8 string on-device alongside the transfer. AUTO NONCE SETUP: if the wallet has no durable-nonce account yet (first Solana send), this tool transparently bundles createAccountWithSeed + nonceInitialize ahead of the transfer in a single tx — costs an extra ~0.00144 SOL rent (reclaimable via prepare_solana_nonce_close), surfaced in the response (firstTimeNonceSetup: "true", rentLamports, description suffix). Subsequent sends are durable-nonce-protected and stay valid indefinitely on the device. The Ledger Solana app clear-signs SystemProgram.transfer + nonce-account ops (no blind-sign hash-match step needed for native sends).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Base58 Solana mainnet address (ed25519 pubkey, 43 or 44 chars). | |
| to | Yes | ||
| amount | Yes | Human-readable SOL amount (up to 9 decimals). Example: "0.5" for 0.5 SOL. Pass "max" to send the full balance minus tx fee and a small safety buffer. | |
| memo | No | Optional UTF-8 memo (max 256 bytes after encode). When set, the tx appends an SPL Memo program instruction (`MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr`) carrying the bytes. The Ledger Solana app clear-signs Memo program calls, so no on-device support change is needed. Common use: invoice / payment-reference strings. |