Sato Route
Choose where an agent's swap, payment or job goes. Every route shows its fee and its reasons.
What a route is, and is not
A route is a recommendation, chosen on the fields named in chosen_by as they read on checked_at. It is not a security review, a quality judgment, or a statement about price, execution or returns — a quote is a quote, not a fill. Sato Hub does not sign, hold or move funds; the caller signs the transaction it is handed.
Three lanes, one framing
Swaps
GET /api/route/swap
Every adapter that quotes on the chain is asked in parallel. Retired and dormant venues are excluded, the rest are ranked on liveness, our observed check record, verification state, then quoted output. You get the aggregator's own calldata and a Preflight verdict for the venue.
x402 endpoints
GET /api/route/x402
One of 8 capabilities in, one endpoint out — chosen only from sellers that answered a real HTTP 402 within the last seven days, with the facilitator reachability and declared network we read. No payment is sent to find out, and we never relay one.
Registered agents
GET /api/route/agent
Listed Sato Agent Passports, ranked on what the passport declares and confirmed on-chain, then the top few get one live MCP handshake before the final ranking. A registration proves a claim was made, not that the product works.
Run it on Sato OS
from $299This endpoint hands back a route and the calldata; something still has to hold the strategy, take the quote and sign the transaction. Sato OS is our own self-hosted trading agent that does that on your own machine, against this same swap lane and the same disclosed fee schedule.
Sato OS is built by Sato Hub and sold by Sato Hub, so it is shown here as ours rather than as a find. It is self-hosted and non-custodial — it runs on your machine and signs with your keys — and it was not ranked against any listing on this page.
Want the swap lane with the gate in front of it — four verdicts, the policy in force, and an unsigned transaction only when both allow it? Sato Swap.
The launch lane — routing a token launch to a venue — answers at /api/route/launch. It carries 500 bps of the creator's LP fee share today, stated in fee on every response, including when it is 0. Nothing on this page measures it, and a launch is a recommendation and an unsigned config, never a deployment.
The fee, in full
Sato Route swaps cost 3 bps stable-to-stable, 15 bps between majors (a chain's native coin such as ETH or SOL, its wrapped form, or a stablecoin), 75 bps with any other token and 25 bps cross-chain (75 bps when either side is any other token), taken as a parameter on the aggregator's own quote inside the transaction you sign; a failed, reverted or unsigned trade pays nothing. A token launch carries a disclosed share of the creator's LP fee, stated as fee.bps on every launch response, including when it is 0. Sato OS charges 3 / 15 bps on its own spot swap rail and a 3 bps perp builder fee, with no cross-chain tier. Some venues keep a share or pay later, and every quote says which. It is printed on every quote before anything is signed. Prices and limits for everything else: pricing.
Stable ↔ stable
3 bps
both legs a stablecoin we recognise
Between majors
15 bps
both legs the chain’s native coin (ETH, SOL and the like), its wrapped form or a stablecoin
Any other token
75 bps
one leg a token outside that set, bought or sold by its address; the fee is taken on the other leg, never in that token
Cross-chain
25 bps
when the output chain differs and both legs are majors (75 bps with any other token); the venue’s own qualifier says which leg and what it keeps
Failed or unsigned
nothing
the fee lives inside the transaction you sign
- How it is taken
- As a fee parameter on the aggregator’s own quote, charged by that router inside the swap transaction, on the input leg; on KyberSwap, Jupiter and 0x, a long-tail token sold for a stablecoin or the chain's native asset takes it on the output leg instead, so the fee is never paid in that token. The fee is only ever taken in a stablecoin or the chain's native coin: a venue that would take it in any other token is not offered for that pair, and a pair with neither side such an asset is refused (swap through USDC or the chain's own native coin). Sato Hub is not in the flow of funds at any point.
- Treasury
- 0xcEE53Eb001d4d1743EF9df333Dcf45bC38622bE9
- Disclosure
- Every quote carries
sato_fee_bps,sato_fee_recipientand a plain-Englishdisclosurestring, before anything is signed. Sato OS charges the same stable and volatile tiers on its own swap rail, plus a perp builder fee, and has no cross-chain tier.
A real route, chosen just now
1 USDC → SOL on Solana. The response below came from the same endpoint you would call, at most five minutes ago. It is a quote, not a fill, and prices move.
Chosen by Sato Route on 2026-10-26: Jupiter (listing →), because:
- Action swap EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v → So11111111111111111111111111111111111111112 on Solana, chosen from 34 candidate venue(s) in the same-chain lane.read from resources.resource_type, resources.tags, resources.chains_supported
- Directory record Listed on Sato Hub as Jupiter.read from resources.slug
- Public activity Last public activity 2026-10-23 (active).read from resources.last_activity_at
- Observed record 100% of Sato Hub's own daily checks succeeded over 90 day(s). This is the share of OUR checks that succeeded, never uptime — a failure can be on our side.read from resources.uptime_observed.success_rate_pct
- Verification state The documented install path was re-run in an isolated container and completed. Proves installability, not runtime behaviour. Listing verification: Verified.read from resources.deploy_spec.deploy_status, resources.verification_status
- Lane A same-chain quote: it settles in one transaction on one chain. It was ranked only against other same-chain quotes.read from adapter.quote.lane
- Quoted output 9899439 in the output token's base units, quoted by the venue's own API at checked_at. A quote is not a fill.read from adapter.quote.amountOut
fee sent on this quote: 15 bps → FMEXEnUt2fxKkZewdWq5PKebLw4vs1ddyayJjKap4LGo
Sato Route takes 15 bps (0.15%) on the input leg in EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v, charged inside the swap transaction by the aggregator's own router to the Sato fee address FMEXEnUt2fxKkZewdWq5PKebLw4vs1ddyayJjKap4LGo. Stable-to-stable pairs are 3 bps; a pair of majors (a chain's native coin such as ETH or SOL, its wrapped form, or a stablecoin) is 15 bps; a pair with any other token is 75 bps; cross-chain is 25 bps, or 75 bps when either side is any other token. Sato Hub does not sign this transaction, hold your funds or move them — you sign it. A failed, reverted or unsigned trade pays nothing. On Jupiter the fee is platformFeeBps on the quote, paid in the input mint into the Sato referral token account FMEXEnUt2fxKkZewdWq5PKebLw4vs1ddyayJjKap4LGo — pass it as feeAccount on POST /swap. It is the Referral-program PDA of the Sato referral account GwRkq9EBWwcLNbFzYYGSKkgoBYo4grLvCV67dHoEZ4ZB for that mint. That account exists on mainnet as a token account for mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v (checked by public RPC). The transaction Jupiter returns is UNSIGNED — you sign it.
also considered: Hyperliquid, Ophis, Raydium, Universal Crypto MCP, Virtuals Protocol
Preflight on the chosen venue
go (R5) — what these verdicts mean →
Call it
HTTP
curl -s "https://satohub.ai/api/route/swap?chain=Solana&token_in=USDC&token_out=SOL&amount=1000000"
Also /api/route/x402?capability=price-feed and /api/route/agent?capability=…. Contract: OpenAPI.
MCP
{
"mcpServers": {
"satohub": { "url": "https://satohub.ai/api/mcp" }
}
}The same code answers as onchain_agent_route_swap and onchain_agent_route_agent. Full tool list on /mcp.
Reference
QuestionsWhat people ask about this pageShowHide
Questions about Sato Route
- What does Sato Route do?
- It answers one question — where should this action go — for a token swap, a request to an x402-paid endpoint, a job for a registered agent, and a token launch. The answer names the venue it chose and every reading it chose on, with the date each was read. It is a recommendation, not a security review.
- Does Sato Route hold my funds?
- No. Every lane is non-custodial. The swap lane returns the aggregator's own quote and calldata; you sign it with your own wallet. The x402 lane names an endpoint and you settle the seller's 402 yourself. Sato Hub never holds, nets, forwards or signs, and is not an x402 facilitator.
- How does Sato Route make money?
- Sato Route swaps cost 3 bps stable-to-stable, 15 bps between majors (a chain's native coin such as ETH or SOL, its wrapped form, or a stablecoin), 75 bps with any other token and 25 bps cross-chain (75 bps when either side is any other token), taken as a parameter on the aggregator's own quote inside the transaction you sign; a failed, reverted or unsigned trade pays nothing. A token launch carries a disclosed share of the creator's LP fee, stated as fee.bps on every launch response, including when it is 0. Sato OS charges 3 / 15 bps on its own spot swap rail and a 3 bps perp builder fee, with no cross-chain tier. Some venues keep a share or pay later, and every quote says which. The swap fee is taken inside the swap transaction by the router, on the input leg; on KyberSwap, Jupiter and 0x, a long-tail token sold for a stablecoin or the chain's native asset takes it on the output leg instead, so the fee is never paid in that token (or the leg the bridge venue charges), and it is printed on every quote before anything is signed.
- Is the chosen venue the cheapest price?
- No such claim is made. Price is the fourth signal, not the first: venues are ranked by whether they are still live in Sato Hub's records, the observed success rate of our own daily checks, verification state, and only then quoted output. A quote is a quote, not a fill.
- How does Sato Route choose a venue?
- Retired or dormant venues are excluded outright. What remains is ranked on liveness, the observed record of Sato Hub's daily checks, verification state and then quoted output — and the full ladder travels back in chosen_by, each signal with the field it was read from. The same data always yields the same route.
- Can an agent call it directly?
- Yes. The HTTP lane is GET /api/route/swap, /api/route/x402, /api/route/agent and /api/route/launch, documented in the OpenAPI contract; the same code answers over MCP as onchain_agent_route_swap, onchain_agent_route_x402, onchain_agent_route_agent and onchain_agent_route_launch, so the two lanes cannot disagree.
- What happens when no venue qualifies?
- The endpoint answers 503 with the list of adapters it asked and what each one said. That is a reading of that moment — that no adapter quoted this pair now — and never a statement that the pair cannot be traded. Nothing is routed on data we could not read.
SourcesWhere the data comes fromShowHide
Sato Route is not investment advice, not a broker, and not a guarantee of execution, price or outcome. Routing to a venue is not an endorsement of it. Related: How Sato Route chooses · House rules · Preflight · x402 verified · Agent Passport · Sato Bot