Apply this skill when the user wants to send native SOL (not SPL tokens) from
their wallet to another Solana address.
node).SOLANA_PRIVATE_KEY (see README — never commit or paste keys into chat). Optionally set SOLANA_RPC_URL (defaults to public devnet).
npm install (or npm ci).npm run build and does not require Solana CLI (solana) or Python.
confirmation and a SOLANA_RPC_URL pointing at mainnet (or user clearly opts in).
for non-trivial sums.
From the directory that contains this SKILL.md (skill root), after npm install:
SOLANA_RPC_URL="${SOLANA_RPC_URL:-https://api.devnet.solana.com}" \
SOLANA_PRIVATE_KEY="<set-by-user-or-secrets>" \
npm run transfer -- --to "<RECIPIENT_PUBKEY>" --sol "<AMOUNT_SOL>"
--to — base58 public key of the recipient.--sol — amount in SOL (decimal string or number, e.g. 0.01).--rpc overrides SOLANA_RPC_URL.On success, report the signature (transaction id) and a Solscan
link (explorerUrl in CLI output) using the appropriate cluster (devnet vs mainnet-beta).
On failure, report the error message from the script without exposing secrets.
npm run transfer -- --to ... --sol ....scripts/transfer_sol.py, .skill bundles, or any Python flow.solana CLI for this skill; transfers are sent via @solana/web3.js.Always show a visible step plan before execution and mark completed steps with a
green indicator.
Use this exact checklist style in chat:
🟩 Step 1 - Collect input when done, otherwise ⬜ Step 1 - Collect input🟩 Step 2 - Validate input when done, otherwise ⬜ Step 2 - Validate input🟩 Step 3 - User confirmation when done, otherwise ⬜ Step 3 - User confirmation🟩 Step 4 - Execute transfer when done, otherwise ⬜ Step 4 - Execute transfer🟩 Step 5 - Report result when done, otherwise ⬜ Step 5 - Report resultRequired input:
to)sol)devnet or mainnet-beta, default devnet)If any field is missing, ask follow-up questions. Do not execute until all fields
are present.
Validate:
devnet, mainnet-betaIf validation fails, explain the exact invalid field and stop.
Before running any command, send a confirmation summary and ask user to confirm:
To: recipientAmount: SOL amountNetwork: selected networkSource wallet: signer public key (if available)Only continue on explicit confirmation such as: confirm, yes, or equivalent.
If user rejects/corrects any value, cancel current run and return to Step 1.
Run only after confirmation:
SOLANA_RPC_URL="${SOLANA_RPC_URL:-https://api.devnet.solana.com}" \
SOLANA_PRIVATE_KEY="<set-by-user-or-secrets>" \
npm run transfer -- --to "<RECIPIENT_PUBKEY>" --sol "<AMOUNT_SOL>"
If transaction succeeds, the response must include:
Successfully + icon (✅ or 🎉)Success response template:
✅ Successfully transferred
If transaction fails, report concise failure reason and suggest the next safe action
(retry with corrected input, check balance, or switch network).
Keep all user-facing messages short, clear, and visually clean.
-) or short blocks; no long paragraphs.Use this exact compact template before execution:
Confirm this transaction?
- Amount:
- To:
- Network:
Reply: yes / no
Use this exact compact template on success:
✅ Successfully transferred
- To:
- Network:
- Signature:
- Explorer:
Use this exact compact template on failure:
❌ Transfer failed:
- Network:
- Next: check amount/address/balance and confirm to retry
Implementation lives under src/ (shared Solana helpers) and scripts/ (one thin entry per user-facing command). Add new Solana features by new modules + a new script, then update this file so the agent knows when to use them.
共 1 个版本