arxiv
Search and retrieve academic papers from arXiv using their free REST API. No API key needed.
Query Solana blockchain data — SOL balances, SPL tokens, transactions, programs, and NFTs via JSON RPC API.
$ npx -y skills add alexai-mcp/hermes-ccc --skill solana --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/solanaContext preview
The summary Claude sees to decide when to auto-load this skill.
Query Solana blockchain data — SOL balances, SPL tokens, transactions, programs, and NFTs via JSON RPC API.
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]Query Solana on-chain data via JSON RPC. No API key required for public endpoints.
Mainnet: https://api.mainnet-beta.solana.com Devnet: https://api.devnet.solana.com Testnet: https://api.testnet.solana.com
import urllib.request, json
RPC = "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"]---
def get_sol_balance(pubkey):
result = rpc("getBalance", [pubkey])
return result["value"] / 1e9 # lamports → SOL
addr = "YourWalletPublicKey..."
print(f"Balance: {get_sol_balance(addr):.4f} SOL")---
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}")---
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]---
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']}")---
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']}")---
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")---
# Install sh -c "$(curl -sSfL https://release.solana.com/stable/install)" # Balance solana balance WALLET_ADDRESS # Transaction history solana transaction-history WALLET_ADDRESS --limit 10 # Set network solana config set --url mainnet-beta
---
For NFT data, DAS API, and higher rate limits:
# Helius (free tier available) RPC = "https://mainnet.helius-rpc.com/?api-key=YOUR_KEY"
Hermes Agent, faithfully ported to Claude Code Channel (CCC). hermes-CCC brings the power of Hermes Agent by NousResearch into Claude Code's native skill system — no separate process, no OAuth, no lock-in. Everything runs inside Claude Code.
Search and retrieve academic papers from arXiv using their free REST API. No API key needed.
Query Base (Ethereum L2) blockchain data — wallet balances, token info, transactions, gas analysis, contract inspection. No API…
Monitor and summarize blog posts, RSS feeds, and web content for research and staying current with topics.
Open-source embedding database for RAG — store embeddings, vector search, metadata filtering. Simple API, scales from notebook to…
Manage Docker containers, images, volumes, networks, and Compose stacks - lifecycle ops, debugging, cleanup, and Dockerfile…
Free web search via DuckDuckGo - no API key needed. Text, news, images. Use as fallback when other search tools unavailable.