Install
openclaw skills install solana-wallet-rpcPortable Solana wallet operations for agents. Use when an agent needs a Solana wallet for devnet or mainnet workflows such as creating a wallet, getting a wallet address, checking SOL balance, requesting a devnet airdrop, or signing Ed25519 messages and producing base58 signatures for ownership proofs like RockPaperClaw wallet linking. Default to devnet unless the user explicitly wants another network. Do not send funds or sign opaque payloads without explicit approval.
openclaw skills install solana-wallet-rpcWarning: This skill creates and uses local Solana private key files. Treat all generated or configured keypair files as secrets. Default usage is intended for devnet testing unless the user explicitly asks for another network.
Use the bundled script in scripts/solana_wallet.cjs for wallet operations.
This skill is intentionally narrow.
It can:
It cannot:
--execute before sending a transaction.create-wallet refuses to overwrite an existing keypair unless SOLANA_WALLET_OVERWRITE=1 is set.This skill bundles a package.json with the runtime dependencies it needs, so the required packages are scoped to the skill directory rather than the whole project.
Install them from the skill directory before running the script:
cd skills/solana-wallet-rpc
npm install
Required packages:
@solana/spl-token@solana/web3.jstweetnaclbs58Why these are used:
@solana/spl-token — associated token account derivation and token-program constants for the RockPaperClaw deposit flow@solana/web3.js — Solana-native keypair handling, RPC access, balance checks, and devnet airdropstweetnacl — Ed25519 message signing compatible with Solana wallet key materialbs58 — base58 encoding/decoding for Solana addresses and wallet-link signaturesThese are standard Solana/crypto runtime dependencies, not arbitrary network or eval helpers.
The script supports these env vars:
SOLANA_RPC_URL — defaults to https://api.devnet.solana.comSOLANA_WALLET_KEYPAIR — path to a 64-byte Solana keypair JSON fileSOLANA_WALLET_OVERWRITE=1 — allows create-wallet to overwrite an existing keypair fileIf SOLANA_WALLET_KEYPAIR is not set, the script tries common defaults such as:
~/.config/solana/id.json~/.solana/id.json~/.openclaw/wallets/solana-devnet.json~/.openclaw/wallets/solana.jsonWhen creating a new wallet without an explicit path, the script defaults to:
~/.openclaw/wallets/solana-<network>.jsonOverride the env vars when using a different wallet or network. Auto-discovery is intended for wallet lookup and signing workflows; fund-moving commands should use an explicit --keypair or SOLANA_WALLET_KEYPAIR.
For RockPaperClaw deposits, the program ID and USDC mint are pinned to the canonical devnet values unless you pass explicit CLI flags.
These environment variables are local script settings for this wallet helper only. They are not required by the main rockpaperclaw skill.
Run from the repo root unless there is a reason not to:
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs create-wallet
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs create-wallet /path/to/keypair.json
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs address
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs balance
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs airdrop 1
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs sign-message "your message here"
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs verify-message "your message here" "<signature>"
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs rockpaperclaw-deposit <agent-id> <amount-micro-usdc> --keypair /path/to/keypair.json
verify-message accepts either base64 or base58 signatures.
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs create-wallet
This generates a new keypair and stores it at a safe default path such as ~/.openclaw/wallets/solana-devnet.json.
If you want a specific file path:
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs create-wallet ~/.config/solana/id.json
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs address
Use this when another tool or service needs the wallet public key.
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs balance
Use this before attempting any onchain action.
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs airdrop 0.25
Notes:
Important:
RockPaperClaw bankroll funding uses canonical devnet USDC, not SOL.
https://faucet.circle.com/ to send canonical test USDC to that same wallet address when the faucet supports your target network.4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU.get_deposit_info and the RockPaperClaw deposit flow.node skills/solana-wallet-rpc/scripts/solana_wallet.cjs sign-message "wallet link for agent <agent-id>"
Return the JSON fields clearly:
addressmessagesignatureBase58signatureBase64node skills/solana-wallet-rpc/scripts/solana_wallet.cjs rockpaperclaw-deposit <agent-id> <amount-micro-usdc> --keypair /path/to/keypair.json
Preview example:
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs rockpaperclaw-deposit 87a28ffe-5870-4789-ac52-ba5f4c49b38a 1000000 --keypair ~/.config/solana/id.json
Execute example:
node skills/solana-wallet-rpc/scripts/solana_wallet.cjs rockpaperclaw-deposit 87a28ffe-5870-4789-ac52-ba5f4c49b38a 1000000 --keypair ~/.config/solana/id.json --execute
This is a convenience signer path for RockPaperClaw users who are already in the wallet skill. The canonical RockPaperClaw flow is: use the main rockpaperclaw skill for get_profile and get_deposit_info, then use a separate wallet tool such as this one for the actual signed transaction. Without --execute, this command only prints a preview.
For RockPaperClaw, the likely sequence is:
wallet_address, message, and the base58 signature into link_wallet.get_deposit_info in the main rockpaperclaw skill to confirm the current program ID, vault, mint, and agent ID.If a service rejects the signature, verify whether it expects base58, base64, or hex before changing anything else.
For deposits specifically, think of the RockPaperClaw flow as:
get_profile to get agent_idget_deposit_info to confirm deposit metadatarockpaperclaw to verify deposit metadata, then use a separate wallet tool to sign and send the Anchor deposit transactionThis wallet skill can perform the same deposit transaction through rockpaperclaw-deposit, but that command is a convenience path when you are already in this skill for wallet setup.
get_profile and copy the agent_id.node skills/solana-wallet-rpc/scripts/solana_wallet.cjs address and copy address.RockPaperClaw wallet link: <agent-id>.node skills/solana-wallet-rpc/scripts/solana_wallet.cjs sign-message "RockPaperClaw wallet link: <agent-id>".signatureBase58 from the JSON output.link_wallet in RockPaperClaw with the wallet address, exact message, and base58 signature.get_profile and copy the agent_id.get_deposit_info and copy the program ID, mint, vault, and config PDA.node skills/solana-wallet-rpc/scripts/solana_wallet.cjs balance to confirm SOL for fees.node skills/solana-wallet-rpc/scripts/solana_wallet.cjs airdrop 0.25.node skills/solana-wallet-rpc/scripts/solana_wallet.cjs rockpaperclaw-deposit <agent-id> <amount-micro-usdc> --keypair /path/to/keypair.json.get_deposit_info.--execute to send funds.get_profile in RockPaperClaw until the webhook credit appears.If the task is only the RockPaperClaw deposit flow, use the main rockpaperclaw skill for arena metadata and this wallet skill only if you want a local script to perform the signing step. Use this skill when the same conversation also needs wallet creation, address lookup, airdrops, or link-message signing.