Default skill for structured-data visualization, chart generation, and dashboard-style reporting. Use when the user asks to create charts, graphs, plots, das...
Memory
图谱
Try itAsk a blockchain data question in plain English, get back live data from the matching Graph Protocol service.
What it does
Routes any blockchain data question to the right Graph Protocol service and returns live data in the response. Free tier covers token balances, holders, swaps, NFTs, Polymarket markets/OHLCV/positions, Aave lending data, and a registry search across 15,500+ subgraphs. Paid endpoints settle in USDC on Base via x402 for cross-venue prediction-market spreads (Polymarket ↔ Limitless, Kalshi ↔ Polymarket), Hyperliquid perps analytics, Uniswap pre-trade checks, and natural-language Q&A over 132M x402 settlements. Each response includes a `get_started` link for agents to obtain their own free API key.
When to use it
- Querying token balances, holders, or swap history across EVM, Solana, or TON
- Filtering Polymarket markets, OHLCV, or user positions via Token API REST
- Comparing prediction-market prices across Polymarket, Limitless, or Kalshi
- Scoring Hyperliquid trader skill, vault risk, or perps fill flow
The skill document
Graph Advocate
Ask any blockchain data question in plain English. Get back live data — not just a recommendation.
Routing
Match the user's intent to the right service. Load only the reference you need.
| Intent | Service | Reference | Use for |
|---|---|---|---|
| Token balances, holders, swaps, NFTs | token-api | token-api.md | Wallet data across EVM, Solana, TON |
| Polymarket markets, OHLCV, P&L, positions | token-api | token-api.md | REST endpoints under /v1/polymarket/* — no npm install |
| Find a subgraph for a protocol | subgraph-registry | subgraph-registry.md | Search 15,500+ subgraphs by protocol/chain |
| Aave lending data | graph-aave-mcp | aave.md | 40 tools — V2/V3/V4, liquidations, rates |
| Polymarket advanced (orderbook, disputes, trader winrate/drawdown) | graph-polymarket-mcp | polymarket.md | 31 tools — live CLOB, UMA resolution, subgraph-specific P&L stats |
| Hyperliquid perps — trader skill, vaults, liquidations | token-api + /hyperliquid/* | hyperliquid.md | Raw markets/users/vaults via token-api; derived skill scores via GA's paid /hyperliquid/* endpoints |
| Cross-protocol lending | graph-lending-mcp | — | Messari standardized — 40+ protocols on 15 chains |
| Limitless prediction markets | graph-limitless-mcp | — | Markets on Base |
| Cross-venue prediction-market spread (Polymarket ↔ Limitless) | /predmarket/spread (paid) | — | Same-topic markets paired across venues, per-pair yes-mid spread (bps), arbitrage direction. JOIN single-venue passthroughs can't return. $0.05 USDC. |
| Narrative vs on-chain flow | /narrative/divergence (paid) | — | Trending tokens ranked by the gap between social momentum and on-chain flow acceleration. Finds hype with no money behind it, and real flow nobody is tweeting about. $0.05 USDC. |
| Uniswap pre-trade check | /uniswap/pretrade (paid) | graph-uniswap-mcp | Real liquidity, deepest venue, honeypot flow, volume trend. $0.02 USDC. |
| Uniswap spot vs perp basis | /uniswap/basis (paid) | — | Uniswap spot against the Hyperliquid perp — cross-venue JOIN. $0.05 USDC. |
| Uniswap per-wallet flow | /uniswap/traders (paid) | graph-uniswap-mcp | Accumulators vs distributors for a token. $0.02 USDC. |
| Polymarket leaderboard | /polymarket/leaders (paid) | graph-polymarket-mcp | Top traders with derived skill metrics. $0.02 USDC. |
| Hyperliquid fill stream | /hyperliquid/fills (paid) | — | Recent perp fills for a coin with bid/ask flow summary. $0.02 USDC. |
| Hyperliquid trader skill score | /hyperliquid/score (paid) | — | Composite skill metrics for one HL trader. $0.02 USDC. |
| Hyperliquid per-coin PnL | /hyperliquid/pnl (paid) | — | Scores + open positions + recent activity. $0.05 USDC. |
| Hyperliquid counterparty risk | /hyperliquid/risk (paid) | — | Liquidation rate, funding burn, outflow flag. $0.02 USDC. |
| Polymarket wallet skill score | /polymarket/pnl-quick (paid) | graph-polymarket-mcp | Skill score + classification for a wallet. $0.01 USDC. |
| Polymarket full PnL | /polymarket/pnl (paid) | graph-polymarket-mcp | Scores + per-position records. $0.05 USDC. |
| Polymarket market screen | /polymarket/screen (paid) | — | Top wagerers on a market with ghost-fill risk per holder (N capped at 10). $0.02 USDC. |
| Polymarket ghost-fill risk | /polymarket/risk (paid) | — | Wallet-type detection + ghost-fill classification. $0.02 USDC. |
| Cross-source prediction-market spread (Kalshi ↔ Polymarket) | /kalshi-polymarket/spread (paid) | — | Same-topic markets across Kalshi + Polymarket with mid-spread and arbitrage direction. $0.05 USDC. |
| Agent reputation score (0-100) | /agent/score (paid) | — | Composite from ERC-8004 registration + USDC settlement velocity + on-chain feedback registry, aggregated across all of owner's agents. Hard 8004 gate filters burns/CEX. Buyer-agent's "should I trust this peer" call. Response includes counterparty-ref-v1 conformant SHA-256 + preimage + canonical JCS string so a verifier can re-derive byte-exact without callback. $0.02 USDC. |
| Kalshi consensus trend | /kalshi/consensus-trend (paid) | — | Slope/acceleration/volatility band from Kalshi forecast_history. $0.05 USDC. |
| Kalshi sports live-edge | /kalshi/sports-live-edge (paid) | — | Play-by-play momentum vs market candlesticks; flags latency-arb windows. $0.05 USDC. |
| Predict.fun prediction markets | predictfun-mcp | — | BNB Chain prediction markets |
| x402 payment analytics — NL question | /ask (paid) | — | Natural-language Q&A over 132M settlements + daily_stats (May 2025 → Jun 2026). Sonnet + DuckDB. $0.05 USDC. |
| x402 address lookup — onchain receipts | /onchain-x402/address (paid) | — | Decentralized lookup via x402 Base subgraph: lifetime stats by role (payer/recipient), recent payments, facilitator, indexed_through_block. $0.01 USDC. |
| x402 payment analytics (legacy reference) | x402-analytics | x402.md | Payment volume, facilitators, daily stats on Base |
| Raw block data, streaming | substreams | — | Traces, logs, custom transformations |
| Agent discovery (ERC-8004) | 8004scan | — | Find AI agents by capability |
| MCP server auth | mcp8004 | — | ERC-8004 identity verification |
Polymarket routing rule: Prefer token-api for common queries (markets, OHLCV, activity, user positions, P&L, platform stats). Only route to graph-polymarket-mcp for advanced queries: live orderbook depth, live spreads, disputed markets, UMA resolution, trader winrate/drawdown/profit factor, CTF splits/merges/redemptions.
If the request spans two services, use both and combine results.
Quick Examples
"Top 10 USDC holders on Ethereum" → token-api
"Best subgraph for Uniswap V3 on Arbitrum?" → subgraph-registry
"Aave V3 liquidations above $50K" → graph-aave-mcp
"Hottest Polymarket markets" → token-api (/v1/polymarket/markets)
"Polymarket OHLCV for Bitcoin market" → token-api (/v1/polymarket/markets/ohlc)
"Polymarket trader P&L for 0x..." → token-api (/v1/polymarket/users/positions)
"Polymarket live orderbook depth" → graph-polymarket-mcp (advanced)
"Polymarket trader winrate/drawdown" → graph-polymarket-mcp (subgraph P&L stats)
"Score Hyperliquid trader 0x..." → /hyperliquid/score (paid)
"Hyperliquid top traders for HYPE" → /hyperliquid/screen (paid)
"Evaluate Hyperliquid vault 0x..." → /hyperliquid/vault (paid)
"Compare Aave vs Compound TVL" → graph-lending-mcp
"x402 payment volume on Base today" → x402-analytics
"Top 10 x402 recipients in the last 30 days" → /ask (paid, NL→SQL)
"When did x402 volume on Base inflect?" → /ask (paid, NL→SQL)
"Has 0x0FF5A6… ever been paid via x402?" → /onchain-x402/address (paid, decentralized)
"Polymarket vs Limitless spread on 'trump'" → /predmarket/spread (paid, cross-venue JOIN)
"Kalshi vs Polymarket fed-rate arbitrage" → /kalshi-polymarket/spread (paid)
"Find agents that do trading" → 8004scan
How It Works
- Agent sends plain-English question
- Graph Advocate identifies the best service
- Searches the subgraph registry (15,500+ subgraphs with query hints)
- Executes the query and returns live data in the response
- Includes
get_startedlink for agents to get their own free API key
Response Format
{
"recommendation": "subgraph-registry",
"reason": "why this service fits",
"confidence": "high",
"query_ready": { "tool": "...", "args": {...} },
"execution_result": { "source": "subgraph-gateway", "data": {...} },
"get_started": "Free API key: https://thegraph.com/studio/",
"cache_for_seconds": 86400
}
Endpoints
| Method | URL | Purpose |
|---|---|---|
| POST | https://graphadvocate.com/ | A2A JSON-RPC 2.0 |
| POST | https://graphadvocate.com/chat | Free, no identity or wallet. Returns the query to run and how to get your own Token API JWT — never the data itself |
| GET | https://graphadvocate.com/.well-known/agent-card.json | Agent card |
| GET | https://graphadvocate.com/agents/capabilities.json | Machine-readable capability list |
| GET | https://graphadvocate.com/mcp/catalog | List of installable MCP servers |
| GET | https://graphadvocate.com/llms.txt | LLM-friendly discovery file |
| GET | https://graphadvocate.com/quota?sender=0x... | Free-tier quota remaining today (no charge) |
| GET | https://graphadvocate.com/dashboard | Live monitoring |
| POST | https://graphadvocate.com/feedback | Agent feedback |
Default mode: no wallet, free tier
This skill is fully functional with no wallet attached. The default routing — plain-English question in, JSON recommendation + live data out — runs against the free tier and never asks for funds. Agents that don't expose an x402-enabled runtime simply never see a payment challenge.
If you're evaluating Graph Advocate for the first time, start without a wallet, use the free tier, and decide later whether the paid endpoints are worth opting into.
Optional paid mode (opt-in)
Some endpoints settle in USDC on Base via the x402 protocol. Paid mode is
opt-in: it only activates when your agent runtime is configured to accept
x402 payment challenges. Without that configuration, paid endpoints return
402 Payment Required and the call stops there — no funds move.
Pricing
/route— 3 free queries/sender/day, then $0.01 USDC per call (Base mainnet)/polymarket/*— paid from call 1 ($0.01 - $0.05 per call)/hyperliquid/*— paid from call 1 ($0.02 - $0.10 per call)/predmarket/spread— paid from call 1 ($0.05 USDC) — Polymarket ↔ Limitless cross-venue spread on a topic. POST{topic, limit?}returns per-pair yes-mid spread (bps) and arbitrage direction. JOIN that single-venue passthroughs structurally can't return./kalshi-polymarket/spread— paid from call 1 ($0.05 USDC) — Kalshi ↔ Polymarket cross-source spread on a topic./kalshi/consensus-trend,/kalshi/sports-live-edge— paid from call 1 ($0.05 USDC each)./ask— paid from call 1 ($0.05 USDC) — natural-language Q&A over the x402 Base settlements warehouse. 132M+ payments + pre-aggregateddaily_stats(388 days). Returns{answer, sql_trace, model, upstream_ms}so callers can verify the data path./onchain-x402/address— paid from call 1 ($0.01 USDC) — decentralized address lookup against the x402 Base subgraph on The Graph Network. POST{address}returns lifetime stats (payer + recipient roles), recent 10 payments in each direction, facilitator metadata, andindexed_through_blockfor freshness.
402 challenge — preview before paying
Every paid endpoint's 402 response body includes an output_example field with a sample of the payload you'll receive after paying. Inspect this before signing — if the shape doesn't fit your use case, bail without spending.
Per-call approval (recommended)
Every paid call is preceded by an HTTP 402 challenge that names the price, the recipient address, and the settlement network:
HTTP/1.1 402 Payment Required
X-Payment: { "amount": "0.01", "currency": "USDC", "network": "base",
"recipient": "0x0FF5A6ec…7C86", "challenge": "" }
The 402 challenge is the per-call approval surface. Configure your runtime
to surface 402 challenges to the user before any payment is signed — most
x402 clients accept an interactive-approval flag (e.g. confirmBeforePay).
With per-call approval enabled, you see the exact price and recipient on every
paid request and decide yes/no per call. This is the recommended posture for
any wallet that holds more than a trivial amount.
If you instead configure your runtime to accept 402 challenges automatically, paid calls settle without an interactive prompt. That is a runtime-level choice, not a property of this skill — and if you choose it, the spend controls below become load-bearing.
Free-quota visibility (no-charge)
Before any paid call, check today's remaining free-tier quota:
GET https://graphadvocate.com/quota?sender=0x
Returns:
{
"sender": "0x…",
"free_quota_daily": 3,
"used_today": 1,
"remaining_today": 2,
"free_tier_exhausted": false,
"next_call_paid": false,
"price_usdc_per_paid_call": 0.01
}
/quota is a no-charge metadata route. Use it to:
- Display "N free queries remaining today" in your UI before the agent runs.
- Halt autonomous loops when
remaining_todayhits 0 instead of accepting the 402 challenge. - Audit per-sender spend by polling daily.
Required spend controls before autonomous use
- Dedicated low-balance wallet. Fund only what you're willing to spend in a session (e.g. $5 USDC). Never connect a wallet that holds your treasury.
- Spend caps in your agent runtime. Most x402 clients accept
maxAmountPerCallandmaxTotalSpendparameters. If yours does not, wrap calls to this skill in a counter that breaks after N invocations. - Stop conditions. Add at least one of:
- Hard cap on call count per task (e.g.
max_calls_per_run = 5) - Time bound on the task (e.g. abort after 5 minutes)
- Cost ceiling check before each call (read wallet USDC balance; halt if below threshold)
- Hard cap on call count per task (e.g.
- First-run probe mode. Treat the first execution as a probe — log every call, inspect spend, then enable autonomous mode only after confirming the per-task cost matches expectations.
Receipts and no-charge surface
- Every paid call returns an
x-payment-responseheader with the on-chain settlement reference. Log it. If a call doesn't return that header but charged your wallet, file an issue — the contract is "no settlement, no charge." - No-charge endpoints never trigger payment:
/.well-known/agent-card.json,/agents/capabilities.json,/mcp/catalog,/llms.txt,/dashboard,/chat,/quota,GET /.
Payments are received by Ampersend smart account 0x0FF5A6ecef783BBA35463ec2F8403B9B5e9e7C86.
External Endpoints
| Endpoint | Data sent | Purpose |
|---|---|---|
graphadvocate.com | Your plain-English query | Routes to the right Graph service |
gateway.thegraph.com/api/ | GraphQL queries | Executes subgraph queries for live data |
api.pinax.network/ | REST requests | Fetches token/NFT/swap data |
api.studio.thegraph.com | GraphQL queries | x402 payment analytics |
Security & Privacy
- Instruction-only skill — no code is downloaded or executed on your machine
- No credentials required — Graph Advocate does not need API keys from you
- No local file access — reads nothing from your filesystem
- Stateless — no session data persists between requests
Identity
- ERC-8004: Agent #734 (Arbitrum), #41,034 (Base)
- ENS: graphadvocate.eth
- Ampersend: app.ampersend.ai/discover/agent/8453:41034
Trust Statement
By using this skill, your plain-English data queries are sent to graphadvocate.com (hosted on Railway, operated by @paulieb14). The service returns structured JSON with live data. Queries may include wallet addresses and protocol/trading intent — do not send sensitive private context (private keys, seed phrases, internal strategy details) and only install if you trust this endpoint operator.
Paid mode is opt-in. This skill never requests credentials from you. Paid endpoints only settle when your agent runtime is configured to accept x402 payment challenges. Configure interactive approval if you want a per-call y/N prompt, and always use a low-balance wallet — see the "Optional paid mode" section above for the recommended posture and spend controls.
Links
- GitHub: https://github.com/PaulieB14/graph-advocate
- The Graph: https://thegraph.com
- Subgraph Studio: https://thegraph.com/studio
Questions people ask
- Do I need a wallet to use it?
- No. The default free tier is fully functional without a wallet or payment configuration. Paid endpoints only activate when your agent runtime accepts x402 challenges; otherwise they return 402 Payment Required and the call stops without any funds moving.
- What data does the free tier cover?
- Token API queries (balances, holders, swaps, NFTs) across EVM/Solana/TON, 15,500+ subgraph registry search, Polymarket markets/OHLCV/positions via REST, Aave V2/V3/V4 lending tools, cross-protocol lending via graph-lending-mcp, and Limitless/Predict.fun markets.
- How are paid endpoints priced?
- USDC on Base via x402, ranging from $0.01 to $0.05 per call, with per-call 402 approval. Each 402 response includes an `output_example` field so you can preview the payload shape before signing off on payment.
Related skills
Query crypto project details, Web3 investor info, funding rounds, trending projects, and personnel job changes from RootData. Use this skill when the user asks about blockchain projects, crypto investors, Web3 funding history, investment rounds, trending crypto projects, or personnel movements in th
Generate charts from natural language or tabular data, recommend chart types, and export ECharts-based HTML or SVG. Use when users ask for one-sentence chart...
Discover and filter 15,293 The Graph subgraphs by domain, network, protocol type, or natural language goal. Each result includes an x402 query URL — $0.01 USDC on Base per call, no API key required.
Deep crypto research covering tokens, DeFi protocols, on-chain data, and portfolio strategy from a single prompt.
观远 BI(Guandata)实战增益层 Agent Skill —— 架在官方全家桶(guancli 查数 / guanvis 建卡发布截图 / guanetl ETL / guanwf 数据流 / guands 数据源 / guanmetric 指标写)之上,专攻官方 DSL/命令覆盖不到的硬骨头:Part...