solana
This skill provides Solana wallet and token operations: create wallets, check balances, send SOL/tokens, swap via Jupiter, and launch tokens on Pump.fun. It reads/stores SOLANA_PRIVATE_KEY, instructs running python3 scripts (e.g., python3 {baseDir}/scripts/wallet.py), and makes network calls to https://pump.fun/api/ipfs-presign and https://api.jup.ag/ultra/v1.
Solana Wallet ◎
Solana wallet management and token operations for AI agents.
Setup
pip install -r requirements.txt
Initialize Wallet
First, create a new wallet and save the private key to your .env file:
python3 {baseDir}/scripts/initialize.py
This will:
- Generate a new Solana keypair
- Display the public key (wallet address)
- Save the private key in base58 format to
.envasSOLANA_PRIVATE_KEY
IMPORTANT: After running initialize.py, export the private key to your environment:
export SOLANA_PRIVATE_KEY=$(grep SOLANA_PRIVATE_KEY .env | cut -d '=' -f2)
Or source the .env file:
source .env
Wallet Operations
Check SOL Balance
python3 {baseDir}/scripts/wallet.py balance
python3 {baseDir}/scripts/wallet.py balance <wallet_address>
Check Token Balance
python3 {baseDir}/scripts/wallet.py token-balance <token_mint_address>
python3 {baseDir}/scripts/wallet.py token-balance <token_mint_address> --owner <wallet_address>
Send SOL
python3 {baseDir}/scripts/wallet.py send <recipient_address> <amount_in_sol>
Send SPL Token
python3 {baseDir}/scripts/wallet.py send-token <token_mint_address> <recipient_address> <amount>
Get Wallet Address
python3 {baseDir}/scripts/wallet.py address
Jupiter Swaps
Get Swap Quote
python3 {baseDir}/scripts/jup_swap.py quote <input_token> <output_token> <amount>
python3 {baseDir}/scripts/jup_swap.py quote SOL USDC 1
Execute Swap
python3 {baseDir}/scripts/jup_swap.py swap <input_token> <output_token> <amount>
python3 {baseDir}/scripts/jup_swap.py swap SOL USDC 0.1
List Known Tokens
python3 {baseDir}/scripts/jup_swap.py tokens
Token symbols: SOL, USDC, USDT, BONK, JUP, RAY, PYTH (or use full mint addresses)
Pump.fun Token Launch
Launch Token
python3 {baseDir}/scripts/pumpfun.py launch --name "Token Name" --symbol "TKN" --image ./logo.png
Launch with Dev Buy
python3 {baseDir}/scripts/pumpfun.py launch --name "Token Name" --symbol "TKN" --image ./logo.png --buy 0.5
Launch with Custom Mint (Vanity Address)
python3 {baseDir}/scripts/pumpfun.py launch --name "Token Name" --symbol "TKN" --image ./logo.png --mint-key <base58_key>
Use vanity addresses ending in 'pump' for more legit-looking tokens. Generate with:
solana-keygen grind --ends-with pump:1
Options
--name- Token name (required)--symbol- Token symbol (required)--image- Path to token image (required)--descriptionor-d- Token description--buyor-b- Dev buy amount in SOL--mint-keyor-m- Custom mint private key (base58)
Network Configuration
By default, wallet operations run on mainnet. Use --network to switch:
python3 {baseDir}/scripts/wallet.py balance --network devnet
python3 {baseDir}/scripts/wallet.py balance --network testnet
Environment Variables
| Variable | Description |
|---|---|
SOLANA_PRIVATE_KEY | Base58-encoded private key (required) |
JUPITER_API_KEY | Jupiter API key for swaps (required) |
SOLANA_RPC_URL | Custom RPC endpoint (optional) |
Examples
# Initialize new wallet
python3 {baseDir}/scripts/initialize.py
# Check your SOL balance
python3 {baseDir}/scripts/wallet.py balance
# Send 0.1 SOL to another wallet
python3 {baseDir}/scripts/wallet.py send 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 0.1
# Check USDC balance (mainnet USDC mint)
python3 {baseDir}/scripts/wallet.py token-balance EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
# Send 10 USDC to another wallet
python3 {baseDir}/scripts/wallet.py send-token EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU 10
# Quote swap: 1 SOL to USDC
python3 {baseDir}/scripts/jup_swap.py quote SOL USDC 1
# Swap 0.5 SOL to USDC
python3 {baseDir}/scripts/jup_swap.py swap SOL USDC 0.5
# Launch token on Pump.fun
python3 {baseDir}/scripts/pumpfun.py launch --name "My Token" --symbol "MTK" --image ./logo.png
# Launch with dev buy
python3 {baseDir}/scripts/pumpfun.py launch --name "My Token" --symbol "MTK" --image ./logo.png --buy 1
Common Token Mints (Mainnet)
| Token | Mint Address |
|---|---|
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| USDT | Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB |
| BONK | DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263 |
When to Use
- Create wallets for new Solana accounts
- Check balances of SOL or any SPL token
- Send SOL for payments or transfers
- Send tokens for SPL token transfers
- Swap tokens via Jupiter aggregator
- Launch tokens on Pump.fun with custom images and dev buys
- Devnet testing with
--network devnet