arxiv
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 key required.
$ npx -y skills add alexai-mcp/hermes-ccc --skill base-blockchain --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/base-blockchainContext preview
The summary Claude sees to decide when to auto-load this skill.
Query Base (Ethereum L2) blockchain data — wallet balances, token info, transactions, gas analysis, contract inspection. No API key required.
name: base-blockchain
description: Query Base (Ethereum L2) blockchain data — wallet balances, token info, transactions, gas analysis, contract inspection. No API key required.
version: 1.0.0
author: hermes-CCC (ported from Hermes Agent by NousResearch)
license: MIT
metadata:
hermes:
tags: [Base, Blockchain, Crypto, Web3, EVM, L2, Ethereum, DeFi]
related_skills: [solana]Query Base (Ethereum L2) on-chain data enriched with USD pricing. No API key needed — uses public RPC + CoinGecko.
Mainnet: https://mainnet.base.org Testnet: https://sepolia.base.org Chain ID: 8453 (mainnet) / 84532 (testnet)
import urllib.request, json
RPC = "https://mainnet.base.org"
def rpc_call(method, params=[]):
payload = json.dumps({"jsonrpc":"2.0","method":method,"params":params,"id":1}).encode()
req = urllib.request.Request(RPC, data=payload, headers={"Content-Type":"application/json"})
with urllib.request.urlopen(req) as r:
return json.loads(r.read())["result"]---
def get_eth_balance(address):
hex_balance = rpc_call("eth_getBalance", [address, "latest"])
return int(hex_balance, 16) / 1e18
addr = "0xYourWalletAddress"
print(f"Balance: {get_eth_balance(addr):.6f} ETH")---
# balanceOf(address) = keccak256 first 4 bytes = 0x70a08231
def get_token_balance(token_addr, wallet_addr, decimals=18):
data = "0x70a08231" + wallet_addr[2:].zfill(64)
result = rpc_call("eth_call", [{"to": token_addr, "data": data}, "latest"])
return int(result, 16) / (10 ** decimals)
# USDC on Base (6 decimals)
usdc = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
print(f"USDC: {get_token_balance(usdc, addr, decimals=6):.2f}")---
def get_tx(tx_hash):
return rpc_call("eth_getTransactionByHash", [tx_hash])
def get_tx_receipt(tx_hash):
return rpc_call("eth_getTransactionReceipt", [tx_hash])
tx = get_tx("0xabc123...")
print(f"From: {tx['from']}")
print(f"To: {tx['to']}")
print(f"Value: {int(tx['value'],16)/1e18} ETH")---
def get_gas_price():
hex_gas = rpc_call("eth_gasPrice")
gwei = int(hex_gas, 16) / 1e9
return gwei
print(f"Gas price: {get_gas_price():.2f} Gwei")
# Estimate gas for a transfer
def estimate_gas(from_addr, to_addr, value_eth):
return rpc_call("eth_estimateGas", [{
"from": from_addr,
"to": to_addr,
"value": hex(int(value_eth * 1e18))
}])---
def get_eth_price_usd():
url = "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd"
with urllib.request.urlopen(url) as r:
return json.loads(r.read())["ethereum"]["usd"]
price = get_eth_price_usd()
balance = get_eth_balance(addr)
print(f"Portfolio: ${balance * price:.2f} USD")---
def get_latest_block():
return rpc_call("eth_getBlockByNumber", ["latest", False])
block = get_latest_block()
print(f"Block: {int(block['number'],16)}")
print(f"Txs: {len(block['transactions'])}")---
# Check if address is a contract
def is_contract(address):
code = rpc_call("eth_getCode", [address, "latest"])
return code != "0x"
# Read contract storage slot
def get_storage(address, slot):
return rpc_call("eth_getStorageAt", [address, hex(slot), "latest"])---
For detailed tx history, use Basescan API (free key at basescan.org):
BASESCAN = "https://api.basescan.org/api"
# Get tx list for address
params = f"?module=account&action=txlist&address={addr}&apikey=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.
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.
Create and export diagrams with Excalidraw - whiteboard-style sketches, flowcharts, architecture diagrams via MCP or CLI.