MCP Server for Z.AI - A Model Context Protocol server that provides AI capabilities
Sato Hub: Onchain Agents is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Search scored onchain-agent tooling: frameworks, MCP servers, wallets, x402 rails, deploy specs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http sato-hub-onchain-agents-mcp https://satohub.ai/api/mcp
# 2 — ask your agent for something these tools do
# onchain_agent_search_resources, onchain_agent_get_resource, search and 43 more
Sato Hub: Onchain Agents costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http sato-hub-onchain-agents-mcp https://satohub.ai/api/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
46 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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_r
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text search across name, description, tags, chains, and agent type. Space-separated terms are AND-matched. |
| chain | string | no | Filter to resources supporting this chain. |
| category | string | no | Filter to a resource category. |
| status | string | no | Filter by lifecycle status. |
| liveness | string | no | Code activity (commit or release, not posts): Active ≤30d, Recent ≤90d, Quiet ≤1y, Dormant >1y. |
| is_agent | boolean | no | True = only resources that are themselves onchain agents. |
| is_skill | boolean | no | True = only agent-skill resources (skill repos/marketplaces). |
| is_harness | boolean | no | True = only agent frameworks/harnesses (OpenClaw, Codex, Claude Code…). |
| featured | boolean | no | True = only editorially featured resources. |
| entity_class | string | no | Filter by class: 'resource' = things you build/deploy WITH (frameworks, tools, infra, venues, standards); 'agent' = curated, live onchain agents; 'reference' = editorial. |
| resource_type | string | no | Filter resources by role. Venue = DEX/launchpad/marketplace; Network = an L1/L2. |
| use_case | string | no | Filter by use case. One of: trading, payments, wallets, data, identity, privacy, launch, security, build, airdrops. |
| standard | string | no | Filter to resources implementing a standard. One of: x402, erc-8004, erc-8183, mcp, a2a. |
| iface | string | no | Filter by how it is accessed/integrated. One of: mcp, sdk, rest-api, plugin, cli, ui, contract. |
| integration | string | no | Filter to resources that integrate with a client or framework, e.g. 'claude code', 'cursor', 'langchain', 'openclaw'. Case-insensitive exact match. |
| deploys_as | string | no | Filter by deployment shape: npm, pip, docker, mcp server, hosted, self-hosted, cli, sdk, claude code plugin. |
| creator | string | no | Filter by who built it (prefix match on creator name), e.g. 'Coinbase', 'Privy'. |
| min_observed_success | number | no | Only listings whose share of Sato Hub's daily checks that succeeded is at least this percent, over at least min_observed_days (default 14). The rate and the days both count only checks in the rate win |
| min_observed_days | integer | no | Minimum days of daily observation behind the success rate, counted in the rate window (default 14 when min_observed_success is set). |
| verified_only | boolean | no | True = only listings whose documented install was reproduced in a container by Sato Hub (deploy_status verified). Says nothing about runtime safety. |
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). RETU
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The resource slug, e.g. 'coinbase-agentkit'. |
| include_activity | boolean | no | Include the resource's recent activity feed (releases/posts). |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 in
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | What to look for, in plain words: a project name, a chain, a standard, or a question about building onchain agents. Matched on its first 200 characters. |
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: { a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | An id returned by search: resource:<slug>, answer:<slug>, number:<slug> or wiki:<slug>. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The resource slug to get a deploy manifest for, e.g. 'solana-agent-kit'. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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/
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | no | Limit to one resource's recorded history by slug. Omit for the site-wide feed across all listings. |
| days | integer | no | Look-back window in days (1-90, default 14). |
| limit | integer | no | Max changes to return (1-50, default 20). |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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-
| Parameter | Type | Required | Notes |
|---|---|---|---|
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 repre
| Parameter | Type | Required | Notes |
|---|---|---|---|
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 onc
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | Filter by item kind: release, tweet, news, or research. |
| chain | string | no | Filter to items tagged with this chain. |
| limit | integer | no | Max results to return (1-50, default 20). |
| offset | integer | no | Results to skip, for pagination (default 0). |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token_limit | integer | no | How many top project tokens to include (1-25, default 12). |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The wiki page slug, e.g. 'what-are-mcps'. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_ag
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free-text search across agent name, description, creator, stack, and type. |
| chain | string | no | Filter to agents supporting this chain. |
| agent_type | string | no | Filter by agent utility type: trading, research, defi, payments, security, social, workflow, gaming, data, coding. |
| x402_only | boolean | no | True = only agents exposing an x402 payment endpoint. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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.manife
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The registered agent's slug — <slug from onchain_agent_search_agents>. Call onchain_agent_search_agents first; the registry is small and slugs are not guessable. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 on
| Parameter | Type | Required | Notes |
|---|---|---|---|
| goal | string | yes | What the agent should do, in plain words — e.g. 'trading agent on Base with x402 payments' |
| chain | string | no | Preferred chain (e.g. Base, Solana) |
| max_per_slot | integer | no | Max picks per stack slot (default 3) |
| verified_only | boolean | no | True = only picks whose documented install was reproduced in a container by Sato Hub. Slots with no verified pick are reported in gaps rather than widened. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 la
| Parameter | Type | Required | Notes |
|---|---|---|---|
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 da
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | Return everything that changed since this ISO date. Defaults to 14 days ago. Clamped to the 90-day supported window. |
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 onch
| Parameter | Type | Required | Notes |
|---|---|---|---|
| venue | string | no | Restrict to one venue: erc8004, olas, virtuals, x402, erc4337_accounts, key_management, singularitynet, morpheus. |
| chain | string | no | Restrict to one chain, e.g. Base, BNB Chain, Gnosis. Venue-level rows have no chain. |
| include_platforms | boolean | no | Include the per-platform breakdown of who produced the registrations (agentURI attribution). Default false — it roughly doubles the response. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free text over skill name, description, owner/repo and hosts contacted. |
| registry | string | no | Restrict to one registry. |
| flag | string | no | Only skills carrying this disclosure flag: pipes_remote_to_shell, executes_fetched_code, generates_or_handles_keys, solicits_credentials, reads_secret_paths, broad_tool_grant, registers_with_third_par |
| slug | string | no | Only skills that target this directory listing. |
| limit | integer | no | — |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | no | 'stage' (default) is one venue/chain/stage series. 'movers' is the week's Sato Score movement across the directory — which listings rose, fell, crossed a tier, were scored for the first time, or answe |
| venue | string | no | Venue id: erc8004, olas, virtuals, virtuals_acp, x402, erc4337_accounts. Optional: when omitted, a stage that one venue reports is read from that venue, and a stage several venues report (registered) |
| chain | string | no | Chain, e.g. Base, Ethereum, Gnosis. Required when a venue's stage is measured on more than one chain — series are never blended across chains. Omit for venue-level rows. |
| stage | string | no | Lifecycle stage. REQUIRED in 'stage' mode. By venue: erc8004 = registered, registered_new_1d (daily), active_7d, mcp_endpoint_answers; olas = registered, working; virtuals = launched; virtuals_acp = j |
| points | integer | no | How many most-recent points (1-30, default 8). |
| grain | string | no | 'weekly' (the citable series, default) or 'daily' (the trend grain; never a headline). |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| a | string | yes | First directory slug, e.g. 'coinbase-agentkit'. |
| b | string | yes | Second directory slug, e.g. 'solana-agent-kit'. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The finding's slug — the last path segment of a satohub.ai/numbers/<slug> URL. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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). RETURN
| Parameter | Type | Required | Notes |
|---|---|---|---|
| response_format | string | no | Text format; structuredContent is JSON either way. |
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, Sa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| surface | string | no | One data surface to check. Omit for all of them. Surfaces: directory_activity, news, erc8004_count, agent_tokens, liveness, sato_score, snapshots, x402_bazaar, x402_answers_daily, erc8004_endpoints_da |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | no | Free text over a published package's title, task and description. |
| recipe | string | no | Only packages built from this recipe id, e.g. 'treasury-balance-monitor'. |
| license | string | no | Only packages under this SPDX license id, e.g. 'MIT'. |
| cursor | string | no | The next_cursor from a previous page. |
| limit | integer | no | — |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The package slug from onchain_agent_search_listings. This is NOT a directory slug: for a directory listing (a project, framework or tool such as coinbase-agentkit) call onchain_agent_get_resource inst |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 obse
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | The resource slug, e.g. 'coinbase-agentkit'. |
| days | integer | no | Look-back window in days (1-30, default 30) for the observed record and the tool inventory. |
| score_days | integer | no | Include the daily Sato Score series over this many days (2-365; up to 90 days are served without a key, a longer request is answered with 90 and says so in score_series_window). A day nobody measured |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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. NOT FOR a stack pick's summary (onchain_agent_recommend_stack and onchain_a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| repo | string | no | A GitHub repository: a URL or bare owner/name, e.g. 'coinbase/agentkit'. |
| package | string | no | An npm or PyPI package name, e.g. 'solana-agent-kit'. A trailing @version is ignored. |
| endpoint | string | no | An https MCP endpoint URL. If it is not in the directory it gets a live initialize + tools/list handshake, capped at 8 seconds. |
| agent | string | no | An ERC-8004 agent reference, <chain>:<id>, e.g. 'base:42'. Chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Avalanche, Gnosis, Robinhood Chain, Celo. |
| token | string | no | An ERC-20 token contract address, e.g. '0x1bc0c42215582d5A085795f4baDbaC3ff36d1Bcb', or with chain Solana a mint (base58). Needs chain. |
| chain | string | no | Chain for token: Base, Ethereum, Arbitrum, Robinhood Chain, BNB Chain, Polygon, Solana. Anything else answers 'unknown' with the reason, never a guess. For address it is the chain the payment woul |
| skill | string | no | An agent skill: '<registry>/<id>' (registries: clawhub, skillssh, skills.sh, skills-sh, github), or the skill id alone when it is unique. Reads the static disclosure already on record — nothing is fet |
| x402 | string | no | An https x402 resource URL. ONE unpaid request reads its 402 payment terms (v1 body or v2 PAYMENT-REQUIRED header); no payment is ever sent or signed. |
| x402_method | string | no | With x402: the method the paid request uses; the unpaid probe uses the same one (a body method sends an empty JSON body, never yours). Default: GET, then POST on a 405. |
| address | string | no | A recipient address the caller is about to pay (Sato Scan): 0x + 40 hex on an EVM chain, or a Solana address. Needs chain. Never stored. |
| origin | string | no | With address: the https URL whose 402 response named the address (a public host; no credentials). Lets the reading say whether that origin declared it. Never stored. |
| from | string | no | With address: the paying wallet. Lets the reading compare against its own history and say whether it is being targeted by address poisoning. Never stored. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_g
| Parameter | Type | Required | Notes |
|---|---|---|---|
| command | string | no | An install command, e.g. "npm i @solana/web3.js viem" or "claude mcp add wallet -- npx -y some-wallet-mcp". |
| config | string | no | An MCP config block as text, e.g. {"mcpServers": {...}}. |
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; i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | Chain the payment would settle on: Base, Solana, Tempo, Polygon, BNB Chain, Arbitrum, Avalanche, Optimism, Ethereum, SKALE Base, Sei, X Layer, Monad, Robinhood Chain, World Chain, Abstract. |
| to | string | yes | The recipient address the agent is about to pay: the x402 payTo, the treasury address, the top-up target. |
| token | string | no | The token contract (or Solana mint) the payment would use. Lets the reading say whether it is the issuer's contract. Keyed by address, never by symbol. |
| amount | string | no | Amount in the token's base units. Read for context only; never stored. |
| from | string | no | The paying wallet. Lets the reading compare against that wallet's own history and say whether it is being targeted by address poisoning. |
| origin | string | no | The https URL whose 402 response named to (a public host; no credentials). Lets the reading say whether that origin declared the address. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | Chain display name as the directory writes it. Swapped for the agent bots: Base, BNB Chain, Arbitrum, Polygon and Solana. A short spelling ('bnb', 'bsc', 'matic', 'arbitrum one') is read as the same c |
| token_in | string | yes | Input token: a contract address (or Solana mint), or a symbol for the well-known stablecoins. |
| token_out | string | yes | Output token: a contract address (or Solana mint), or a symbol. |
| amount | string | yes | Sell amount in the INPUT token's base units (e.g. 1000000 = 1 USDC at 6 decimals). |
| slippage_bps | integer | no | Slippage tolerance in basis points. Passed through to the venue. |
| taker | string | no | The address that would sign. Some venues only return calldata when it is given; nothing is ever signed here. |
| referrer | string | no | Optional referral: a referral name (like sunny-otter) or a payout address (a Base 0x address or a Solana address) that earns 30% of the Sato fee on this swap, paid weekly in USDC once Sato Hub has rea |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_agen
| Parameter | Type | Required | Notes |
|---|---|---|---|
| capability | string | no | What the work needs, in a word or two, e.g. 'trading', 'research', 'payments'. Matched against the candidate's name, declared agent types and declared services. |
| chain | string | no | Chain the agent must claim, e.g. 'Base'. Filters the passport pool; it does not pull ERC-8004 registry rows (none are enumerable keyless). |
| requires_mcp | boolean | no | Only candidates that DECLARE an MCP service. A declaration is not a working service — the top candidates get one live handshake. |
| requires_x402 | boolean | no | Only candidates that DECLARE x402 payment support. Declared, never settled or observed. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_crea
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | Chain display name as the directory writes it, e.g. 'Base', 'Arbitrum'. |
| goal | string | yes | What is being launched. Matched against what each venue's own documentation covers. |
| name | string | no | Token name. Required for a prepared deploy config; the caller's to choose, never invented here. |
| symbol | string | no | Token symbol. Required for a prepared deploy config. |
| deployer | string | no | The 0x address that will sign the deploy and hold the creator reward share. Without it no config is prepared — it cannot be inferred. |
| max_pool_fee_pct | number | no | Reject venues whose PUBLISHED pool fee exceeds this percentage. A venue that publishes no fee is not excluded — unknown is not disqualifying. |
| require_programmable_fee_split | boolean | no | Only venues documenting a programmable third-party recipient split. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 r
| Parameter | Type | Required | Notes |
|---|---|---|---|
| goal | string | yes | What the user wants to build, in plain words, e.g. 'a Base trading agent that swaps USDC to ETH on a signal'. |
| chain | string | no | Chain the agent runs on, e.g. 'Base'. When omitted it is read from the goal, and the plan says which. |
| budget_usd | number | no | Rough monthly budget in USD. Restated back in the plan; it does not filter the stack. |
| constraints | array | no | Hard constraints to restate back, e.g. 'self-custody only', 'no API keys'. |
| save | boolean | no | True stores the plan and returns share_url, a permanent read-only page at satohub.ai/plan/<id> with the plan's signature re-checked on it. The page is noindex unless public is also true — a goal i |
| public | boolean | no | Only meaningful with save. True lets the shared page be indexed by search engines. Default false. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 wit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | Chain the pool is on. Collected: Base, Ethereum. Anything else answers unavailable with the covered list — unknown, never an empty result presented as none. |
| pair | string | yes | The pair, either way round: 'WETH-USDC', 'usdc/weth', 'WBTC_WETH'. Only the pairs Sato Route quotes are collected. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_p
| Parameter | Type | Required | Notes |
|---|---|---|---|
| goal | string | yes | What the agent should do, in plain words, e.g. 'swap USDC to ETH on Base with a per-trade cap'. Not stored. |
| framework | string | no | Agent framework. Templates exist for agentkit, ai-sdk, claude-agent-sdk, openai-agents, plain-ts; any other answers no_template with the nearest. |
| chain | string | no | Chain the agent runs on. |
| network | string | no | Where it may sign. Default fork. mainnet needs mainnet_risk_accepted: true. |
| mainnet_risk_accepted | boolean | no | Explicit acceptance of mainnet risk. Only read when network is mainnet. |
| template | string | no | Pin a template id. |
| format | string | no | files (default) or zip (adds zip_base64). |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| goal | string | yes | What the user wants to build, in plain words. The plan is built and the matching create_agent template is named. |
| chain | string | no | Chain the agent runs on, e.g. 'Base'. When omitted it is read from the goal. |
| budget_usd | number | no | Rough monthly budget in USD. Restated in the plan; it does not filter the stack. |
| constraints | array | no | Hard constraints to restate back, e.g. 'self-custody only'. |
| include_zip | boolean | no | Accepted for compatibility and ignored: this tool is plan-only. The repo comes from onchain_agent_create_agent. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 validatio
| Parameter | Type | Required | Notes |
|---|---|---|---|
| target_kind | string | yes | What is being watched: repo (owner/name or a GitHub URL), package (npm name), endpoint (an https URL), agent (an ERC-8004 reference like 'base:42'), wallet (<Chain>:<address>, e.g. 'Base:0x...'). |
| target | string | yes | The thing itself, in the spelling that kind takes. It is normalised, so two spellings of one repository become one watch. |
| notify_to | string | yes | The email address the change notice goes to. Stored once for delivery and counted by an HMAC; it never enters telemetry or logs. |
| action | string | no | subscribe (default) arms the watch; unsubscribe stops the mail for this address and target. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 sam
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The project's name, as its own site writes it. |
| website_url | string | yes | The project's own https site. Not a GitHub URL unless the repository IS the project's home. |
| repo_url | string | no | The public source repository, when there is one: github.com/<owner>/<name>. |
| description | string | yes | What it does, in plain words: what it is, who it is for, what it connects to. No profit, safety or performance claims — they are refused at the door. |
| category | string | yes | The directory category it belongs in. Pick the closest; triage corrects it if you are wrong. |
| chains | array | no | Chains it supports, by display name, e.g. ['Base','Solana']. |
| contact_email | string | no | Where the one approval reply goes. Optional — without it nothing is ever sent, and there is no other notification. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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) or reading a passport (use onchain_agent_get_agent_pa
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The agent's name. Bound into the signed challenge — changing it invalidates a signature. |
| description | string | no | What the agent does (20-1000 chars). Required to register; omit it only on the challenge step. |
| agent_type | array | no | What kind of work it does. At least one is required to register. |
| chains_supported | array | no | Chains it operates on, by display name. At least one is required to register. |
| wallet_address | string | no | The AGENT's own wallet: EVM (0x…) or a Solana-style base58 address. Required for the signature path — signature verification is EVM-only for now. |
| wallet_signature | string | no | An EIP-191 personal_sign signature over the exact challenge this tool returns when called without one. Present: the passport issues immediately. |
| signed_at | string | no | The signed_at value returned with the challenge. Valid for 15 minutes. |
| endpoint_url | string | no | An MCP or A2A endpoint the agent serves. Probed once on registration; a declaration is not a working service. |
| website_url | string | no | The agent's public page. |
| repo_url | string | no | The agent's source repository, if public. |
| stack | array | no | Directory slugs the agent is built from. Unknown slugs are an error, not silently dropped — the join is the point. |
| standards | array | no | Standards the agent DECLARES support for. Declared, never verified. |
| contact_email | string | no | Required when registering without a signature — an unsigned registration goes to a human, who may need to ask something. |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 w
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain_in | string | yes | Source chain as the directory writes it. The agent bots swap on Base, BNB Chain, Arbitrum, Polygon and Solana; a short spelling ('bnb', 'bsc', 'matic', 'arbitrum one') is read as the same chain, and o |
| chain_out | string | no | Destination chain. Omit, or repeat chain_in, for a same-chain swap. A different value is the cross-chain lane, and the two lanes are never compared with each other. |
| token_in | string | yes | Input token: a contract address (or Solana mint), or a symbol for the well-known stablecoins. |
| token_out | string | yes | Output token: a contract address (or Solana mint), or a symbol. |
| amount_in | string | yes | Sell amount in the INPUT token's base units (1000000 = 1 USDC at 6 decimals). A string, because a uint256 does not survive a JSON number. |
| recipient | string | no | Where the output goes. Omit to send to the taker. A recipient we hold no record of is no_record — an absence of evidence, and on its own never a refusal. |
| taker | string | no | The address that would sign. Some venues only return a transaction when it is given; nothing is ever signed here. |
| slippage_bps | integer | no | Slippage tolerance in basis points, passed through to the venue. A policy may cap it, and then the refusal states the cap and the value. |
| deadline | integer | no | Unix seconds the quote should stay good until. Omit for the venue's own default. |
| usd_notional | number | no | USD notional of amount_in, when YOU already hold a price. Omitted is unknown, never zero — a USD cap simply does not bite without it. |
| mode | string | no | recommend (default) never returns a transaction, whatever the gate said. build-tx returns an unsigned one, and only when the gate allowed it AND the simulation did not revert. |
| referrer | string | no | Optional referral: a referral name (like sunny-otter) or a payout address (a Base 0x address or a Solana address) that earns 30% of the Sato fee on this swap, paid weekly in USDC once Sato Hub has rea |
| venue | string | no | Pin ONE venue. Only it is quoted; if it cannot answer, is not offered on the chain or is refused, the reply names it and says why, and no other venue is tried. Omit and the chooser ranks every venue t |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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_pref
| Parameter | Type | Required | Notes |
|---|---|---|---|
| input | string | yes | What to resolve: a contract address (0x…) on Base, BNB Chain, Arbitrum, Polygon and Solana (name the chain; a bare 0x with none is read as Base and says so), a Solana mint (base58), or a link from dex |
| chain | string | no | Optional: base, bnb, arbitrum, polygon, solana. Must agree with the input; it supplies the chain a bare 0x address or a link leaves open (a Uniswap link with no chain). A bare 0x with no chain at all |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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 ma
| Parameter | Type | Required | Notes |
|---|---|---|---|
| need | string | yes | What the service should do, in plain words, e.g. 'token prices for ETH' or 'scrape a web page to text'. Matched against the listing text, host and URL. |
| category | string | no | Narrow to one category: market-data, onchain-data, web-data, search, inference, media, security, identity, dev-tools, commerce, agents, other. |
| chain | string | no | Narrow to a chain by name, e.g. Base or Solana. |
| max_price_usd | number | no | Per-call price ceiling in USD. Listings with no decodable per-call price are left out when this is set. |
| limit | integer | no | Hits to return (1-20, default 10). |
| response_format | string | no | Text format; structuredContent is JSON either way. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| package | string | yes | Package name as written in code or a manifest, e.g. 'x402' or '@solana/web3.js'. |
| version | string | no | The version or range you have or were taught, e.g. '1.2.0' or '^2'. Omit to get every line of the package. |
| ecosystem | string | no | Needed only when the name exists on both registries (x402 does); the answer then says ecosystem_ambiguous. |
| response_format | string | no | concise (default): the decision fields, about 1,500 tokens at most. detailed: adds evidence URLs, notes, every record and third-party text under untrusted_text. |
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 rea
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | no | A chain: id, CAIP-2 or name, e.g. 'base', 8453 or 'eip155:8453'. | |
| contract | string | no | A canonical contract by name, e.g. 'Permit2', 'EntryPoint' or 'SafeL2', or by address. |
| protocol | string | no | A protocol whose deployments you want, e.g. 'uniswap', 'safe', 'multicall3', 'erc8004', 'erc4337' or 'cctp'. |
| token | string | no | A token by address or symbol, e.g. 'USDC' or a contract address. Served: the USDC contract Circle states and each x402 SDK default asset. |
| kind | string | no | Only this kind of fact: chain, usdc, cctp_domain, deployment, x402_default_asset. |
| include_testnets | boolean | no | Include testnets. Default false: a testnet address is never offered for a mainnet question. |
| limit | integer | no | Facts to return (1-50). Default 10 concise, 25 detailed. |
| response_format | string | no | concise (default): the decision fields, about 1,500 tokens at most. detailed: adds evidence URLs, notes, every record and third-party text under untrusted_text. |
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 acr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | yes | The chain: id, CAIP-2 or name, e.g. 'base', 8453 or 'eip155:8453'. | |
| response_format | string | no | concise (default): the decision fields, about 1,500 tokens at most. detailed: adds evidence URLs, notes, every record and third-party text under untrusted_text. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | no | Only facilitators that list this chain: id, CAIP-2 or name, e.g. 'base' or 'eip155:8453'. Omit for the roster of all facilitators. | |
| scheme | string | no | Only this payment scheme, e.g. 'exact' or 'upto'. |
| x402_version | integer | no | Only cells whose answer states this x402 protocol version, e.g. 2. |
| response_format | string | no | concise (default): the decision fields, about 1,500 tokens at most. detailed: adds evidence URLs, notes, every record and third-party text under untrusted_text. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Sato Hub: Onchain Agents or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.2.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Sato Hub: Onchain Agents can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.