Horizontal

WorksBlockchainFinance and payments

Sato Hub: Build Onchain & Crypto Agents

Build any crypto agent: x402, ERC-8004, wallets. Does a server take your key? Hosted? Maintained?

Addresshttps://satohub.ai/api/mcp
Claude Codeclaude mcp add --transport http onchain-agents https://satohub.ai/api/mcp
For Cursor and other clients
{
  "mcpServers": {
    "onchain-agents": {
      "type": "http",
      "url": "https://satohub.ai/api/mcp"
    }
  }
}
Test
Works: Handshake succeeded
Tools
48 tools
Handshake
2.5 s
Transport
streamable-http · 2025-06-18
Tested
6 November 2026
Registry name
ai.satohub/onchain-agents v1.4.0
Listed
29 October 2026
Updated
29 October 2026
Website
satohub.ai/mcp
Source
github.com/satohubai/onchain-agents
Also as a package
1 package
The last 1 tests
WhenResultTime
2026-11-06 12:10 UTCHandshake succeeded2.5 s

The 48 tools it listed

"Read only" and "Changes data" are the server's own marks. Underlined parameters are required.

  1. fetchRead only

    Fetch one Sato Hub record

    USE WHEN you hold an id that `search` returned and want that record from Sato Hub, the daily-rebuilt index of what onchain and crypto AI agents are built from, as plain text to quote. Not for token prices, trading or investment advice. NOT FOR a directory slug (use onchain_agent_get_resource instead) or an id you made up (call `search` first). RETURNS (json): { id, title, text, url, metadata: { as_of, kind, sato_score?, source } }. text is plain prose to quote: for a listing, what it is, its category and chains, its Sato Score with the date (how open, active and verifiable it is — not a safety or returns grade), its last observed activity, and whether Sato Hub reproduced its install; for an answer, number or wiki page, the answer with its date. url is the canonical satohub.ai page to cite. An id without a prefix is read as the record with that exact slug, or a listing it names exactly (the same name written differently, a recorded alias, the listing's own name); such an answer is labe

    id

  2. onchain_agent_build_planRead only

    Turn a build goal into a full plan: stack, install steps, Preflight

    USE WHEN someone describes the onchain agent they want and needs ONE composed answer that goes from goal to install steps (stack, deploy specs, Preflight, first action, open questions) rather than advice. NOT FOR only the ranked stack (use onchain_agent_recommend_stack instead, the lighter first call), a plan plus a pointer to the repo generator (use onchain_agent_scaffold_plan), or the runnable repo itself (use onchain_agent_create_agent). COMPOSES onchain_agent_recommend_stack, onchain_agent_get_deploy_spec and onchain_agent_preflight: the goal restated, a stack of REAL directory listings (each with Sato Score, liveness, observed check record and `sato_url`), the deploy spec for every item that publishes one, a records-only `preflight_summary` and a dated `trust_spec` (what it does with your keys and money, from Sato Check) on every item with `trust_warnings` first when a planted key was observed leaving or code reads undeclared key material, the first action when the goal implies o

    goal chain budget_usd constraints save public response_format

  3. onchain_agent_check_installRead only

    Check what an install can do with your keys and funds

    USE WHEN you are about to install a crypto package, MCP server or skill and want to know what it can do with your keys and funds: before npm/pnpm/yarn/bun add, npx -y, pip install, uvx or `claude mcp add`, or before pasting an {"mcpServers": …} config. NOT FOR a token, repo, endpoint or agent you were handed (use onchain_agent_preflight instead), install steps for a stack pick (use onchain_agent_get_deploy_spec), or an agent skill's disclosure (use onchain_agent_search_skills). RETURNS a Sato Check custody summary for every target in the command or config you pass, answering four questions: does it take your key, does your key leave, can it move funds on its own, what changed. Each answer rests on evidence of one class — declared (the project says so), traced (our static read of the published artifact) or observed (a sandbox run with planted test keys). A stored profile answers first; an unstored target is read live within a bounded budget. Targets that could not be profiled are list

    command config install cmd package text mcp mcpServers

  4. onchain_agent_compare_listingsRead only

    Compare two listings on the same axes

    USE WHEN the question is how two directory listings compare on the axes Sato Hub tracks for both (ANSWERS ONE QUESTION), e.g. "AgentKit or Solana Agent Kit?". NOT FOR a single project's detail (use onchain_agent_get_resource instead) or a ranked stack for a goal (use onchain_agent_recommend_stack). RETURNS the SAME derived table the /compare pages render — category, chains, interfaces, standards, open-source status, listing status, last activity, last release, install proof, verification, Sato Score, GitHub stars — every cell read off the live records, never typed. RULE ENFORCED: there is NO winner field and none can be derived from the table; `caveat` is mandatory and names what the data cannot settle (for a curated pair, the comparison page's own caveat). The Sato Score is openness/activity/verifiability, not a safety, quality or returns grade. RETURNS (json): { a: { slug, name, liveness, observed_success_pct, sato_url }, b: {...}, rows: [{ label, a, b, note? }], caveat, rules, co

    a b response_format

  5. onchain_agent_create_agentRead only

    Create a runnable agent repo from a checked template

    USE WHEN someone wants the code for an onchain agent, not advice: describe the goal and get a runnable TypeScript repo generated from a template that is re-checked every night. Same handler as POST /api/create and the create-sato-agent CLI. NOT FOR choosing a stack or advice (use onchain_agent_recommend_stack or onchain_agent_build_plan instead) or a plan with no repo (use onchain_agent_scaffold_plan). The goal picks the template; it never changes a template code file. A goal no template answers returns no_template with the nearest templates instead of improvised code — each with its id, framework, intents, chains and `mismatched` (what differs from the request), so the next call can name one. TEMPLATES, as template (intents: frameworks): base-guarded-trader (trading, swap: agentkit, ai-sdk, claude-agent-sdk, openai-agents, plain-ts); persona-agent (general, payments: claude-agent-sdk); research-report (data, research: plain-ts); solana-guarded-swapper (trading, swap: plain-ts); toke

    goal framework chain network mainnet_risk_accepted template format

  6. onchain_agent_explain_numberRead only

    Where does this number come from?

    USE WHEN the question is where a published Sato Hub number comes from (ANSWERS ONE QUESTION) and you need its method, sample and reproduce call before quoting it. NOT FOR fresh measurements (use onchain_agent_get_agent_economy instead) or how old a data surface is (use onchain_agent_get_data_freshness). RETURNS: for any https://satohub.ai/numbers/<slug> page { slug, page, question, method, window, reproduce, mcp_server, rules } — how the number is measured and the exact call that reruns it. Otherwise it returns one finding from the State of Onchain Agents report by slug — the figure with its stage, method, sample, as-of date, the SQL query that reproduces it, and its citable page at https://satohub.ai/numbers/<slug>. RULE ENFORCED: a number never travels without its stage, method, sample and date; it is never summed across venues, chains or stages. CITE THE URL in the payload, not this response. Returns an error while the report is unpublished. RETURNS (json): { slug, title, number,

    slug response_format

  7. onchain_agent_find_x402_serviceRead only

    Find a paid x402 service for a need, ranked by observed evidence

    USE WHEN an agent needs a paid API or data service it can call and pay per request with x402, and wants the ones with evidence behind them first. Find a paid API/data service an agent can call and pay per request with x402: market data, onchain data, web data, search, inference, security checks, identity lookups, dev tools and more. Describe the need in plain words; optional category, chain and max_price_usd narrow it. RULE ENFORCED: results are ranked by what Sato Hub observed, never by what a seller says about itself and never by anything paid to us. Order: (1) x402-style payments to the payout address on Base in the last seven days from several outside payers, not machine noise (counted when the transaction carries a signed USDC authorization, EIP-3009, the settlement x402's exact scheme uses; some non-x402 gasless sends use it too); (2) the listed URL answered HTTP 402 with a payment payload when we asked; (3) everything else, unknown before no. All USDC received at a payout addre

    need category chain max_price_usd limit response_format

  8. onchain_agent_get_agent_economyRead only

    Measure the onchain agent economy

    USE WHEN asked how big the onchain agent economy actually is (how many agents are really registered, launched, paying or trading) and you want measured chain reads instead of a figure from a deck or an announcement. Covers the agent venues Sato Hub tracks: registries, launchpads, payment rails and account infrastructure, measured weekly from public chain reads. NOT FOR a series over time (use onchain_agent_get_trend instead), one headline ERC-8004 count (use onchain_agent_get_metrics), or agents registered with Sato Hub (use onchain_agent_search_agents). RETURNS (json): { week, as_of, rules, evidence_tiers, venues: [{ id, name, unit, entry_cost, measurable, overlaps_with, headline_safe, contracts:[...], chains:[{ chain, stages:[{ stage, value, unit, method, evidence_tier, sample_size, denominator, covered_days, publishable, caveat }] }], platforms:[...] }] }. With no venue, chain or include_platforms (and no detail: "full") it is a compact summary instead, labelled rule "defaulted": {

    venue chain include_platforms detail response_format

  9. onchain_agent_get_agent_passportRead only

    Look up one registered agent

    USE WHEN you are about to work with, pay or depend on a REGISTERED agent and want its published identity before committing. Find slugs with onchain_agent_search_agents. NOT FOR a project in the directory such as a framework or MCP server (use onchain_agent_get_resource instead; aixbt, almanak and coinbase-agentkit have no passport). RETURNS the full Sato Agent Passport manifest (sato.agent.manifest/v1) for one registered agent by slug: identity (sato_agent_id), agent types, chains, model/framework, the stack of Sato Hub directory resources it runs on, links, payment/x402 endpoint metadata, and verification + liveness status. It also carries `registration` (the passport's lookup URL and any Sato Hub attestations recorded onchain on Base and Solana) and `erc8004` (the ERC-8004 ids its proven wallets own, with links). An attestation is a registration record: it shows the registrant proved control of the wallets, and says nothing about what the agent does. Payment metadata is self-config

    slug response_format

  10. onchain_agent_get_chain_cardRead only

    One dated card of facts for a chain

    USE WHEN you are about to build for or deploy to a chain and want its dated facts in one call: registry entry, USDC and CCTP domain, ERC-8004 registry deployment, which public RPC endpoints support state-override calls and eth_simulateV1, which x402 facilitators list it, and reported activity. NOT FOR one contract's address (use onchain_agent_get_contract_facts instead), the facilitator roster across chains (use onchain_agent_get_x402_facilitators), the agent-economy numbers per venue (use onchain_agent_get_agent_economy), or a list of chains (use onchain_agent_list_chains). RETURNS (json): { chain: { key, caip2, chain_id }, as_of, stale_after, changed_since, sections: { registry, usdc, cctp_domain, erc8004, rpc, x402_facilitators, activity }, not_covered, next, meta }, each section a fact in the common shape or null with a reason. No rank and no score is returned, and no chain is compared with another. Activity figures are reported by DefiLlama (TVL, stablecoin supply) and growthepie

    chain response_format

  11. onchain_agent_get_changesRead only

    Sync a copy of the directory

    USE WHEN you keep a local copy of the directory and need only what moved since your last sync (machine-readable added / updated / removed), rather than re-fetching the whole catalog. NOT FOR a readable headline feed or one project's history (use onchain_agent_recent_changes instead), or the current state of one record (use onchain_agent_get_resource). RETURNS (json): what changed since a given date: additions, per-resource change events, and retirements. { since, until, window_days, next_since, counts:{added,changed,removed}, added:[...], changed:[{slug,name,url,events:[...]}], removed:[...], coverage:{...}, full_export }. CURSOR: `next_since` is the date to pass as `since` on your next call. It starts the next window at a snapshot taken before this read, so a change cannot fall between two calls; it overlaps by a couple of days, so dedupe by slug. To watch a fixed list of listings, call on a schedule with `since` = the last `next_since` and look for your slugs in each lane. A call w

    since detail

  12. onchain_agent_get_contract_factsRead only

    Canonical contract addresses and ids, with source and date

    USE WHEN you need the canonical address or id of something on a chain and want it with its source and date instead of from memory: a protocol's deployment (Uniswap Permit2, a Safe singleton, Multicall3, the ERC-4337 EntryPoint, an ERC-8004 registry), the USDC contract and CCTP domain Circle states for a chain, an x402 SDK's default stablecoin, or a chain's registry entry. NOT FOR a whole-chain readiness picture with RPC support and facilitators (use onchain_agent_get_chain_card instead), a recipient check before you pay (use onchain_agent_scan_recipient), or a token price. Token-list rows are not served. RETURNS (json): { query, total, facts: [{ id, kind, protocol, value, as_of, stale_after, source, source_url, method, confidence_class, since, version_pin?, scope?, disagreements?, reasons?, untrusted_text: { subject, chain_name } }], truncated?, not_covered, next, changed_since, meta }. At least one of chain, contract or token is required (a protocol needs a chain: "add chain" otherwi

    chain contract protocol token kind include_testnets limit response_format

  13. onchain_agent_get_data_freshnessRead only

    How fresh is the data behind each answer

    USE WHEN you are about to quote a Sato Hub number, score, count or feed item and want to know how old it is — or when a figure looks stale and you need to know whether the pipeline behind it is late. NOT FOR how a number is measured (use onchain_agent_explain_number instead) or what changed in the directory (use onchain_agent_recent_changes). COVERS, per data surface (directory activity, news, Sato Score, liveness checks, snapshots, ERC-8004 counts, the weekly agent-economy measurements, x402, LP pools, skills, deploy verification and more): when it was last collected successfully, when a collection was last attempted and how that ended, how often it is expected to run, whether it is late, the next scheduled run, and the ledger step it was read from. RULE ENFORCED: late = now − last success > 1.5 × the expected cadence (daily 36h, weekly 252h). A surface built from several pipeline steps is as fresh as its stalest step, and one of its steps never succeeding makes it late. A surface o

    surface response_format

  14. onchain_agent_get_deploy_specRead only

    Get install steps for a stack pick, with its Preflight attached

    USE WHEN a component has been picked (from onchain_agent_recommend_stack, onchain_agent_build_plan or a search) and the next step is installing it, once per pick, or you are about to write setup instructions and want steps checked against a clean install rather than copied from a README. NOT FOR choosing components (use onchain_agent_recommend_stack instead), whether an install command takes your key (use onchain_agent_check_install), or a full evidence list (use onchain_agent_preflight). RETURNS the deploy manifest for one resource by slug: runtime, install command(s), entry snippet, required keys/env/wallet/RPC, chains, license, whether it is itself an MCP server, and a deploy_status. KEYS AND MONEY COME WITH IT: every answer carries `trust_spec` — what this install does with your keys and money, from Sato Check, dated (key access, whether a planted test key was observed leaving, fund-moving actions, the version read, the Preflight verdict, what the reading does not cover). A hoste

    slug response_format

  15. onchain_agent_get_listing_historyRead only

    Has this tool been answering?

    USE WHEN the question is whether a listing has been answering Sato Hub's daily checks and whether its tool inventory has moved (ANSWERS ONE QUESTION), or how its Sato Score has moved day by day. NOT FOR a feed of events across projects (use onchain_agent_recent_changes instead) or the listing's current record (use onchain_agent_get_resource). RETURNS a bounded 30-day shape from the listing's observed record — days observed, share of OUR checks that succeeded, current state and streak — plus the MCP tool-inventory changes in the window (date, count after the change, added, removed) and the current Sato Score. RULE ENFORCED: success_rate_pct is the share of Sato Hub's own checks that succeeded, never "uptime" — a failure can be on our side. At most 30 entries; the daily rows are not returned (rule 24: shape, not rows). Absence of a record is unknown, not down. Pass `score_days` to add `score_series`: the daily Sato Score readings we captured for this listing, up to 90 days without a k

    slug days score_days response_format

  16. onchain_agent_get_metricsRead only

    Live ecosystem numbers, read from chain

    USE WHEN you need one current, citable headline figure for the onchain agent ecosystem rather than a number from an article of unknown age: the ERC-8004 Identity Registry registered-agent count (read directly from Ethereum mainnet) and the curated Top Project Tokens index (only tokens of directory-listed projects, never the whole agent-token category or its aggregate market cap). NOT FOR counts by venue, chain or stage (use onchain_agent_get_agent_economy instead), a time series (use onchain_agent_get_trend), or token prices for trading. RETURNS (json): { erc8004: { network, registered_agents, live, checked_at, other_chains: { tool, args, note } }, top_agent_tokens: [{ symbol, name, current_price, market_cap, price_change_percentage_24h, resource_slug }] }. Read-only. Example: { token_limit: 5 }

    token_limit response_format

  17. onchain_agent_get_newsRead only

    Recent crypto-agent releases and news

    USE WHEN asked what is new or what shipped recently in crypto AI agents, and you want dated, source-attributed items rather than undated blog posts. Official releases (GitHub), project announcements, and reputable RSS, strongly filtered to the agent economy. Filter by kind (release/tweet/news/research) and/or chain; paginate via limit/offset. NOT FOR changes to the directory's own records (use onchain_agent_recent_changes instead) or a concept explainer (use onchain_agent_get_wiki_page). RETURNS (json): { total, count, offset, has_more, next_offset?, news: [{ kind, title, summary, url, source, author_handle, chains, resource_slug, published_at }] }. Read-only. Example: { kind: "release", limit: 10 }

    kind chain limit offset response_format

  18. onchain_agent_get_resourceRead only

    Check one project in detail

    USE WHEN you need to judge one specific directory project: is it open source, still maintained, who is behind it, what does it support. NOT FOR a REGISTERED running agent (use onchain_agent_get_agent_passport instead), a published agent package (use onchain_agent_inspect_listing), install steps (use onchain_agent_get_deploy_spec), or finding a slug (use onchain_agent_search_resources first). RETURNS (json): { resource: {...full record incl. marketplace + liveness fields}, recent_activity: [...], agent_docs } by slug, optionally with recent releases and posts. `agent_docs` is where the project's machine-readable docs are, each dated: { as_of, read_first, llms_txt, llms_full, docs_mcp, agent_card }, or null with `agent_docs_reason` (not_yet_archived, read_failed) when none is archived; null is not "no docs". An unknown or Deprecated slug is an error. Read-only. Example: { slug: "coinbase-agentkit" }

    slug include_activity response_format

  19. onchain_agent_get_score_methodologyRead only

    How the Sato Score works

    USE WHEN you are about to describe, apply or compare the Sato Score — or when asked how to tell whether a crypto-agent project is real, maintained or open — so you quote the rubric instead of guessing it. NOT FOR one project's score (use onchain_agent_get_resource instead; its record carries the score) or a score's movement over time (use onchain_agent_get_listing_history with score_days). RETURNS the six components with their maximum points and what each measures, the tier cutoffs, what "provisional" means, what is deliberately NOT in the score, how it is computed and reproduced, and where a dispute goes. RULE ENFORCED: the Sato Score is a 0–100 measure of how OPEN, ACTIVE and VERIFIABLE a project is, from public evidence, recomputed daily. It is NOT a safety, security, quality, legitimacy or returns grade, and this tool says so in the payload. Self-reported claims earn nothing in it. CITE https://satohub.ai/sato-score when you explain it. RETURNS (json): { name, scale, components:

    response_format

  20. onchain_agent_get_sdk_lineageRead only

    Which line of an SDK is current, and what replaces it

    USE WHEN you are about to write, fix or upgrade code that imports a crypto or agent SDK (viem, ethers, @solana/web3.js, x402, ...) and need to know which major line is current, whether the package or version you were taught is legacy or deprecated, what replaces it, and what breaks on the way. NOT FOR choosing a framework, wallet or payment rail for a build goal (use onchain_agent_recommend_stack instead), install steps (use onchain_agent_get_deploy_spec), whether an install command takes your key (use onchain_agent_check_install), or a project's directory record (use onchain_agent_get_resource). RETURNS (json): { query, matches: [{ id, lineage, ecosystem, package, version, status: { value, reason, as_of, source_url, method, confidence_class, stale_after, version_pin }, use_instead: [{ package, version_range }], migration_url, breaking: [{ from, to, symptom, fix_hint }], contradicted_by, registry: { value: { latest_major, deprecated }, as_of, ... } | null }], ecosystem_ambiguous?, not

    package version ecosystem response_format

  21. onchain_agent_get_trendRead only

    Is this going up or down?

    USE WHEN the question is whether a measurement is going up or down (ANSWERS ONE QUESTION). Returns a bounded series (at most 30 points, default 8) for ONE venue, ONE chain and ONE stage from Sato Hub's own weekly (or daily) chain reads, each point with its date, value, sample_size and method. NOT FOR this week's numbers across venues (use onchain_agent_get_agent_economy instead) or one listing's score or check history (use onchain_agent_get_listing_history). Pass stage (required). Venue is optional: name it to read exactly one series; omit it and a stage that only one venue reports is read from that venue, while a stage several venues report comes back as one SEPARATE series per venue. Stages by venue: erc8004 reports registered (weekly), registered_new_1d (daily), active_7d, mcp_endpoint_answers; olas reports registered and working; virtuals reports launched; virtuals_acp reports jobs_created; x402 reports settled_to_catalogued_seller, answers_402 (weekly) and facilitator_txs_1d_know

    mode venue chain stage points grain response_format

  22. onchain_agent_get_wiki_pageRead only

    Explain a crypto-agent concept

    USE WHEN asked to explain a crypto-agent concept (what x402 is, how agents hold wallets, what ERC-8004 does) and you want a sourced explainer you can cite. Find slugs with onchain_agent_list_wiki_pages. NOT FOR a specific project (use onchain_agent_get_resource instead) or how the Sato Score works (use onchain_agent_get_score_methodology). RETURNS (json): the full wiki page by slug: summary, why it matters, how it works, key components, examples, risks, related resources/pages. A near-miss slug that plainly means a page ("what-are-erc-8004" or the bare "erc-8004" for "what-is-erc-8004") serves that page and says which one in alias_of; when the slug is also a directory listing, also_listing names onchain_agent_get_resource. An unknown slug is a miss (not an error) carrying the nearest real slugs as suggestions; the Sato Score has no wiki page, so "what-is-sato-score" is a miss that points at onchain_agent_get_score_methodology. Read-only. Example: { slug: "what-are-mcps" }

    slug response_format

  23. onchain_agent_get_x402_facilitatorsRead only

    Which x402 facilitators list a chain, scheme and version

    USE WHEN an agent has to pay or charge with x402 and needs to know which facilitator lists a chain, a scheme and a protocol version, how recently each one actually answered, and which ones could not be read (key wall, unreachable), so "none lists it" is never mistaken for "all were checked". NOT FOR finding a paid API to call (use onchain_agent_search_resources instead, with standard "x402"), one chain's wider readiness (use onchain_agent_get_chain_card), or x402 volume and merchant counts (use onchain_agent_get_agent_economy). RETURNS (json): { query, total, facilitators: [{ id, value: { facilitator_id, schemes, x402_versions, assets }, as_of, source_url, method, confidence_class, stale_after, version_pin, carried }], not_read: [{ facilitator, state }], none?, not_covered, next, changed_since, meta }. A cell is what a facilitator's own /supported answer listed on as_of; it does not say the facilitator settles on that chain, charges nothing or is a good choice. carried: true means it

    chain scheme x402_version response_format

  24. onchain_agent_inspect_listingRead only

    Inspect one published agent package

    USE WHEN you have a PACKAGE slug (from onchain_agent_search_listings) and need what it does, what it needs and what is on record about it before recommending a download or fork. NOT FOR directory listings such as a framework, MCP server or project (use onchain_agent_get_resource instead) or finding a package slug (use onchain_agent_search_listings). RETURNS the package's public fields only: task, description, creator display name, version digest and signing state, recipe, input/output schemas, required services and permissions, model support ("configured, not evaluated"), operating-cost basis as the creator wrote it, license and whether fork is permitted, support, evidence freshness for this digest, integrity, and acquisition modes (download, fork — there is no deploy or buy), and `superseded_by` (the template that replaces the package, or null). PACKAGES VS DIRECTORY: packages are agents published through Sato Hub, a separate set from the directory of projects and tools. A directory

    slug response_format

  25. onchain_agent_join_passport

    Join Sato Hub: a free passport, signed with the agent's wallets

    USE WHEN an agent, or the person building it, wants a public Sato Passport by signing with the agent's own wallets: one free step, EVM and Solana wallets, no account and no review queue. This WRITES a public passport. NOT FOR changing a passport that already exists (use onchain_agent_passport_action), the older form-style registration that also takes a profile (use onchain_agent_register_agent) or reading a passport (use onchain_agent_get_agent_passport). TWO CALLS. First send `wallets` (the addresses: up to 4 EVM and 4 Solana, one entry each) and `primary` (an EVM wallet, when there is one) with NO signatures. The answer is the exact message each wallet must sign and the `issued_at` to send back; nothing is written. Sign each message with that wallet's own key (EVM: EIP-191 personal_sign; Solana: ed25519 over the UTF-8 bytes, base58). Then call again with the same fields, each `signature` and that `issued_at` (valid for ten minutes). The agent's wallet signs; this tool never asks for

    wallets primary issued_at name claim_sha256 response_format

  26. onchain_agent_list_categoriesRead only

    See how the directory is organised

    USE WHEN you need the valid category values before filtering onchain_agent_search_resources, or want to see how the crypto-agent landscape divides up by size. NOT FOR chain names (use onchain_agent_list_chains instead) or finding projects (use onchain_agent_search_resources). RETURNS (json): { total, categories: [{ name, count }] }, every resource category with counts, most populated first. Read-only. Example: {}

    response_format

  27. onchain_agent_list_chainsRead only

    See which chains are covered

    USE WHEN you need the valid chain names before filtering onchain_agent_search_resources, or want to know which chains have real agent tooling behind them rather than an announcement. NOT FOR category names (use onchain_agent_list_categories instead) or onchain agent counts per chain (use onchain_agent_get_agent_economy). RETURNS (json): { total, chains: [{ name, count }] }, every blockchain represented in the directory with resource counts, spotlight chains first (Base, Ethereum, Solana, COTI, Injective…). Read-only. Example: {}

    response_format

  28. onchain_agent_list_wiki_pagesRead only

    See what concepts are explained

    USE WHEN you need the slug for a crypto-agent explainer before calling onchain_agent_get_wiki_page, or want to see which concepts have a sourced page you can cite. NOT FOR reading a page (use onchain_agent_get_wiki_page instead) or finding projects (use onchain_agent_search_resources). RETURNS (json): { total, pages: [...] }, every Onchain Agent wiki page with slug, title, keyword, summary and last_updated. Read-only. Example: {}

    response_format

  29. onchain_agent_passport_action

    Change a Sato Passport: sign with a wallet that is on it

    USE WHEN an agent already has a Sato Passport and a wallet ON it needs to change it by signing: add or remove a wallet, make a wallet primary, prove the wallet an older passport already lists, update the public profile (name, description, links, built-with), issue a new owner claim code, unlink the owner account, keep a wallet that is waiting to be removed or cancel a waiting claim code. This WRITES. NOT FOR creating a passport (use onchain_agent_join_passport) or reading one (use onchain_agent_get_agent_passport). ONE TOOL, TEN ACTIONS. `action` picks the action and the other fields are that action's request: add_wallet { authorizer, wallets }; prove_wallet { wallet }; remove_wallet { authorizer, remove }; set_primary { wallet }; update_profile { authorizer, patch }; issue_claim { wallet, claim_sha256 }; unlink_owner { wallet }; keep_wallet { wallet, keep? }; cancel_claim { wallet }; read_pending { wallet } (a signed read of what is waiting; changes nothing). Each signer is { address

    action passport_id authorizer wallet wallets remove keep patch claim_sha256 issued_at response_format

  30. onchain_agent_preflightRead only

    Check a target before you install, connect, pay or trade

    USE WHEN you are about to install a package, clone a repo, connect to an MCP endpoint, pay an agent, or trade a token, and you want to know what is on record about it FIRST — every evidence line, with the field it was read from and its date. Pass exactly one of repo, package, endpoint, agent, token, skill, x402 or address; with none (or a template placeholder) nothing is checked and the answer is { needs_input: true, accepted_forms, example_calls }. NOT FOR a stack pick's summary (onchain_agent_recommend_stack and onchain_agent_get_deploy_spec already carry a records-only `preflight_summary`), whether an install command or MCP config takes your key (use onchain_agent_check_install instead), or a recipient-address reading on its own (use onchain_agent_scan_recipient). Call this for the full evidence, for any target that is not a pick (a repo, package, token, skill or ERC-8004 agent you were handed), or for a live handshake with an unlisted MCP endpoint. RETURNS a verdict — go | caution

    repo package endpoint agent token chain skill x402 x402_method address origin from response_format

  31. onchain_agent_recent_changesRead only

    What changed in the ecosystem

    USE WHEN asked what has changed recently across crypto-agent tooling, or what has happened to one specific project over time, and you want dated, attributable HEADLINE events (a human-readable feed). Omit slug for the SITE-WIDE feed; pass slug for ONE resource's history, the auditable Listing History. NOT FOR keeping a local copy in sync (use onchain_agent_get_changes instead, which returns added/updated/removed since a date) or a listing's daily check record and score series (use onchain_agent_get_listing_history). RETURNS (json): { scope, total, changes: [{ date, kind, slug, name, title, detail?, tone }] }. tone is positive | negative | neutral. Events: status flips, verification grants, Sato Score tier moves, liveness (a project going dormant or active again), new releases, field enrichment. Derived from the daily snapshot time-series + the change-event log; high-signal only (passive score/liveness drift is suppressed). Read-only. Example: { days: 7 } · { slug: "coinbase-agentki

    slug days limit response_format

  32. onchain_agent_recommend_stackRead only

    Build any crypto agent: goal in, stack and install steps out

    USE WHEN someone wants to build any onchain or crypto agent ("Build any crypto agent") and says what it should do in plain words: "a trading agent on Base", "an ElizaOS agent that charges via x402", "a TypeScript agent with a policy-controlled wallet". This is the FIRST call for a build goal: goal → stack here, then onchain_agent_get_deploy_spec once per pick → install steps. NOT FOR looking up one named project (use onchain_agent_search_resources instead), the same stack as one composed answer with deploy specs, Preflight and a first action (use onchain_agent_build_plan), or the runnable repo itself (use onchain_agent_create_agent). RETURNS (json) real directory listings in slots (framework, wallet, payments, trading, data, MCP tooling, security; live agents someone else runs are kept out of trading), each pick with its Sato Score, liveness, deploy-spec status, github_url and a records-only `preflight_summary` (verdict, rule, the readings it turned on), plus honest gaps. A standard (

    goal chain max_per_slot verified_only response_format

  33. onchain_agent_register_agent

    Register an Agent Passport (self-issue with a wallet signature)

    USE WHEN an agent wants a public, machine-readable identity: an Agent Passport at satohub.ai/agents/<slug> plus a manifest at /api/agents/<slug>/manifest that another agent can read before deciding to work with it. This WRITES a passport. NOT FOR submitting a project, framework or tool to the directory (use onchain_agent_submit_project instead), reading a passport (use onchain_agent_get_agent_passport), or the free wallet-signed join that needs no form and takes EVM and Solana wallets together (use onchain_agent_join_passport instead; to change a passport afterwards, onchain_agent_passport_action). TWO STEPS. Call it with `name` and `wallet_address` and no signature, and it returns the exact challenge to sign (EIP-191 personal_sign) and the `signed_at` that goes with it — the same string GET /api/agents/challenge returns, deterministic, valid 15 minutes. Call it again with `wallet_signature` and `signed_at` plus the registration fields, and the passport issues immediately. WITHOUT A

    name description agent_type chains_supported wallet_address wallet_signature signed_at endpoint_url website_url repo_url stack standards contact_email response_format

  34. onchain_agent_resolve_tokenRead only

    Resolve an address, a mint or a link to the token it is

    USE WHEN a person or an agent has dropped a contract address, a Solana mint or a link and the next step needs to know what it IS before anything else happens: chain, address, name, symbol, decimals, token program, the main pool and that pool's liquidity, and the token's USD price. Read-only. NOT FOR what the chain says about the token's authorities, extensions and liquidity (use onchain_agent_preflight with token instead), a price source, or a swap quote (use onchain_agent_route_swap). INPUT: a contract address (0x…) on Base, BNB Chain, Arbitrum, Polygon and Solana — pass `chain` (base, bnb, arbitrum, polygon, solana) to say which, or a bare 0x is read as Base and the answer says so — a Solana mint, or a link from dexscreener.com, geckoterminal.com, birdeye.so, pump.fun, gmgn.ai, basescan.org, bscscan.com, arbiscan.io, polygonscan.com, solscan.io, jup.ag, app.uniswap.org, aerodrome.finance, zora.co, clanker.world. The token is taken from the link's path with no request for the link it

    input chain address mint token url link contract response_format

  35. onchain_agent_route_agentRead only

    Choose an agent for a task, with the pick explained

    USE WHEN an agent needs another agent for a task and wants the pick explained by registration, answering service, feedback and liveness. Candidates are the listed Sato Agent Passports; the top 3 by the static ranking get one live MCP handshake before the pick is made. NOT FOR browsing registered agents with filters (use onchain_agent_search_agents instead) or one agent's manifest (use onchain_agent_get_agent_passport). RULE ENFORCED: a route is a RECOMMENDATION, chosen by the listed fields at checked_at. `chosen_by` names every signal, its value and the exact field it was read from. An ERC-8004 registration proves a claim was made on-chain, not that the agent works; wallet_verified proves the key, not the product; a probe proves the declared service answered once. A null feedback count is unknown and ranks below every number, including zero. No job-outcome data exists yet. COVERAGE: agents registered on-chain but holding no Sato passport are absent from the pool — there is no keyless

    capability chain requires_mcp requires_x402 response_format

  36. onchain_agent_route_launchRead only

    Choose a launch venue, with the fee disclosed and a config prepared

    USE WHEN an agent or a builder is about to launch a token and wants the venue chosen on published facts, with the fee disclosed before anything is signed. Venues covered: Clanker v4, Bankr, Virtuals, Zora creator coins. NOT FOR a swap (use onchain_agent_route_swap or onchain_agent_swap instead), a liquidity pool (use onchain_agent_route_lp), or generating a launch-prep repo (use onchain_agent_create_agent with the token-launch-prep template). RULE ENFORCED: a launch route is a RECOMMENDATION. `chosen_by` names every fact it was chosen on, each with the venue page it was read from and the date it was read (`facts_as_of`). A fee schedule says nothing about what a token will do after it launches, and nothing here is a security review or an audit. `null` is unknown and never zero — a venue that publishes no per-party fee split is unread, not generous. NON-CUSTODIAL: this tool NEVER deploys, signs, holds keys or moves funds. For the Clanker lane it returns a PREPARED CONFIG in the documen

    chain goal name symbol deployer max_pool_fee_pct require_programmable_fee_split response_format

  37. onchain_agent_route_lpRead only

    Compare the Uniswap pools for a pair, with the evidence and the gap named

    USE WHEN an agent is deciding which Uniswap pool and fee tier to provide liquidity to for a pair Sato Route already quotes, and wants the observed readings rather than an opinion. NOT FOR a swap (use onchain_agent_route_swap or onchain_agent_swap instead) or a token launch (use onchain_agent_route_launch). RETURNS every v3 pool the weekly LP lane found across the four standard fee tiers, each with its in-range liquidity, the swaps and volume actually counted, the window that count covered, and a fee-revenue proxy. RULE ENFORCED: a route is a RECOMMENDATION. `chosen_by` names every field the pick was made on and where each was read. THE LARGEST TERM IS MISSING ON PURPOSE: impermanent loss is not modelled, not approximated and not bounded, and it appears in `chosen_by` as an explicit null rather than being quietly omitted. A fee-revenue figure here is a PROXY — the pool's published fee rate multiplied by volume we counted, in token0's own units — and is never called revenue, an APR or

    chain pair response_format

  38. onchain_agent_route_swapRead only

    Choose a venue for a swap, with the fee disclosed

    USE WHEN an agent wants a swap QUOTE with the venue chosen by liveness, verification and price and the fee disclosed. Asks every aggregator adapter that quotes on the chain, in parallel, and returns the chosen venue's quote and calldata. NOT FOR a swap checked against token, venue and recipient verdicts and a spending policy, with a simulated unsigned transaction and a receipt (use onchain_agent_swap instead), a launch venue (use onchain_agent_route_launch), or a liquidity pool (use onchain_agent_route_lp). RULE ENFORCED: a route is a RECOMMENDATION, not a verdict and not an assurance. `chosen_by` names every field it was chosen on — liveness, the observed record of Sato Hub's OWN daily checks (never "uptime"), verification state, then quoted price — with the field each was read from and `checked_at`. Nothing here is called best, safe or guaranteed. A quote is a quote, not a fill. NON-CUSTODIAL: this tool NEVER signs, holds, moves or broadcasts funds. It returns calldata the caller m

    chain token_in token_out amount slippage_bps taker referrer response_format

  39. onchain_agent_scaffold_planRead only

    Build a plan and point to the repo generator

    USE WHEN a plan has been agreed and the next question is which repository to start from. Builds the plan (same brain as `onchain_agent_build_plan`) and returns it with a `create` pointer to `onchain_agent_create_agent`, which generates the runnable repo from a nightly-checked template. NOT FOR the full plan with deploy specs and Preflight on every pick (use onchain_agent_build_plan instead) or the repo itself: this tool no longer writes repository files, so use onchain_agent_create_agent to generate it. Every door (this server, POST /api/create, the CLI and the Agent Architect) downloads the same repo from the same engine. RETURNS (what comes back): the plan summary (goal, intent, chain, plan_url, checked_at, stack slugs), the environment names the stack's own deploy specs ask for, any documented install that pipes a remote script into a shell (`quarantined_installs`, to read before running it), and `create`: the tool name, the CLI command and the template the goal maps to, or null wh

    goal chain budget_usd constraints include_zip response_format

  40. onchain_agent_scan_recipientRead only

    Check a recipient address before you pay it

    USE WHEN an agent is about to pay or transfer to an address: an x402 payTo, a treasury sweep, a top-up. Pass the chain and the recipient; add the token, the origin whose 402 named the address and the paying wallet for a fuller reading. Sato Scan answers five questions, each with its own date and gap. NOT FOR checking a package, repo, token, endpoint or agent (use onchain_agent_preflight instead; its address lane wraps this reading in a wider check). WHAT IT READS: (1) does the recipient only LOOK like an address the payer pays, matching its first and last characters without being it; (2) is the token the issuer's contract, keyed by contract address and never by symbol; (3) did the paid party declare the address, through the origin that served it or an identity that names it; (4) does the address carry a structural mark from what it did onchain; (5) is the paying wallet itself the target of address poisoning. RULES: a reading describes what was looked at inside the stated limits, on t

    chain to token amount from origin response_format

  41. onchain_agent_search_agentsRead only

    Find live registered agents

    USE WHEN you need a RUNNING agent to work with, hire or pay (not a tool to build one with) and want to see who registered it, on which chain, and whether it accepts payment. NOT FOR tools to build an agent from (use onchain_agent_search_resources instead), one agent's full manifest (use onchain_agent_get_agent_passport with a slug from here), or a ranked pick for a task (use onchain_agent_route_agent). RETURNS (json): { total, agents: [{ sato_agent_id, slug, name, description, agent_type, chains_supported, stack, payment/x402 metadata, verification_status, profile_url, manifest_url }] }. Searches the Sato Agent Registry: agents whose creators registered them for a Sato Agent Passport (distinct from the resource directory, which lists the things agents are built FROM). Filter by free-text query, chain, agent_type, or x402_only. Only human-review-listed agents are returned. Registry agents come first; when the registry has no match for a query, matching agent-type directory listings com

    query chain agent_type x402_only response_format

  42. onchain_agent_search_listingsRead only

    Find a published agent package

    USE WHEN someone wants a ready-made onchain agent PACKAGE to download or fork rather than assemble one. Searches Sato Hub's published agent packages, each a public view of one sealed, immutable version: its task, inputs/outputs, required permissions, model support ("configured, not evaluated"), license, and evidence freshness for that exact digest. NOT FOR directory projects such as frameworks or MCP servers (use onchain_agent_search_resources instead), running agents to hire (use onchain_agent_search_agents), or generating a fresh repo from a goal (use onchain_agent_create_agent). RETURNS (json): { listings: [{ slug, title, task, version: { digest }, recipe, license, fork_permitted, evidence_freshness, integrity, acquisition_modes, sato_url, superseded_by, ... }], next_cursor }. `superseded_by` is the id of the nightly-checked template that replaces a package (generate it with onchain_agent_create_agent), or null; the package itself still downloads. RULE ENFORCED: evidence counts on

    query recipe license cursor limit response_format

  43. onchain_agent_search_resourcesRead only

    Find crypto-agent tooling by name, chain, standard or what it does

    USE WHEN you need to look up crypto-agent tooling (frameworks, MCP servers, wallets, payment rails, data tools) by name, chain, standard or what it does, or check that a specific project exists and is maintained. A daily-rebuilt directory, each entry scored from public evidence and linking to a citable page. NOT FOR a build goal in plain words such as "a trading agent on Base" (use onchain_agent_recommend_stack instead), a RUNNING agent to hire or pay (use onchain_agent_search_agents), a downloadable agent package (use onchain_agent_search_listings), what an agent skill touches (use onchain_agent_search_skills), or one record by slug (use onchain_agent_get_resource). `search` is the one-box version for ChatGPT deep research. RETURNS (json): { total, count, offset, has_more, next_offset?, resources: [...] }; each resource has chains, status, liveness, github_stars, verification_status and the marketplace fields (is_agent/is_hirable/is_licensable). Read-only. With NO argument it is a co

    query chain category status liveness is_agent is_skill is_harness featured entity_class resource_type use_case standard iface integration deploys_as creator min_observed_success min_observed_days verified_only mcp_answering sort limit offset detail response_format

  44. onchain_agent_search_skillsRead only

    Check what a crypto agent skill does before installing it

    USE WHEN someone is about to install an agent skill and should know what it will touch first: keys, credentials, remote scripts, outbound hosts. Crypto-relevant agent skills from ClawHub and skills.sh, each with a static DISCLOSURE: hosts it contacts, whether it generates or handles private keys, whether it asks the user to paste a credential, whether it pipes a remote script into a shell, whether it grants itself unrestricted tools, whether it registers the agent with a third-party host, whether it schedules itself. Each flag carries evidence lines on the skill's page. NOT FOR finding frameworks, MCP servers or wallets (use onchain_agent_search_resources instead), an npm/pip/MCP install command (use onchain_agent_check_install), or one skill's Preflight verdict (use onchain_agent_preflight with skill). RETURNS (json): { total, skills: [{ id, name, registry, canonical_url, installs, stars, disclosure_flags, hosts_contacted, declared_env, registry_scan, belongs_to_slug, skill_md_sha256

    query registry flag slug limit response_format

  45. onchain_agent_submit_project

    Submit a project to the Sato Hub directory

    USE WHEN an agent has found, built or maintains a crypto-agent project that is not in the directory and wants it considered. NOT FOR correcting a listing that already exists (that goes through the claim flow on its page), checking whether a project is listed (use onchain_agent_search_resources first), or registering a running agent (use onchain_agent_register_agent). This WRITES: it files the same row the /submit form files, into the same queue, and the daily triage run evaluates it through the same single apply path — probe the public evidence, validate against the listing schema, list it or hold it or decline it with a reason. WHAT HAPPENS NEXT: the website, the repository and any declared endpoint are probed from public sources. A project that clears that evidence is listed; one that does not is held for a person, or declined with the reason. If `contact_email` is given you get exactly ONE email, and only if it is listed. A hold sends nothing — silence means a person is looking.

    name website_url repo_url description category chains contact_email response_format

  46. onchain_agent_swap

    Quote a swap, check it against a policy, and get an unsigned transaction

    USE WHEN an agent is about to swap and wants the venue chosen, the fee disclosed, and the trade CHECKED before anything is signed. Two modes: `recommend` returns the choice, the fee sentence and the verdicts and NEVER a transaction; `build-tx` returns an UNSIGNED transaction, and only when the gate allowed it and a simulation did not revert. `build-tx` WRITES a receipt row. NOT FOR a plain quote with no policy gate (use onchain_agent_route_swap instead), a token launch (use onchain_agent_route_launch), or a liquidity pool (use onchain_agent_route_lp). NON-CUSTODIAL: this tool NEVER signs, holds, moves or broadcasts funds, and it never asks for a key. What comes back is an unsigned object the caller signs or discards. The response signature proves Sato Hub produced those bytes; it is not a claim that anyone authorised a transfer. WHAT IS CHECKED, and under what: four targets — token_in, token_out, the venue endpoint, and the recipient — each with its own verdict, the rule id that prod

    chain_in chain_out token_in token_out amount_in recipient recipient_owner taker slippage_bps deadline usd_notional mode referrer venue response_format

  47. onchain_agent_watch

    Watch a repo, package, endpoint or agent for a Preflight verdict change

    USE WHEN an agent (or the person it works for) wants to be told if something in its stack stops checking out — rather than re-running a Preflight on a schedule of its own. This WRITES one subscription row. NOT FOR a one-off check now (use onchain_agent_preflight instead) or a record's change history (use onchain_agent_recent_changes). Goes through the SAME path the public form uses: same validation, same normalisation, same rate limit, one row per address and target. WHAT HAPPENS: the target is re-checked once a day by the public Preflight path, and an email is sent ONLY when the verdict CHANGES. Never on a schedule, never a digest. A transition INTO `unknown` (a check that failed to run) is recorded and never mailed — a failed check is not news about the target. wallet: get told when Sato Scan sees address poisoning aimed at that wallet. FREE WHILE IN PREVIEW. No price is set and no payment is taken. WHAT IS STORED: the normalised target, the address (a notice has to be delivered),

    target_kind target notify_to action response_format

  48. searchRead only

    Search Sato Hub

    USE WHEN you want one query box over Sato Hub, the daily-rebuilt index of what onchain and crypto AI agents are built from (frameworks, MCP servers, wallets, x402 and stablecoin payment rails, data tools), plus its dated answers, agent-economy numbers and wiki. Not for token prices, trading or investment advice. NOT FOR filtered or paginated directory queries (use onchain_agent_search_resources instead) or registered agents (use onchain_agent_search_agents). RETURNS (json): { results: [{ id, title, url }] }, at most 10, best first, from one query string; url is the canonical satohub.ai page to cite. Pass an id to `fetch` for the full text. A query nothing matches returns results: [] — never padded with unrelated records — plus scope_note, what Sato Hub covers. Read-only. Examples: "coinbase agentkit", "x402 payment rails on Base", "how many ERC-8004 agents by chain", "MCP servers that answer".

    query

Is this yours?

Claim it to hear the moment it breaks, correct this page and add your own ways to use it.

A test is the handshake and the tool list: no tool was called. Names and descriptions are as listed by whoever registered the server; we haven't checked them.

Back to Tested MCP Servers