<< All versions
Skill v1.0.0
currentAutomated scan100/100alexai-mcp/hermes-ccc/solana
──Details
PublishedOctober 24, 2026 at 07:08 AM
Content Hashsha256:78a7ec735af2532c...
Git SHA8107e895541f
──Files
Files (1 file, 3.7 KB)
SKILL.md3.7 KBactive
SKILL.md · 173 lines · 3.7 KB
name: solana description: Query Solana blockchain data — SOL balances, SPL tokens, transactions, programs, and NFTs via JSON RPC API. version: 1.0.0 author: hermes-CCC (ported from Hermes Agent by NousResearch) license: MIT metadata: hermes: tags: [Solana, Blockchain, Crypto, Web3, SOL, SPL-Tokens, NFT] related_skills: [base-blockchain]
Solana Blockchain
Query Solana on-chain data via JSON RPC. No API key required for public endpoints.
RPC Endpoints
Mainnet: https://api.mainnet-beta.solana.comDevnet: https://api.devnet.solana.comTestnet: https://api.testnet.solana.com
Python Setup
python
import urllib.request, jsonRPC = "https://api.mainnet-beta.solana.com"def rpc(method, params=[]):payload = json.dumps({"jsonrpc": "2.0", "id": 1,"method": method, "params": params}).encode()req = urllib.request.Request(RPC, data=payload,headers={"Content-Type": "application/json"})with urllib.request.urlopen(req, timeout=10) as r:resp = json.loads(r.read())if "error" in resp:raise Exception(resp["error"])return resp["result"]
SOL Balance
python
def get_sol_balance(pubkey):result = rpc("getBalance", [pubkey])return result["value"] / 1e9 # lamports → SOLaddr = "YourWalletPublicKey..."print(f"Balance: {get_sol_balance(addr):.4f} SOL")
SPL Token Accounts
python
def get_token_accounts(pubkey):result = rpc("getTokenAccountsByOwner", [pubkey,{"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"encoding": "jsonParsed"}])return result["value"]accounts = get_token_accounts(addr)for acc in accounts:info = acc["account"]["data"]["parsed"]["info"]mint = info["mint"]amount = info["tokenAmount"]["uiAmount"]print(f"Token: {mint[:8]}... Balance: {amount}")
Transaction Details
python
def get_tx(signature):return rpc("getTransaction", [signature,{"encoding": "jsonParsed", "maxSupportedTransactionVersion": 0}])def get_recent_txs(pubkey, limit=10):sigs = rpc("getSignaturesForAddress", [pubkey, {"limit": limit}])return [s["signature"] for s in sigs]
Account Info
python
def get_account(pubkey):return rpc("getAccountInfo", [pubkey, {"encoding": "jsonParsed"}])info = get_account(addr)print(f"Lamports: {info['value']['lamports']}")print(f"Owner: {info['value']['owner']}")print(f"Executable: {info['value']['executable']}")
Network Stats
python
def get_slot():return rpc("getSlot")def get_epoch_info():return rpc("getEpochInfo")def get_recent_performance():return rpc("getRecentPerformanceSamples", [5])print(f"Current slot: {get_slot()}")epoch = get_epoch_info()print(f"Epoch: {epoch['epoch']}, Slot: {epoch['slotIndex']}/{epoch['slotsInEpoch']}")
SOL Price
python
def get_sol_price():url = "https://api.coingecko.com/api/v3/simple/price?ids=solana&vs_currencies=usd"with urllib.request.urlopen(url) as r:return json.loads(r.read())["solana"]["usd"]price = get_sol_price()bal = get_sol_balance(addr)print(f"Portfolio: ${bal * price:.2f} USD")
Solana CLI (alternative)
bash
# Installsh -c "$(curl -sSfL https://release.solana.com/stable/install)"# Balancesolana balance WALLET_ADDRESS# Transaction historysolana transaction-history WALLET_ADDRESS --limit 10# Set networksolana config set --url mainnet-beta
Helius / QuickNode (enhanced APIs)
For NFT data, DAS API, and higher rate limits:
python
# Helius (free tier available)RPC = "https://mainnet.helius-rpc.com/?api-key=YOUR_KEY"