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 fr...
AI agents use prepare_solana_native_send to create or update resources in VaultPilot MCP — usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your VaultPilot MCP environment.
| Parameter | Type | Required | Description |
|---|---|---|---|
to | object | Yes | |
memo | string | — | Optional UTF-8 memo (max 256 bytes after encode). When set, the tx appends an SPL Memo program instruction (`MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr`) carry |
amount | string | 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. |
wallet | string | Yes | Base58 Solana mainnet address (ed25519 pubkey, 43 or 44 chars). |
Parameters from the server's own tool schema.
An AI agent can call prepare_solana_native_send faster than any human can review — one bad instruction and it creates or modifies resources in VaultPilot MCP by the hundred, each call as confident as the last.
Attacks that exploit this kind of access
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). It is categorised as a Write tool in the VaultPilot MCP MCP Server, which means it can create or modify data. Consider rate limits to prevent runaway writes.
prepare_solana_native_send accepts 4 parameters: to, memo, amount, wallet. Required: to, amount, wallet. The full parameter table on this page comes from the server's own tool schema.
Register the VaultPilot MCP server in PolicyLayer and add a rule for prepare_solana_native_send: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches VaultPilot MCP. Nothing to install.
prepare_solana_native_send is a Write tool with medium risk. Write tools should be rate-limited to prevent accidental bulk modifications.
Yes. Add a rate_limit block to the prepare_solana_native_send rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for prepare_solana_native_send. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
prepare_solana_native_send is provided by the VaultPilot MCP server (vaultpilot-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.