solana-skill
⚠Review·Scanned 2/17/2026
Provides Solana wallet, balance, transaction and swap operations via Helius and Jupiter APIs. Reads/stores heliusApiKey in ~/.config/solana-skill/config.json, derives a local password from USER/HOME, makes network calls to https://mainnet.helius-rpc.com and https://api.jup.ag, and includes CLI npx tsx scripts/wallet.ts usage.
from clawhub.ai·vbf48d77·46.0 KB·0 installs
Scanned from 1.0.0 at bf48d77 · Transparency log ↗
$ vett add clawhub.ai/chattyclaw/solana-skillReview findings below
Solana Skill
Comprehensive Solana blockchain interaction using Helius infrastructure.
Prerequisites
- Helius API Key — Get free at https://dashboard.helius.dev/signup
- Store key in
~/.config/solana-skill/config.json:
{
"heliusApiKey": "your-api-key",
"network": "mainnet-beta"
}
Core Capabilities
Wallet Management
- Create new wallets (keypair generation)
- Import existing wallets (private key or seed phrase)
- List managed wallets
- Secure key storage (encrypted at rest)
Balance & Assets
- Check SOL balance
- Get all token balances (SPL tokens)
- View NFTs and compressed NFTs
- Portfolio valuation (via DAS API)
Transactions
- Send SOL
- Send SPL tokens
- Transaction history (enhanced, human-readable)
- Priority fee estimation
Swaps (Jupiter)
- Get swap quotes
- Execute token swaps
- Slippage protection
Monitoring
- Watch addresses for activity
- Transaction notifications
Quick Reference
Check Balance
import { createHelius } from 'helius-sdk';
const helius = createHelius({ apiKey: 'YOUR_KEY' });
const assets = await helius.getAssetsByOwner({
ownerAddress: 'WALLET_ADDRESS',
displayOptions: {
showFungible: true,
showNativeBalance: true
}
});
Send SOL
import { Connection, Keypair, SystemProgram, Transaction, sendAndConfirmTransaction, LAMPORTS_PER_SOL } from '@solana/web3.js';
const connection = new Connection('https://mainnet.helius-rpc.com/?api-key=YOUR_KEY');
const tx = new Transaction().add(
SystemProgram.transfer({
fromPubkey: sender.publicKey,
toPubkey: recipientPubkey,
lamports: amount * LAMPORTS_PER_SOL
})
);
await sendAndConfirmTransaction(connection, tx, [sender]);
Jupiter Swap
// 1. Get quote
const quote = await fetch(`https://api.jup.ag/swap/v1/quote?inputMint=${inputMint}&outputMint=${outputMint}&amount=${amount}`);
// 2. Build swap transaction
const swap = await fetch('https://api.jup.ag/swap/v1/swap', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
quoteResponse: await quote.json(),
userPublicKey: wallet.publicKey.toString()
})
});
// 3. Sign and send
API Endpoints
| Service | Base URL |
|---|---|
| Helius RPC | https://mainnet.helius-rpc.com/?api-key=KEY |
| Helius Sender | https://sender.helius-rpc.com/fast |
| Jupiter Quote | https://api.jup.ag/swap/v1/quote |
| Jupiter Swap | https://api.jup.ag/swap/v1/swap |
Security
Critical rules:
- Never log or display private keys
- Use encrypted storage for keys
- Validate all addresses before transactions
- Set reasonable slippage limits (default: 1%)
- Always confirm large transactions with user
See references/security.md for detailed security practices.
Detailed References
- references/helius-api.md — Full Helius API reference
- references/security.md — Wallet security best practices
- references/jupiter.md — Jupiter swap integration
Common Token Addresses
| Token | Mint Address |
|---|---|
| SOL | So11111111111111111111111111111111111111112 (wrapped) |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| USDT | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB |
| BONK | DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 |
Error Handling
Common errors and solutions:
- Insufficient SOL: Need SOL for rent + transaction fees
- Token account not found: Create ATA before sending tokens
- Transaction too large: Reduce instructions or use address lookup tables
- Blockhash expired: Retry with fresh blockhash