prepare_solana_spl_send
Build an unsigned SPL token transfer DRAFT via Token.TransferChecked. Returns a compact preview + opaque handle — but does NOT yet serialize the message or fetch a blockhash. When the user says 'send', call preview_solana_send(handle) to pin a fresh blockhash, compute the Message Hash, and emit t...
This record as markdown: /tools/io-github-szhygulin-vaultpilot-mcp/prepare-solana-spl-send.md
What prepare_solana_spl_send does on VaultPilot MCP
AI agents use prepare_solana_spl_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 | |
mint | string | Yes | Base58 SPL mint address. Use the canonical mint for known tokens (e.g. USDC = EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v). |
amount | string | Yes | Human-readable token amount. Decimals are resolved from the mint (canonical table for USDC/USDT/JUP/BONK/JTO/mSOL/jitoSOL; otherwise on-chain `getTokenSupply`). |
wallet | string | Yes | Base58 Solana mainnet address (ed25519 pubkey, 43 or 44 chars). |
Parameters from the server's own tool schema.
Why prepare_solana_spl_send is rated Medium
This tool prepares (builds) a token transfer transaction but does not yet execute or broadcast it. It is a Write operation as it creates a draft/handle representing a pending SPL token transfer. However, the downstream intent is financial (sending SPL tokens), so severity is high.
From the tool's definition Build an unsigned SPL token transfer DRAFT via Token.TransferChecked. Returns a compact preview + opaque handle — but does NOT yet serialize the message or fetch a blockhash.
Attacks that exploit this kind of access
The rule that runs prepare_solana_spl_send safely
PolicyLayer is an MCP gateway: it sits between your AI agents and VaultPilot MCP, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For prepare_solana_spl_send, this is the rule to start with:
prepare_solana_spl_send stays usable, but capped: an agent stuck in a loop can't make hundreds of changes a minute. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect VaultPilot MCP, apply this rule, and every prepare_solana_spl_send call is checked against it from then on.
Questions about prepare_solana_spl_send
Build an unsigned SPL token transfer DRAFT via Token.TransferChecked. Returns a compact preview + opaque handle — but does NOT yet serialize the message or fetch a blockhash. When the user says 'send', call preview_solana_send(handle) to pin a fresh blockhash, compute the Message Hash, and emit the CHECKS agent-task block, then call send_transaction. Run pair_ledger_solana first. Pass the base58 SPL mint address (canonical decimals resolved for USDC, USDT, JUP, BONK, JTO, mSOL, jitoSOL; otherwise read from chain). If the recipient does NOT yet have an Associated Token Account for this mint, the draft automatically includes a createAssociatedTokenAccount instruction — the sender pays ~0.00204 SOL rent, disclosed explicitly (rentLamports + description). AUTO NONCE SETUP: if the wallet has no durable-nonce account yet, this tool transparently bundles createAccountWithSeed + nonceInitialize ahead of the SPL transfer (legacy blockhash; subsequent SPL sends use the durable-nonce path). Surfaced as firstTimeNonceSetup: "true" + ~0.00144 SOL rent in the description. BLIND-SIGN REQUIRED: the Ledger Solana app does NOT auto clear-sign TransferChecked — its parser requires a signed 'Trusted Name' TLV descriptor that only Ledger Live supplies, so the device drops into blind-sign and shows a 'Message Hash' (base58(sha256(messageBytes))). The user must (1) enable 'Allow blind signing' in Solana app → Settings, and (2) match the Message Hash surfaced by preview_solana_send against the on-device value before approving. 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_spl_send accepts 4 parameters: to, mint, amount, wallet. Required: to, mint, 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_spl_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_spl_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_spl_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_spl_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_spl_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.
More on VaultPilot, and thousands of servers like it.
This server
Across the catalogue