Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.graphadvocate.com/llms.txt

Use this file to discover all available pages before exploring further.

0. Just want to see it work?

Open /chat in your browser and type any onchain question — e.g. “Top Uniswap V3 pools on Base” or “Wallet balance for vitalik.eth”. No setup, no wallet, no signup. Calling it from code? Read on.

1. Ask anything

No auth, no keys, nothing to install. POST a plain-English question:
curl -X POST https://graphadvocate.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "q1",
    "method": "message/send",
    "params": {
      "message": {
        "messageId": "q1",
        "role": "user",
        "parts": [{"kind": "text", "text": "Wallet balance for vitalik.eth"}]
      }
    }
  }'
Free tier: 10 calls/day per requesting wallet — counted by the Ethereum address signing the request (or the source IP if no signature). Beyond that, POST /route returns HTTP 402 with x402 payment requirements; any x402-aware client signs a $0.01 USDC transferWithAuthorization on Base and retries automatically. No signup, no card, no API key — ever.

2. Keep going once you hit the cap

from x402 import x402Client
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client
from x402.http.clients import x402HttpxClient
from eth_account import Account
import os

client = x402Client()
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

async with x402HttpxClient(client) as http:
    r = await http.post(
        "https://graphadvocate.com/route",
        json={"request": "Uniswap V3 pools on Base"},
    )
    print(r.json())

3. Use it from Claude Desktop (MCP)

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
  "mcpServers": {
    "graph-advocate": {
      "url": "https://graphadvocate.com/mcp"
    }
  }
}
Restart Claude Desktop. Ask “use graph-advocate to find me the right subgraph for X” and the routing happens inline.