AgentFeed

io.github.seekdaseekPublished by GitHub account seekdaseekv2.11.0Updated Nov 3, 2026

Crypto briefs and data, Solana pre-trade checks, sanctions, papers, NLP. 102 tools, USDC, 20 chains.

VerifiedStreamable HTTPWeb executableFinanceData & AnalyticsAI & ML

Overview

AgentFeed's hosted MCP server (x402.ochinimus.app); no sign-in required; Streamable HTTP; 102 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Endpoint
x402.ochinimus.app
Last checked

Installation

In SourceWeft

  1. Open AgentFeed in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.seekdaseek%2Fagentfeed/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "agentfeed": {
      "type": "http",
      "url": "https://x402.ochinimus.app/mcp"
    }
  }
}

README

AgentFeed

[smithery badge]

Crypto market data for AI agents (liquidations, funding, open interest, prices), Solana pre-trade checks, OFAC sanctions screening, scholarly papers, utilities and fixed-purpose language tasks (OCR, translate, summarize, extract, classify, prompt-injection check, transcribe). Pay per call in USDC. No accounts, no subscriptions, and no API key needed (prepaid keys are optional, for bots that cannot pay x402).

AgentFeed sells live trading data through the x402 payment protocol on Solana, Base, Polygon, Arbitrum, Arc, Optimism, Monad and Avalanche, and on request on Celo, HyperEVM, Unichain, Scroll, SKALE Base, BNB Chain, Ethereum, Robinhood Chain, World Chain, Sei and X Layer (GET /api/<route>|<network>). An agent hits an endpoint, gets a 402 Payment Required with the price, pays a fraction of a cent in USDC (or the dollar token the network names) from its own wallet, and receives the data — in about two seconds, gas sponsored by the facilitator.

Two rails, same data:

RailEndpointFor
MCP (Streamable HTTP)https://x402.ochinimus.app/mcpClaude, Cursor, MCP-native frameworks
HTTP (x402)https://x402.ochinimus.app/api/*Anything that speaks HTTP

What makes this different: the liquidation tape

We run our own liquidation collector across Bybit, OKX and Binance — every USDT-margined perpetual on all three, recorded continuously since 2026-07-08.

The size of that tape is not a claim, it is a query. Measured 2026-09-28 06:56 UTC:

Rows4,924,729
Distinct perp markets, whole tape907
Distinct perp markets, last 7 days861 — binance 728 · bybit 693 · okx 454
Range (UTC)2026-07-08 16:42:32 → 2026-09-28 06:56:17

It grows while you read this: the row count above and the one you get from the same query five minutes later will not match.

The 7-day figure is published live by the service itself at / under coverage.perp_markets_7d, recomputed from the tape rather than restated, so this README can be checked against it rather than believed.

This data cannot be bought. Not from us, not from anyone:

  • Binance deleted their liquidation archive. liquidationSnapshot no longer exists on data.binance.vision — the directory is an empty shell. Verified 2026-07-12.
  • Bybit has never published historical liquidation data.
  • OKX offers a 7-day rolling REST window and nothing more.

There is no public historical liquidation dataset for any major venue, at any price. The only way to hold this data is to have been recording it.

And here is exactly where our data is weak

Being straight about this matters more than the marketing:

VenueFeedComplete?
BybitallLiquidation✅ Yes. Every liquidation, 500ms cadence. The only complete, unthrottled public liquidation stream among the major perp venues.
Binance!forceOrder@arr❌ No. Snapshot only — max one order per symbol per 1000ms, per Binance's own docs. allForceOrders REST is unmaintained.
OKXliquidation-orders❌ No. Max one update per second per contract.
Hyperliquid—⛔ Not included. Hyperliquid exposes no public liquidation stream. WsTrade carries no liquidation marker; the data lives only in user-scoped streams. Capturing it requires running a node.

Binance and OKX rows are a structural undercount, and the undercount is worst during cascades — exactly when the data matters most. This is true of every liquidation dataset on the market, including the well-known ones. Most don't say so.

Bybit rows are the highest-integrity part of the dataset. Weight accordingly.

The side field, which most datasets get wrong

Three exchanges, three conventions. We normalize all of them:

  • Bybit S is already the position side (Buy = a long was liquidated). Passed through.
  • Binance S is the order side — a SELL order is what closes a long. Flipped.
  • OKX exposes posSide explicitly. Mapped.

In our output: Buy = a LONG was liquidated. Sell = a SHORT was liquidated. Invert this and every long/short ratio you compute is backwards for some venues.

Notional uses filled_qty × avg_fill_price — what actually executed — not limit_price × requested_size.


Price index

Every paid route, cheapest question last. Generated from /.well-known/x402.json, read 2026-11-01 — names, prices and routes are the manifest's, not a copy kept in sync by hand. What each one returns is under 102 tools, word for word as the service publishes it.

ToolPriceRoute
buy_key_pass$25/api/keys/buy-pass
buy_key_signals_pass$25/api/keys/buy-signals-pass
buy_key_20$20/api/keys/buy-20
topup_key_20$20/api/keys/topup-20
buy_key_5$5/api/keys/buy-5
topup_key_5$5/api/keys/topup-5
buy_key_1$1/api/keys/buy-1
buy_key_day_pass$1/api/keys/buy-day-pass
buy_key_signals_day_pass$1/api/keys/buy-signals-day-pass
get_x402_test$1/api/x402-test
get_cascade_backtest$0.5/api/cascade-backtest
buy_key_trial$0.25/api/keys/buy-trial
get_company_check$0.25/api/company-check
get_claim_check$0.15/api/claim-check
get_squeeze_score$0.1/api/squeeze-score
get_cascade_scan$0.05/api/cascade-scan
get_liq_history$0.05/api/liq-history
get_peg_universe$0.05/api/peg-universe
get_tx_precheck$0.05/api/tx-precheck
get_x402_lint$0.05/api/x402-lint
get_ocr$0.04/api/ocr
get_translate$0.04/api/translate
get_cascade_history$0.03/api/cascade-history
get_morning_brief$0.03/api/morning-brief
get_peg_sessions$0.03/api/peg-sessions
get_extract$0.025/api/extract
get_sol_token_check$0.025/api/sol-token-check/{mint}
get_anomaly_flag$0.02/api/anomaly-flag
get_base_launches$0.02/api/base-launches
get_cascade_forecast$0.02/api/cascade-forecast
get_exit_quote$0.02/api/exit-quote
get_funding_extremes$0.02/api/funding-extremes
get_funding_radar$0.02/api/funding-radar
get_hl_whales$0.02/api/hl-whales
get_liq_heatmap$0.02/api/liq-heatmap
get_liquidation_leaders$0.02/api/liquidation-leaders
get_market_state$0.02/api/market-state
get_move_alert$0.02/api/move-alert
get_oi_spike_scan$0.02/api/oi-spike-scan
get_peg_deviation$0.02/api/peg-deviation
get_pkg_check$0.02/api/pkg-check
get_rwa_yields$0.02/api/rwa-yields
get_site_signals$0.02/api/site-signals
get_summarize$0.02/api/summarize
get_token_holders$0.02/api/token-holders/{mint}
get_tradfi_radar$0.02/api/tradfi-radar
get_transcribe$0.02/api/transcribe
get_venue_liq_share$0.02/api/venue-liq-share
get_wallet_activity$0.02/api/wallet-activity/{wallet}
get_papers$0.015/api/papers
get_basis$0.01/api/basis
get_cascade_alert$0.01/api/cascade
get_equity_24h$0.01/api/equity-24h
get_honeypot_check$0.01/api/honeypot-check
get_insider_trades$0.01/api/insider-trades
get_liquidation_stats$0.01/api/liquidation-stats
get_open_interest$0.01/api/open-interest
get_orderbook_imbalance$0.01/api/orderbook-imbalance
get_orderbook_walls$0.01/api/orderbook-walls
get_pdf_markdown$0.01/api/pdf-markdown
get_sec_8k$0.01/api/sec-8k
get_signal_board$0.01/api/signal-board
get_token_risk$0.01/api/token-risk/{mint}
get_top_movers$0.01/api/top-movers
get_trade_context$0.01/api/trade-context
get_volatility$0.01/api/volatility
get_sanctions_check$0.008/api/sanctions-check/{address}
get_sol_holder_clusters$0.008/api/sol-holder-clusters/{mint}
get_sol_token_flow$0.008/api/sol-token-flow/{mint}
get_wallet_holdings$0.008/api/wallet-holdings/{wallet}
get_base_balance$0.005/api/base-balance
get_base_gas$0.005/api/base-gas
get_classify$0.005/api/classify
get_convert$0.005/api/convert
get_domain$0.005/api/domain/{domain}
get_email_verify$0.005/api/email-verify
get_funding_history$0.005/api/funding-history
get_funding_pulse$0.005/api/funding-pulse
get_funding_rate$0.005/api/funding-rate
get_hash$0.005/api/hash
get_jito_tips$0.005/api/jito-tips
get_liq_pulse$0.005/api/liq-pulse
get_macro_calendar$0.005/api/macro-calendar
get_market_snapshot$0.005/api/market-snapshot
get_paper$0.005/api/paper/{doi}
get_perp$0.005/api/perp
get_positioning$0.005/api/positioning
get_priority_fees$0.005/api/priority-fees
get_qr$0.005/api/qr
get_recent_liquidations$0.005/api/liquidations
get_sec_filings$0.005/api/sec-filings
get_sol_network$0.005/api/sol-network
get_time$0.005/api/time
get_token_metadata$0.005/api/token-metadata/{mint}
get_tradfi_perps$0.005/api/tradfi-perps
get_web_markdown$0.005/api/web-markdown
get_wiki$0.005/api/wiki
get_coin_signal$0.004/api/coin-signal/{coin}
get_injection_check$0.004/api/injection-check
get_fx_rates$0.002/api/fx-rates
get_btc_price$0.001/api/btc-price
get_eth_price$0.001/api/eth-price
get_liq_feed$0.001/api/liq-feed
get_sol_price$0.001/api/sol-price
get_spot$0.001/api/price

Two payment protocols on one 402

Every paid route answers 402 with an x402 v2 challenge in the PAYMENT-REQUIRED header, and the same challenge as an x402 v1 body ({x402Version: 1, accepts}) for Base and Solana. Pay with PAYMENT-SIGNATURE (v2, any rail) or X-PAYMENT (v1 on Base or Solana, verified and settled through the CDP facilitator's v1 kinds; Polygon and Arbitrum have no v1 kind there and stay v2). Eight networks are in every 402 and eleven more are offered on request (see "Pay on any chain"); Algorand is built but switched off, see "Algorand is switched off" below. Each network is settled by exactly one facilitator: CDP for Solana, Base, Polygon, Arbitrum and World Chain; Circle's Facilitator Service for Arc, to a dedicated Arc address; GoPlausible for Algorand (switched off); Ultravioleta for Optimism, Monad, Avalanche, Celo, HyperEVM, Unichain, Scroll, SKALE Base, BNB Chain, Ethereum and Robinhood Chain; PayAI for Sei and X Layer. payments.js gives each facilitator client only its own networks, so a payment on one network can never reach another's facilitator. Every paid route also carries MPP tempo/charge challenges in WWW-Authenticate (Tempo mainnet, chain 4217, OUSD first, then USDC.e, at the route's price; no fee payer, the payer pays gas). Only signed transactions (pull mode) are accepted: the server validates the transfer, runs the request, and broadcasts it only when the response is below 400, so a failed call is never charged; an already-broadcast hash credential is refused. /api/sol-price and /api/btc-price additionally carry an MPP solana/charge challenge. All of them ride the same response, so a client settles with whichever protocol it speaks. The two live in disjoint header namespaces, so an x402-only client never sees the MPP one and is unaffected.

$ curl -si https://x402.ochinimus.app/api/btc-price      # 2026-09-23 09:18:09 UTC
HTTP/2 402payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwi…www-authenticate: Payment id="T0-lA4BfXXpf3GvzGklT8YobRJwSlEu8AXu9ZLz5VOg",                  realm="x402.ochinimus.app", method="solana", intent="charge",                  request="eyJhbW91bnQiOiIxMDAwIiwiY3VycmVuY3ki…",                  expires="2026-09-23T09:23:09.919Z", opaque="eyJfbXBweF9zY29wZSI6…"

Base64-decoded, that MPP request is the whole quote:

json
{  "amount": "1000",  "currency": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",  "recipient": "4a8o45skRPcyjAdyR8yES215Swvh8uTpZD6KLarhxCJ7",  "methodDetails": {    "decimals": 6,    "network": "mainnet",    "recentBlockhash": "6e6NEAxddHca5ipHioSwZRhcGcSL4rW4q18AYszfnxyv",    "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"  }}

Note what is not there: no feePayer. The client pays its own transaction fee and the server holds no funded signing key, which is the difference between the MPP challenge and the Solana x402 one sitting beside it in the same response.

Replay is refused, not merely discouraged. A settled signature is claimed atomically in SQLite before the resource is served, so two processes racing the same credential produce exactly one 200 and one refusal — covered by tests that fork real worker processes rather than stubbing the race.

The layer is fail-soft by design. If it cannot initialise it logs [mpp] DISABLED: <cause> and the service keeps serving x402 on every route rather than taking the paid surface down with it. Which routes are gated is published live at / and in /.well-known/x402.json under mpp.routes, so the advertised set is always whatever is actually mounted.

AgentFeed is one of several merchants accepting MPP on Solana mainnet — the Foundation's own Google proxy and smartmoney-market in solana-foundation/pay-skills do too.

Upstream work this produced

solana-foundation/pay-kit #328fix(mpp): send preflightCommitment with sendTransaction so confirmed-only blockhashes are accepted — a challenge blockhash minted at confirmed is rejected by a preflight bank that defaults to finalized, so a client that pays fast always fails. Open, approved, 44/44 checks green, mergeable/clean (read 2026-09-23)
solana-foundation/surfpool #813fix(core): make blockhash handling honor commitment and preflightCommitment — merged 2026-09-21 by MicaiahReid, opened by EfeDurmaz16, who had reviewed #328. Its description explains why the bug above was invisible in CI: "This hid a deterministic mainnet failure from pay-kit's Surfpool CI: solana-foundation/pay-kit#328." A sandbox that stamped an always-valid blockhash could not reproduce a finality race that mainnet reproduces every time
solana-foundation/pay-skills #260providers: add ochinimus/agentfeed
solana-foundation/pay #469pay hangs forever on paid routes in non-GUI contexts: the Touch ID gate polls for a prompt that cannot render

The pay-kit fix ships here as mpp/patches/@solana+mpp+0.7.0.patch, applied by patch-package on install and asserted by npm run verify-patch — the patch is a production dependency, not a dev one, because a --omit=dev install would otherwise complete silently unpatched.

Half price for high-frequency callers

A bot that calls often pays half the route's price, minimum $0.0005, through either of two schemes that ride the same 402 as the per-call accepts. Per-call prices do not change. The six prepaid-key purchase routes carry per-call accepts only. The Gateway accept is offered on Arc only: it was withdrawn from Base, Polygon and Arbitrum on 18 Oct 2026, because buyers whose client picked it as the cheapest accept of the chain signed a plain USDC authorization to the Gateway wallet, which is not a Gateway payment and was refused.

batch-settlementCircle Gateway nanopayment
NetworksBase, Polygon, ArbitrumArc
Acceptscheme: batch-settlementscheme: exact, extra.name: GatewayWalletBatched
Paysthe treasury 0x22DB3A9686EE5261e7Bf3ed4f91277232E8076e6Gateway seller 0xA853129ACF56A851f9d51CD8cb47619465260Fa9
Buyer does onceopens a channel with one deposit (extra.minDeposit in the accept); every later call is an off-chain voucherdeposits USDC into the GatewayWallet 0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE
Settlementwe claim the vouchers every 30 minutesCircle batches the authorizations
Unspent moneycomes back through the channel's timed withdrawal (24 h delay)stays in the buyer's Gateway balance

A call that answers 400 or more is never charged on either scheme.

Path parameters

Twelve routes take their argument as the last path segment: /api/wallet-activity/{wallet}, /api/token-risk/{mint}, /api/coin-signal/{coin}, /api/sanctions-check/{address}, /api/domain/{domain}, /api/paper/{doi} and the other six. In this README, in llms.txt and in openapi.json, {wallet} marks the part you replace; it is not a URL. Every URL the service publishes for a caller to GET is a working example instead: /.well-known/x402.json lists https://x402.ochinimus.app/api/wallet-activity/Gack9UtqfeZxFA1LqeqjLgC3JGuD7rS6CsSHKoXsD4Tu as the resource and the {wallet} form as resource_template; openapi.json gives each path parameter an example and the pattern, minLength and maxLength it must satisfy; the 402's Bazaar declaration carries the same schema. The DOI example is published as one segment, /api/paper/10.1038%2Fnature14539 (the URL CDP's index already holds for this route); the slash spelling /api/paper/10.1038/nature14539 is still served. CDP's /validate fails this one route on bazaar.routeTemplate.matches_resource with either spelling (it behaves as if it decodes the path before splitting it, and a DOI always contains a slash); the other 90 priced routes validate. The existing ?doi= alias fails it too (measured: its 402 still names the template /api/paper/:doi); only a priced route whose template has no DOI in the path would pass, which is a route redesign and an open decision.

Trade-off, decided 29 Oct 2026: the catalogue lists these concrete example URLs, not the {wallet} templates. A directory that keys its listing on the URL (Agent402 does) may therefore show a route twice, once from the catalogue and once from the 402's own route template. That is cosmetic. A listed URL that answers 400 is broken, which is what the literal templates were. To go back, change the concrete line in buildWellKnown (tools/discovery.js).

A value that can never be served is refused before the paywall. GET /api/wallet-activity/:wallet and GET /api/wallet-activity/notawallet answer 400 with the reason, the shape expected, a working example URL and "charged": false: no 402, no challenge, no prepaid-key reserve, nothing sent to a facilitator (lib/param-guard.js, before every payment layer). The check is shape only and uses the validator the handler itself uses: a Solana wallet or mint is 32 to 44 base58 characters, a coin 1 to 20 letters or digits, an address 14 to 120 letters and digits, a domain a public hostname, a DOI 10.xxxx/.... Whether the address has an account, the coin is listed or the DOI exists is still answered after payment, and a call that then answers 400 or more is never settled on any rail (test/param-guard-real-server.test.js). Over MCP the same patterns are in each tool's input schema, so an impossible argument is rejected before the payment prompt. MPP solana/charge settles on chain before the handler runs, so it is offered only on the two routes that take no input (/api/sol-price, /api/btc-price); MPP tempo/charge and every x402 scheme settle after it.

Query parameters are checked before payment (R20f, 29 Oct 2026)

The same guard covers the values of query parameters that a route's handler would refuse with a 400 anyway: an integer outside its range (/api/sol-token-flow/{mint}?swaps=5 needs 20 to 100), a word outside its list (?alg=md5, ?format=jpeg, ?length=long, ?class=bonds), a code of the wrong shape (?base=EURO, ?lang=english, a 0x address that is not 40 hex digits), a url= that is not an absolute http or https URL (?url=example.com), a text or data over the route's length cap (4,000 characters; 2,048 bytes), a schema= that is not the JSON object the route needs. Such a request answers 400 with error, param, expected, received, a working example URL and "charged": false, before any 402 (lib/query-rules.js, mounted by lib/param-guard.js). The rules copy the handler's own checks and read a value the way the handler does (Number() on the raw text, words lower-cased, an empty value is "not given"); test/query-guard-real-server.test.js runs the real server twice, with the rules on and off, and requires that every value the guard refuses is refused by the handler with the same sentence. Not guarded, on purpose: a missing parameter (the query-less URL of each route is the one every catalogue lists, and it stays a 402), symbols and tickers that need an upstream to be judged (Hyperliquid's universe, the SEC list), URLs and free text, and limits the handler clamps instead of refusing (limit on /api/liquidations, window on /api/cascade, and others). 52 rules on 30 routes today; the full list is lib/query-rules.js. The integer and number ranges are also in each MCP tool's input schema and in the minimum / maximum of openapi.json and of the Bazaar declaration. AF_QUERY_GUARD=off in the environment (restart) switches the query rules off and leaves the path rules on.

Algorand is switched off (29 Oct 2026)

X402_ALGO=off is set on the live box. CDP's Bazaar validator (POST https://api.cdp.coinbase.com/platform/v2/x402/validate) parses every accept of a route, and a network id outside the CAIP-2 grammar (namespace:reference, the reference 1 to 32 characters of [-_a-zA-Z0-9]) fails its required check parse; the whole route is then rejected: invalid discovery configuration (measured on all 91 priced routes). The Algorand id that the GoPlausible facilitator publishes, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=, is 44 characters with a trailing =. With the rail off 90 of the 91 routes validate (valid: true, simulation accepted, 25 of 25 checks pass); the 91st, /api/paper/{doi}, fails only bazaar.routeTemplate.matches_resource (see "Path parameters"). No payment was ever made on Algorand. The code stays (lib/rails.js); to offer the rail again, remove the line and restart, once CDP accepts the id or the facilitator publishes a CAIP-2 one. test/caip2-networks.test.js fails if any other network id leaves the grammar.

batch-settlement, on Base

js
import { privateKeyToAccount } from 'viem/accounts';import { createPublicClient, http } from 'viem';import { base } from 'viem/chains';import { BatchSettlementEvmScheme } from '@x402/evm/batch-settlement/client';import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
const account = privateKeyToAccount(process.env.EVM_KEY);const pub = createPublicClient({ chain: base, transport: http() });const signer = Object.assign(account, { readContract: (args) => pub.readContract(args) });const pay = wrapFetchWithPaymentFromConfig(fetch, {  schemes: [{ network: 'eip155:8453', client: new BatchSettlementEvmScheme(signer) }],});
// the first call opens the channel (one EIP-3009 authorization, no ETH needed); the rest are vouchersfor (let i = 0; i < 5; i++) {  const res = await pay('https://x402.ochinimus.app/api/eth-price');  console.log(res.status, await res.json());}

Keep the pay object alive between calls. A client that starts a fresh process for every call is asked once to resync while vouchers are outstanding, and is then served in the same request.

Full script, with a guard that checks the accept before anything is signed: ops/proof-batch.mjs.

Gateway, on Arc

The Gateway accept is on Arc only (see "Pay on Arc" below for the full walk-through): ops/proof-gateway.mjs (CHAIN=arc, the default) deposits into the GatewayWallet once and pays one nanopayment.

Proven on mainnet

  • 13 Oct 2026, batch-settlement on Base: a channel opened with deposit 0x6175…4492, ten 0.0005 USDC vouchers, claimed and settled to the treasury; a second run paid 8 calls while the claim job ran.
  • 13 Oct 2026, Gateway on Arc: see "Pay on Arc" below.

All of them were paid from our own test wallets.

Pay on Arc

Every paid route takes USDC on Arc mainnet (eip155:5042, USDC 0x3600000000000000000000000000000000000000, 6 decimals) in two ways. Both sit in the same 402 as the other rails (the prepaid-key purchase routes offer the exact one only), so a client pays with whatever it holds. Gas on Arc is paid in USDC, so a buyer needs nothing else.

x402 exactCircle Gateway nanopayment
Acceptscheme: exactscheme: exact, extra.name: GatewayWalletBatched
Pricethe route's pricehalf the route's price, minimum $0.0005
Settled byCircle Facilitator Service, one transaction per callCircle Gateway, batched
Pays0x0Cf44185564F2b72E291050DC79E578429E52f83Gateway seller 0xA853129ACF56A851f9d51CD8cb47619465260Fa9
Buyer needsUSDC on Arca one-time deposit into the GatewayWallet 0x77777777Dcc4d5A8B6E418Fd04D8997ef11000eE

One call: x402 exact

js
import { privateKeyToAccount } from 'viem/accounts';import { ExactEvmScheme } from '@x402/evm/exact/client';import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
const account = privateKeyToAccount(process.env.ARC_KEY);const pay = wrapFetchWithPaymentFromConfig(fetch, {  schemes: [{ network: 'eip155:5042', client: new ExactEvmScheme(account) }],});const res = await pay('https://x402.ochinimus.app/api/liquidation-stats');console.log(res.status, await res.json());

Full script: ops/pay-arc.mjs.

Many calls: Gateway nanopayments

js
import { GatewayClient } from '@circle-fin/x402-batching/client';
const client = new GatewayClient({ chain: 'arc', privateKey: process.env.ARC_KEY });await client.deposit('0.02'); // once: approve + deposit, gas paid in USDCconst res = await client.pay('https://x402.ochinimus.app/api/liquidation-stats');console.log(res.formattedAmount, res.data);

Full script, with a deposit sized from a live gas estimate and a dry run: ops/proof-gateway.mjs (CHAIN=arc).

Proven on mainnet

  • 12 Oct 2026, x402 exact through Circle's facilitator: 0x15e8…41d0
  • 13 Oct 2026, Gateway deposit 0xffe7…9d50, then a 0.0005 USDC nanopayment (Circle transfer d32e4ea9-2d62-4fd6-ad4c-6de70affba00)
  • 14 Oct 2026, x402 exact through Circle's facilitator with the production key: 0xee59…bf33, a 0.001 USDC call to /api/eth-price, status ok

All of them were paid from our own test wallets.

Where it lives in the code

  • lib/rails.js: the Arc rail (network, asset, payTo).
  • lib/circle-arc.js: the Circle Facilitator Service client: Arc-only /supported, /verify, /settle and settlement-status polling. A payment still pending is withheld and logged for ops/arc-reconcile.js.
  • lib/hf.js: the half-price tier: batch-settlement on Base, Polygon and Arbitrum, the Gateway offer on Arc, the half-price rule, and routeGateway, which hands Gateway payments to Circle's BatchFacilitatorClient while every other payment keeps its facilitator.
  • ops/batch-claim.js: claims and settles batch-settlement vouchers every 30 minutes.
  • payments.js: facilitator order: Coinbase CDP first, Circle for Arc, then the Gateway tier.
  • ops/gateway-withdraw.mjs and ops/arc-sweep.mjs: revenue out of the hot addresses.
  • test/arc.test.js.

Pay on any chain

Eight networks are in every paid route's 402; eleven more are offered on request. Ask for one by suffixing the route: GET /api/<route>|<network> (the | may be sent as %7C), for example /api/sol-price|eip155:42220 for Celo. The 402 that comes back carries the default accepts plus that network's accept, and a payment on any network is accepted on the plain URL too. The prepaid-key purchase routes carry the eight only. The first five networks (Solana, Base, Polygon, Arbitrum, Arc) are described under "Two payment protocols on one 402" and "Pay on Arc"; the table lists the other fourteen, generated from lib/ext-rails.js. Every row is scheme: exact (EIP-3009), paid to the same EVM treasury, settled by the one facilitator named in the row.

NetworkCAIP-2 idToken and addressDecimalsFacilitatorOfferedMinimum route price
Optimismeip155:10USDC 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff856Ultravioletaevery 402none
Monadeip155:143USDC 0x754704Bc059F8C67012fEd69BC8A327a5aafb6036Ultravioletaevery 402none
Avalancheeip155:43114USDC 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E6Ultravioletaevery 402none
Celoeip155:42220USDC 0xcebA9300f2b948710d2653dD7B07f33A8B32118C6Ultravioletaon requestnone
HyperEVMeip155:999USDC 0xb88339CB7199b77E23DB6E890353E22632Ba630f6Ultravioletaon requestnone
Unichaineip155:130USDC 0x078D782b760474a361dDA0AF3839290b0EF57AD66Ultravioletaon requestnone
Scrolleip155:534352USDC 0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A46Ultravioletaon requestnone
SKALE Baseeip155:1187947933USDC.e 0x85889c8c714505E0c94b30fcfcF64fE3Ac8FCb206Ultravioletaon requestnone
BNB Chaineip155:56AUSD 0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a6Ultravioletaon requestnone
Ethereumeip155:1USDC 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486Ultravioletaon requestnone
Robinhood Chaineip155:4663USDG 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d1686Ultravioletaon requestnone
World Chaineip155:480USDC 0x79A02482A880bCE3F13e09Da970dC34db4CD24d16CDPon requestnone
Seieip155:1329USDC 0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf423926PayAIon request$0.005
X Layereip155:196USDC 0xB6CEceAB302E2E4948951eE7843FC24E929330616PayAIon request$0.005

The token is not USDC everywhere: BNB Chain settles AUSD, Robinhood Chain USDG and SKALE Base USDC.e. Sei and X Layer are offered only on routes priced $0.005 or more, because PayAI charges per settlement.

Paying with @x402/fetch

@x402/fetch 2.28 refuses any token outside @x402/evm's DEFAULT_ASSETS unless the client opts in with spendControls.allowedAssets. Out of the box a stock client pays Monad, Avalanche, Celo, Ethereum and Sei. It is refused on Optimism, HyperEVM, Unichain, Scroll, SKALE Base, BNB Chain, Robinhood Chain, World Chain and X Layer until the token is allowed. The option shape, from @x402/core's own type definitions:

ts
spendControls?: {  maxAmountPerPayment?: Money | false;                 // USD cap on default assets, default "$1"  allowedAssets?: true | SpendControlAsset[];          // true allows any asset}interface SpendControlAsset {  network: Network;                                    // CAIP-2, e.g. 'eip155:10'  asset: string;                                       // on-chain token address, or a default-asset symbol  maxAmountPerPayment?: string;                        // integer atomic units, e.g. '50000' = $0.05 at 6 decimals}

A payment on Optimism, with the token allowed explicitly (the cap '50000' is $0.05; the token is the address in the table):

js
import { privateKeyToAccount } from 'viem/accounts';import { ExactEvmScheme } from '@x402/evm/exact/client';import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
const account = privateKeyToAccount(process.env.EVM_KEY);const pay = wrapFetchWithPaymentFromConfig(fetch, {  schemes: [{ network: 'eip155:10', client: new ExactEvmScheme(account) }],  spendControls: { allowedAssets: [{ network: 'eip155:10', asset: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85', maxAmountPerPayment: '50000' }] },});const res = await pay('https://x402.ochinimus.app/api/sol-price');console.log(res.status, await res.json());

Without the spendControls line the same client throws "All payment requirements were rejected by spendControls". Full script, with a dry run that prints the accept before anything is signed: ops/r10-proof-evm.mjs.

Proven on mainnet

  • 14 Oct 2026, three proof payments of 0.001 USDC on /api/sol-price|<network>, each one USDC transfer from our test wallet to the treasury: Optimism 0xdc64…d4c5, Monad 0xdf06…da2d, Avalanche 0x5c3e…70d0.
  • The other eleven networks are offered on request and have no settled payment yet.

All of them were paid from our own test wallets.

102 tools (95 paid data routes + 7 free) & pricing

95 paid + 7 free, 102 total on the MCP rail (the eight prepaid-key routes below are HTTP only). Every call is metered individually in USDC over x402 — no bundles, no minimums. Calling all 95 paid data tools once costs $3.267. Counts and prices are summed from the live manifest, read 2026-11-01.

The flagship is get_squeeze_score — a 0-100 short-squeeze / long-flush composite built from funding, crowding, OI build and the liq-skew of our exclusive tape. One number, one dime, answers "is this trade crowded and about to hurt someone."

Briefs: what changed and the level to watch

Short composed answers built only from data AgentFeed already collects. Each one gives the judgment (what changed, why it matters, the one level to watch) rather than a raw number; the text is templates filled from the numbers, with no language model, and every item names its sources and their age. No path or query parameter. A part that is stale is left out and named in stale_parts; when the core of a brief cannot be built the route answers 503 and is never billed. They are also open to a 30-day brief pass and a 24-hour brief day pass (/keys). Prices can change; the live 402 challenge is authoritative.

ToolPriceRouteWhat you get
get_morning_brief$0.03/api/morning-briefUse when an agent needs a one-answer summary of the last 8 hours in BTC, ETH, SOL and HYPE. Returns the items ranked by how abnormal each is: price move against the coin's own usual 8-hour move, funding, open interest, liquidations (total, long/short split, biggest print), Fear and Greed, today's macro releases with UTC times, and the nearest liquidation cluster as the level to watch. A stale source is left out and named; with no sampler it answers 503, never billed.
get_move_alert$0.02/api/move-alertUse when an agent needs to know which Hyperliquid perps moved unusually. Returns each coin whose 5-minute, 1-hour or 4-hour price move, or 1-hour open-interest change, is past its own measured tail (tiers from the coin's own history, sample size printed), labelled event-driven when a scheduled FOMC, CPI, NFP or PCE release explains it. An empty list is a valid answer. Stale inputs answer 503, never billed.
get_anomaly_flag$0.02/api/anomaly-flagUse when an agent needs one check for what is abnormal across Hyperliquid perps right now. Returns funding, liquidation and open-interest anomalies in one ranked list, using the thresholds of /api/market-state, or nothing abnormal with what was checked. If a source is stale and nothing else was found it answers 503 rather than an all-clear, and is never billed.

The moat — our own liquidation tape

ToolPriceRouteWhat you get
get_squeeze_score$0.1/api/squeeze-scoreShort squeeze score and long flush score, 0-100, for any Hyperliquid perp. Composite of Hyperliquid funding (35), whale crowding (25: the net-long share of the top 250 Hyperliquid accounts in the coin, not retail), the 24h open-interest build from our own 5-minute sampler (20) and liquidation skew from our own tape (20). One number for whether a trade is crowded and about to hurt someone. A symbol nothing lists answers 400; while the open-interest record is under 24 hours deep, or Hyperliquid or the whale snapshot is unavailable, it answers 503; both are never billed. A listed coin none of the top 250 accounts holds returns 200 with a decline naming the missing input.
get_liq_history$0.05/api/liq-historyLiquidation history, time-bucketed: total, long and short USD, prints and biggest print per bucket, for any USDT perp or the whole recorded universe, up to 7 days back. Bybit is the only complete liq tape in crypto and no exchange publishes history of it.
get_liq_heatmap$0.02/api/liq-heatmapLiquidation heatmap by PRICE LEVEL: where leverage actually got flushed in the last N hours — USD, prints and long/short split per price zone, with the hottest zone flagged. Built from real liquidation prints, not entry-price estimates. BTC, ETH, SOL, HYPE or any other USDT perp on our multi-venue liquidation tape.
get_cascade_history$0.03/api/cascade-historyLiquidation cascade history: past clustered same-side flush events reconstructed from our own tape, with start and end, prints, USD total and peak print, up to 72h back. /api/cascade tells you what is happening NOW; this tells you what already happened.
get_venue_liq_share$0.02/api/venue-liq-shareLiquidations by exchange: per-venue liquidation share across Bybit, OKX and Binance with long/short split and biggest print, for any symbol or the whole recorded universe. Which venue is flushing whom.
get_cascade_forecast$0.02/api/cascade-forecastLiquidation forecast, FORWARD-LOOKING and not a description of what already happened. Returns the probability that a symbol will liquidate more in the NEXT 15 minutes than its own 90th-percentile 15-minute window. Calibrated on our whole multi-venue liquidation tape, over 6 million liquidations, refit every 6 hours; no exchange publishes that history, so it cannot be rebuilt. Every answer carries the exact question, the threshold in USD, the window it read, the number of historical occurrences behind the number, and instructions for settling it yourself from the public feed. When a state has too little history the tool DECLINES rather than guessing, and says why. The settled record is free at /api/forecast-record.

The second moat — our own tokenized-equity peg tape

ToolPriceRouteWhat you get
get_peg_universe$0.05/api/peg-universeTokenized stocks ranked by off-hours peg risk: every tokenized US equity we track, with p95 and max deviation bps, market-open deviation as the control, and median liquidity. Dead pools are excluded rather than reported as perfect pegs.
get_peg_sessions$0.03/api/peg-sessionsTokenized stock peg by trading session: deviation broken out across open, premarket, afterhours, overnight and weekend — mean, p95, max bps and median liquidity each, with the worst off-hours window flagged. Market-open acts as the control.
get_peg_deviation$0.02/api/peg-deviationTokenized stock peg deviation on Solana: the on-chain DEX price of a tokenized US equity versus the underlying's last real trade, in bps, with 24h stats split into market-open and off-hours. Sampled every 5 minutes by our own collector; the token price is read on-chain. latest.reference is null: the underlying's reference price is not returned (its source does not allow redistribution), only the deviation computed from it.

Sampled every 5 minutes. Deviation is measured against the underlying's last real trade — outside US market hours that is the last print before the close, not a live quote. Dead pools are excluded rather than reported as perfect pegs.

The third moat — our own collateral exit-liquidity tape

ToolPriceRouteWhat you get
get_exit_methodfree/api/exit-methodHow the measurement works and the row counts behind every paid answer, computed from the tape at request time
get_exit_quote$0.02/api/exit-quoteEXIT LIQUIDITY on seized collateral: what a liquidator ACTUALLY realises selling a Kamino reserve into live routing, versus the oracle price the protocol marks it at. Returns max_exitable_usd (largest clip whose liquidator margin is still positive, found by bisection, with its resolution width), the exitable fraction, the conservative bound at the 2% penalty floor, and for the nearest clip actually probed: realised USD, haircut bps and liquidator margin bps. Distinguishes a router that REFUSES to quote a token (permissioning, not illiquidity) from a book with no route (a real liquidity finding) - they are different facts and were one status until this split. A terminal verdict requires six consecutive agreeing observations from the symbol's own tape, so a single bad quote cannot produce a finding; withheld verdicts fall back to the last corroborated measurement with its age rather than returning null. Zero bad debt today does not disprove any of this - it means nobody has been forced to test it at size. Method, corroboration rules and row counts are free via get_exit_method.

Live liquidations & cascades

ToolPriceRouteWhat you get
get_recent_liquidations$0.005/api/liquidationsCrypto liquidations, live tape: recent perp liquidation prints across Bybit, OKX and Binance with timestamp, side liquidated, size, price and USD value. Any USDT perp we record, not just majors. The Bybit tape is complete and unthrottled.
get_cascade_alert$0.01/api/cascadeLiquidation cascade detector, live: clustered same-side liquidations happening NOW on SOL, BTC, ETH, XRP and DOGE across venues, with side, USD total, prints, duration and severity. For every perp we record use /api/cascade-scan.
get_cascade_scan$0.05/api/cascade-scanLiquidation cascade scan across EVERY USDT perp we record at once, not just the majors: symbol, side liquidated, USD total, prints, duration, severity. Computed from our own multi-venue liquidation tape.
get_liquidation_leaders$0.02/api/liquidation-leadersLiquidation leaderboard: top symbols by liquidation USD right now across every USDT perp we record on Bybit, OKX and Binance, with long/short split, biggest single print and venue count. What is blowing up, ranked.
get_liquidation_stats$0.01/api/liquidation-statsLiquidation stats, 1h and 24h totals for SOL, BTC, ETH, XRP and DOGE: long vs short USD split, biggest single print, and a per-exchange breakdown across Bybit, OKX and Binance.
get_liq_pulse$0.005/api/liq-pulseUse when an agent needs to know what is being liquidated right now. Returns the last 60 minutes across every USDT perp we record: total USD, long/short split, prints and the top 5 symbols. If our recording is stale it answers 503 and is never billed.
get_liq_feed$0.001/api/liq-feedUse when an agent needs liquidation pressure as it happens. Returns 5-second buckets per symbol of long and short USD liquidated across venues, the dominant side and pressure against the symbol's own baseline, from a gap-free cursor.

Derivatives

ToolPriceRouteWhat you get
get_funding_radar$0.02/api/funding-radarFunding radar over every Hyperliquid perp: 337 on 13 Oct 2026, 178 on the main dex and 159 on the HIP-3 dexes (stocks, indices, commodities, FX). Per perp: the current funding at its 8h equivalent, its 30-day z-score against its own settled history, the dex and asset class, and a flag on any |z| of 2 or more, most extreme first. By default it returns the perps with $10M and up of open interest; min_oi_usd changes that and 0 returns them all. Precomputed every 5 minutes with as_of; a snapshot older than 15 minutes answers 503 and is never billed.
get_market_state$0.02/api/market-stateMarket state for BTC, ETH, SOL or HYPE in one call: spot and the perp's basis against the Hyperliquid oracle, realized vol 7d and 30d, funding with its 30-day z-score, open interest and its changes, the top Hyperliquid accounts' net-long share, liquidations 1h and 24h by side, Fear and Greed, the next FOMC or CPI release, and flags with stated thresholds. Every part carries its source and as-of time; a part we do not hold is null with a reason. When nothing of the market itself could be built it answers 503 and is never billed.
get_funding_extremes$0.02/api/funding-extremesFunding rate extremes across every Hyperliquid perp above a liquidity floor: the most positive and most negative funding with annualized %, 24h price move and open interest. The most crowded trades in the market — crowded shorts are squeeze candidates.
get_open_interest$0.01/api/open-interestOpen interest for ANY Hyperliquid perp: OI in base units and in USD with the mark price, and its 1h and 24h change from our own 5-minute sampler (null until that record reaches back so far). /api/positioning adds the whale net-long share for SOL and BTC.
get_oi_spike_scan$0.02/api/oi-spike-scanOpen interest spikes across every Hyperliquid perp: coins whose open interest moved abnormally in the last hour against their own previous day, with the 1h, 4h and 24h change (in coin units, so a price move does not count), a spike z-score, the price move and funding. Read from our own 5-minute sampler: it answers 503 and is never billed until that record is 24 hours deep.
get_basis$0.01/api/basisPerp basis for any Hyperliquid perp: its mark price against Hyperliquid's oracle price (the validators' weighted median of spot venues), as a premium or discount in %, with a contango or backwardation read and the funding context.
get_volatility$0.01/api/volatilityRealized volatility for any Hyperliquid perp: 7-day and 30-day annualized from daily candles, plus today's range in %. A position-sizing input.
get_funding_history$0.005/api/funding-historyFunding rate history for any Hyperliquid perp, up to 200 hourly settlements: the average rate, its annualized %, the share of intervals that were positive, and the raw series. What the carry has actually been.
get_top_movers$0.01/api/top-moversTop gainers and losers over 24h across every Hyperliquid perp above a liquidity floor, each with its funding rate attached. The "what moved" screener.
get_perp$0.005/api/perpUse when an agent needs one perp market in a single call. Returns Hyperliquid funding and open interest (with 1h/24h change from our 5-minute sampler) and 24h liquidations with long/short split and biggest print from our own tape. A symbol nothing lists answers 400 and a failed read answers 503; neither is ever billed.
get_funding_pulse$0.005/api/funding-pulseUse when an agent needs the most extreme funding rates right now. Returns the 5 largest absolute annualised rates across the Hyperliquid perps above a liquidity floor, each with 8h rate, open interest and 24h price move. One call, not a full screen.

Microstructure

ToolPriceRouteWhat you get
get_orderbook_imbalance$0.01/api/orderbook-imbalanceOrderbook imbalance for any Hyperliquid perp: resting bid and ask liquidity in USD within ±N bps of mid, the ratio between the two sides, and a skew read.
get_orderbook_walls$0.01/api/orderbook-wallsOrderbook walls for any Hyperliquid perp: the largest resting orders on each side of the book, with USD size and distance from mid.

Market & positioning

ToolPriceRouteWhat you get
get_spot$0.001/api/priceUse when an agent needs a spot price without choosing a venue. Returns the on-chain DEX price for SOL, BTC or ETH, the median of deep USDC pools on Solana, Ethereum and Base read from chain state, and the pools that served it. Any other symbol answers 400 with the supported list and is never billed.
get_sol_price$0.001/api/sol-priceSOL price / Solana spot price in USD, live, read on-chain: the median of the two deepest SOL/USDC pools on Solana (Orca Whirlpool, Raydium CLMM), computed from chain state. Returns the price, the read time and the pools that answered.
get_btc_price$0.001/api/btc-priceBTC price / Bitcoin spot price in USD, live, read on-chain: the median of three Uniswap V3 reads on Base and Ethereum (cbBTC/USDC, and cbBTC and WBTC through WETH/USDC), computed from chain state. Returns the price, the read time and the pools that answered.
get_eth_price$0.001/api/eth-priceETH spot price in USD, read on-chain from the two deepest WETH/USDC Uniswap V3 pools, on Ethereum and on Base. Returns their median plus each pool's own price, so a caller can see the spread between chains. Computed from chain state; no exchange feed.
get_funding_rate$0.005/api/funding-rateFunding rate for any Hyperliquid perp: the raw rate, its interval in hours, the 8h equivalent, the annualised rate, next funding time and mark price. Without a symbol: funding rates for the SOL and BTC perps on Hyperliquid, with open interest. The whole table with 30-day z-scores: /api/funding-radar.
get_market_snapshot$0.005/api/market-snapshotCrypto market snapshot in one call: SOL and BTC spot prices read on-chain from DEX pools, both Hyperliquid perp funding rates with mark price and open interest, and the Fear & Greed index with its classification. Five reads, one payment.
get_positioning$0.005/api/positioningPositioning for SOL and BTC perps on Hyperliquid: open interest with its 1h and 24h change, and the net-long share of the top 250 Hyperliquid accounts. For any other Hyperliquid perp use /api/open-interest.
get_trade_context$0.01/api/trade-contextCrypto trading context in one call: SOL and BTC prices read on-chain from DEX pools, perp funding rates, Fear & Greed, positioning (open interest and the top Hyperliquid accounts' net-long share) and 1h/24h liquidation stats. The whole pre-trade picture, one payment.
get_hl_whales$0.02/api/hl-whalesUse when an agent needs to know how the biggest Hyperliquid traders are positioned. Returns the open perp positions of the largest Hyperliquid accounts aggregated per coin: net long or short USD, account counts, size-weighted entries, notional-weighted distance to liquidation, notional within 10% of liquidation and uPnL. With coin=BTC: whale liquidation levels in 5% price bands and the largest positions. Refreshed every 5 minutes; stale data answers 503.

Solana on-chain

ToolPriceRouteWhat you get
get_wallet_holdings$0.008/api/wallet-holdings/{wallet}Solana wallet holdings for any address: native SOL with its USD value at AgentFeed's own on-chain SOL price, every SPL token with mint, symbol and amount (no token prices), and an NFT count. Balances and on-chain metadata via Helius DAS getAssetsByOwner, up to 100 assets.
get_token_metadata$0.005/api/token-metadata/{mint}SPL token metadata for any Solana mint: name, symbol, URI, decimals, total supply, mint and freeze authority, token program, and whether the metadata is still mutable. Read from the mint account and its metadata account.
get_token_risk$0.01/api/token-risk/{mint}Solana token rug check / risk signals for any SPL mint: mint and freeze authority status (revoked is safer), top-1 and top-10 holder concentration, supply, and a list of risk flags. Not a honeypot or LP-lock checker.
get_token_holders$0.02/api/token-holders/{mint}Top holders of any SPL token: per-account share with top-1, top-5 and top-10 concentration for a Solana mint. A deeper cut than the summary in /api/token-risk.
get_wallet_activity$0.02/api/wallet-activity/{wallet}Solana wallet activity: recent transactions for any address, each with the wallet's SOL and token balance changes, the fee, failures and the programs invoked. Read from the chain and summarised by us.
get_priority_fees$0.005/api/priority-feesSolana priority fees right now: percentiles from min to max of the per-slot minimum fee paid on the busiest SOL/USDC pools over the last ~150 slots, in micro-lamports per compute unit, with a recommended level. For bots that need their transactions to land.
get_jito_tips$0.005/api/jito-tipsJito tips sampled on-chain: p25 to p99 in SOL of the newest transfers into Jito's tip accounts, what landed bundles actually paid, refreshed every 15 minutes (the age is in the answer), with a landing recommendation.
get_sol_network$0.005/api/sol-networkSolana network health: recent average TPS, the current slot, the current epoch and epoch progress in %.
get_sol_token_check$0.025/api/sol-token-check/{mint}Use when an agent needs a pre-trade check on a Solana token. Returns mint and freeze authority, Token-2022 traps, top holders, deepest pool and USD depth, the price impact of $100 and $1,000 buys, pump.fun progress, and a verdict with every rule.
get_sol_token_flow$0.008/api/sol-token-flow/{mint}Use when an agent needs to know who is trading a Solana token. Returns the unique traders over its latest swaps, top-5 share of volume, round-trip wallets, share of brand-new buyer wallets and launch-slot bundle size for mints under 7 days.
get_sol_holder_clusters$0.008/api/sol-holder-clusters/{mint}Use when an agent needs to know whether a Solana token's holders are one owner. Returns the account that first funded each of the top 20 wallets, the clusters sharing a funder and their supply share. A shared funder can be an exchange.

Base / EVM

ToolPriceRouteWhat you get
get_base_gas$0.005/api/base-gasBase gas price (chain 8453) in BOTH gwei and wei, with base fee, priority fee and block number when the node supplies them. Both units are returned because a caller asking in wei and a caller asking in gwei are asking the same question. Served from keyless public RPC with three-node fallback, so there is no API key to rotate or expire.
get_base_balance$0.005/api/base-balanceERC20 and native ETH wallet balance on Base or Ethereum mainnet, for a 0x address or an ENS name. decimals() and symbol() are read from the contract at request time rather than assumed, because assuming 18 reports a USDC balance a trillion times too large. ENS is resolved through two independent resolvers and the answer is used only when they agree, so a wrong address can never produce a confident balance for the wrong wallet. An unsupported chain is refused rather than silently answered from the wrong one.

| get_honeypot_check | $0.01 | /api/honeypot-check | Use when an agent needs to know whether a token on Base, BNB Chain or Ethereum can be sold before it buys. Returns a verdict from our own buy-then-sell simulation on the token's deepest pool, with the buy and sell tax measured. Also: whether a wallet transfer works, bytecode flags (mintable, blacklist, proxy, pausable, owner), where simulation and bytecode disagree, and the block. Uniswap, Aerodrome and PancakeSwap pools. No pool found is a finding; RPC failure answers 503. | | get_base_launches | $0.02 | /api/base-launches | Use when an agent needs the newest token launches on Base. Returns pools created on Base in the last 24 hours on Uniswap V4, V3, V2 and Aerodrome, newest first, with launchpad, liquidity and volume. Each carries its pair, creation time, launchpad named from the V4 hook (Zora, Clanker, Doppler, Flaunch), quote-side liquidity, 24h volume and swaps, and our honeypot simulation for the busiest. Read from Base logs every minute; a snapshot older than 5 minutes answers 503. |

Filings, documents & web

ToolPriceRouteWhat you get
get_sec_filings$0.005/api/sec-filingsUse when an agent needs a US company's latest SEC filings. Returns the most recent EDGAR filings for a ticker, optionally one form type (10-K, 10-Q, 8-K, 4, S-1, 13F-HR), with filing date, report date, accession number, description, 8-K item codes and links to the document and the filing index. Source: SEC EDGAR public filings.
get_insider_trades$0.01/api/insider-tradesUse when an agent needs what a company's insiders bought and sold. Returns one row per transaction from the company's recent SEC Form 4 filings: insider, role, transaction code and meaning, shares, price, value, shares owned after and date, plus open-market buy and sale totals for the window. Source: SEC EDGAR Form 4 filings.
get_sec_8k$0.01/api/sec-8kUse when an agent needs the material events US companies disclosed in the last hours. Returns the 8-K filings filed across the market in the window, with company, CIK, filing time, accession number, the 8-K item codes and titles (e.g. 2.02 results, 5.02 officer changes, 1.01 agreements) and a count per item. Source: SEC EDGAR current filings.
get_web_markdown$0.005/api/web-markdownUse when an agent needs the readable text of a web page as markdown. Returns the main content of the one URL you pass as clean markdown (Mozilla Readability, then turndown), with title, final URL, fetch time and word count. http or https on ports 80 and 443, 5 MB, 10 s; robots.txt honoured and private addresses refused. A blocked or unreachable URL is never charged.
get_pdf_markdown$0.01/api/pdf-markdownUse when an agent needs the text of a PDF as markdown. Returns the text of the one PDF URL you pass, page by page as markdown, with title, page count and word count. http or https, 10 MB, 10 s; robots.txt honoured and private addresses refused. A file that is not a PDF, a PDF with no text layer (a scan), or an unreachable URL, is never charged.

Macro

ToolPriceRouteWhat you get
get_macro_calendar$0.005/api/macro-calendarFOMC, CPI, NFP and PCE calendar for traders: the next Fed rate decisions and the CPI, nonfarm payrolls and PCE release dates with UTC times converted from New York time (DST-aware), each with its official Fed, BLS or BEA source URL and the time we verified it. Read daily from the agencies' own pages and never entered by hand; data verified more than 35 days ago answers 503 and is never charged.
get_fx_rates$0.002/api/fx-ratesUse when an agent needs official daily exchange rates. Returns the ECB euro foreign exchange reference rates for about 30 currencies, as published or as crosses for another base, plus Hyperliquid HIP-3 FX and commodity marks. The ECB rates are available free of charge on the ECB's website; they are for information only, not for transactions.

TradFi perps & stocks

ToolPriceRouteWhat you get
get_tradfi_radar$0.02/api/tradfi-radarStock perps, S&P 500, Nasdaq, gold and oil perps ranked by funding rate: every stock, index, commodity and FX perp on the Hyperliquid HIP-3 dexes (trade[XYZ], Paragon, Markets by Kinetiq, Entropy), with funding at its 8h equivalent, a 30-day funding z-score, open interest and its 24h change, mark minus oracle basis and 24h volume. Filter by asset class. Precomputed every 5 minutes; stale data answers 503.
get_equity_24h$0.01/api/equity-24hWeekend price for US stocks: an indicative 24/7 price for a stock or index (TSLA, NVDA, S&P 500, Nasdaq) from stock perps on Hyperliquid and our tokenized stocks DEX price, with the last regular-session price, its time and source, the implied gap in %, each source's liquidity and the session (open, pre, after, overnight, weekend). Indicative, never an exchange quote; 503 when no source has liquidity.
get_tradfi_perps$0.005/api/tradfi-perpsUse when an agent needs a 24/7 price for a stock, index, commodity or currency outside market hours. Returns Hyperliquid HIP-3 perp markets: oracle and mark price, premium, hourly and 8h funding, open interest, 24h change and the dex. With symbol (TSLA, GOLD, EUR or xyz:TSLA): every live market for it. Without: the whole list. Prices are each market's own HIP-3 oracle and mark.

Research, compliance & utilities

ToolPriceRouteWhat you get
get_sanctions_check$0.008/api/sanctions-check/{address}Use when an agent needs to screen a crypto wallet before paying or being paid. Returns an exact match of a Bitcoin, Ethereum, Tron, Solana or other address against the OFAC SDN list, with entry, program and list date. No match is not a clearance.
get_email_verify$0.005/api/email-verifyUse when an agent needs to know whether an email address can plausibly receive mail. Returns syntax, MX, disposable-domain, role-account and free-provider checks with a deliverable_likely, risky or undeliverable verdict and its reasons. No SMTP probe.
get_domain$0.005/api/domain/{domain}Use when an agent needs the basic facts about a domain. Returns its DNS A, AAAA, MX, NS and TXT records and the live TLS certificate: issuer, alternative names, validity dates and days to expiry. Public hosts only; no registrar data.
get_papers$0.015/api/papersUse when an agent needs scholarly papers on a topic. Returns OpenAlex works (CC0 data) for a search: title, year, DOI, authors, venue, citation count and open-access link, up to 25, optionally from a given year. Cached 24 hours.
get_paper$0.005/api/paper/{doi}Use when an agent needs the paper behind a DOI. Returns title, year, authors, venue, citation count, open-access URL and the abstract where OpenAlex holds it (CC0 data). The DOI goes in the path as written, slash included: /api/paper/10.1038/nature14539.
get_wiki$0.005/api/wikiUse when an agent needs a reliable plain-text summary of a topic. Returns the Wikipedia summary and lead section for a page title in any language, with the CC BY-SA 4.0 licence, the article URL and the authors link. Cached 24 hours.
get_qr$0.005/api/qrUse when an agent needs a QR code for a link, address or payment string. Returns an SVG or PNG (base64 and data URI) at error-correction level M, scaled for scanning. Input up to 2 KB; over that is a 400, never billed.
get_hash$0.005/api/hashUse when an agent needs a hash it should not compute itself. Returns SHA-256, Keccak-256 (the Ethereum hash) or BLAKE2b-512 of UTF-8 text or hex bytes, as hex and 0x-hex. Input up to 2 KB; over that is a 400, never billed.
get_time$0.005/api/timeUse when an agent needs an exact time conversion with the right daylight-saving rules. Returns an ISO time or epoch in any IANA time zone: local time with offset, weekday, abbreviation, DST flag and epoch. Defaults to now in UTC.
get_convert$0.005/api/convertUse when an agent needs an exact unit conversion. Returns the value converted between units of length, mass, volume, time, data, speed, area, pressure, energy or temperature, to 12 significant digits. Mixing categories is a 400, never billed.

Sources and their terms: the OFAC SDN list (a US federal government work), the CC0 disposable-email-domains list, DNS and a live TLS handshake, OpenAlex (CC0 data), Wikipedia (CC BY-SA 4.0, attribution in every answer); details in docs/SOURCES.md.

Package, transaction and company checks, and tokenized-treasury yields

Four routes that check something before an agent acts on it. A package version with a published advisory, a transaction before it is signed (simulated with our own RPC; nothing is ever signed or sent), a US-listed company from its SEC filings, and the yield tokenized treasury and credit products have actually realized, computed from the price each issuer's contract publishes. Each one says which source it read; every failure that is not the caller's is a 503 or 404 that is not charged. Sources and terms in docs/SOURCES.md.

ToolPriceRouteWhat you get
get_pkg_check$0.02/api/pkg-checkUse when an agent needs to know if an npm or PyPI version has a published advisory. Returns flagged (any OSV advisory for that exact version), highest severity, advisories, release, scripts, downloads, name-squat flags. 404 or 503: not charged.
get_tx_precheck$0.05/api/tx-precheckUse when an agent needs to see what a Solana or Base transaction does before signing it. Returns simulated balance changes, programs or contracts, approvals, new accounts, token-risk reads and warnings. 503 if it cannot simulate: not charged.
get_company_check$0.25/api/company-checkUse when an agent needs to check a US-listed company. Returns a verdict line and the SEC facts behind it: going-concern language, delisting-notice 8-Ks, overdue reports, insider Form 4 direction. EDGAR down (503) or a foreign filer (404) is not charged.
get_rwa_yields$0.02/api/rwa-yieldsUse when an agent needs the realized 7-day and 30-day yield of tokenized treasury and credit products, computed from issuer on-chain prices. Returns NAV, yields, contract and method. A failed read answers 503, not charged.

Checks on other services, sites and claims

Five routes that look outward: two read the payment challenge of an x402 endpoint you name (one of them also makes a single real payment to it from a dedicated wallet), one checks a claim against filings, Wikipedia and pages you give it, one reads the public signals of a website, one measures what price did after past liquidation cascades on our tape. Every URL you give is fetched only through one guard (private, loopback and metadata addresses refused after DNS, 3 redirects, 5 MB, 10 s). A route that cannot answer returns 503 or 404 with "Not charged" and settles nothing; get_x402_test answers that way while its wallet is unfunded.

ToolPriceRouteWhat you get
get_x402_lint$0.05/api/x402-lintUse when an agent needs to check an x402 endpoint's payment challenge before paying it. Returns a verdict, a 0 to 100 score and 32 checks, paywall bypass included. Never pays. An unreachable endpoint answers 503 and a refused URL 400, neither charged.
get_x402_test$1/api/x402-testUse when an agent needs proof that an x402 endpoint takes a real payment. Returns PASS, FAIL or INCONCLUSIVE with the receipt after paying it once from our own wallet, up to $0.05, in Base or Solana USDC. A 503 or 404 is not charged.
get_claim_check$0.15/api/claim-checkUse when an agent needs a short claim checked against sources. Returns SUPPORTED, CONTRADICTED or INSUFFICIENT, with every supporting line quoted word for word from a filing, Wikipedia article or URL. No readable source answers 404 or 503, not charged.
get_site_signals$0.02/api/site-signalsUse when an agent needs the technical facts of one website. Returns its TLS certificate, DNS records, a security-header grade over 8 checks, tech stack and social links. A bad URL (400) or unreachable site (503) is not charged.
get_cascade_backtest$0.5/api/cascade-backtestUse when an agent needs what price did after past liquidation cascades. Returns a symbol's events with 15 m, 1 h, 4 h and 24 h forward returns, n, mean, median, hit rate, a bootstrap interval and a random-time baseline. Not charged on 400, 404 or 503.

Sources and their terms: the caller's own endpoint or site, SEC EDGAR filings, Wikipedia (CC BY-SA 4.0, licence named in every answer), Hyperliquid 15-minute candles, our own liquidation tape (sums and counts only), DNS and a live TLS handshake; what was left out for data-terms reasons, and why, is in docs/SOURCES.md.

Language tasks (fixed-purpose, Gemini)

ToolPriceRouteWhat you get
get_ocr$0.04/api/ocrUse when an agent needs the text inside an image. Returns the text of a PNG, JPEG, WebP or GIF (5 MB, 4096 px a side) in reading order, as blocks with their line breaks, plus the detected language. It transcribes; it never follows text in the image.
get_summarize$0.02/api/summarizeUse when an agent needs the gist of a web page or PDF. Returns a short or medium summary with key points, and says whether the document was cut at 20,000 tokens and how much was read. Uses only what the document says.
get_extract$0.025/api/extractUse when an agent needs named fields from a page or PDF. Returns JSON for a schema of up to 20 fields (string, number, boolean, date, string[]), with null for anything the document does not state, never an invented value.
get_translate$0.04/api/translateUse when an agent needs text in another language. Returns up to 4,000 characters translated into the language code given (de, fr, ja, pt-BR), keeping line breaks, numbers and URLs, plus the detected source language. It never obeys the text.
get_classify$0.005/api/classifyUse when an agent needs text sorted into its own categories. Returns a score per label that sums to 1 and the best label, for up to 4,000 characters and 2 to 20 labels. Labels are names, never instructions. Cached 24 hours.
get_injection_check$0.004/api/injection-checkUse when an agent needs untrusted text screened for prompt-injection attempts. Returns no_injection_found, suspicious or malicious for up to 4,000 characters, with the matched rules (role tags, hidden Unicode, encoded payloads) and a model's view.
get_transcribe$0.02/api/transcribeUse when an agent needs the words in an audio file. Returns the text, timed segments and the spoken language for mp3, wav, m4a, ogg or webm audio (10 MB, 5 minutes, checked from the file). Cached 24 hours by the audio itself.

Each one is a single fixed task on Google's Gemini API (paid tier): the caller supplies content, never a prompt, model or setting. Untrusted content travels as delimited data, every output is schema-checked, and a provider failure is a 503 that is never billed. These seven are available only to callers inside Google's available regions: elsewhere they answer 451 before any payment.

Signals for trading bots

ToolPriceRouteWhat you get
get_signal_board$0.01/api/signal-boardThe Hyperliquid perp market in one table, ranked by open interest: price change, funding, OI and its change, last-hour liquidations with a z-score against the coin's own 7 days, whale net position and tilt, and the flags crowded_long, crowded_short, squeeze_risk, liq_spike (rules in the description). Poll every 1-5 minutes.
get_coin_signal$0.004/api/coin-signal/{coin}The same row for one coin plus the 15-minute cascade probability, the nearest liquidation clusters above and below price and the top 3 whale positions.

Both read only data this service records itself (the Hyperliquid OI sampler, the liquidation tape, the whale snapshot) and name every source with its as_of; a stale source answers 503 and is never billed. With a prepaid key they cost $0.005 and $0.002.

Liquidation pressure feed for bots

GET /api/liq-feed is cross-venue liquidation pressure, computed by AgentFeed from its own liquidation recording and served the way a bot polls: 5-second buckets, a cursor that never skips and never repeats, and a floor price.

  • What a row is. One row per symbol per closed 5-second bucket that held a liquidation: longs and shorts (USD, base quantity and VWAP of the long and the short positions liquidated, all venues combined into one figure), dominant (longs, shorts or balanced: the side holding at least 60% of the bucket) and pressure (the bucket's USD against the symbol's own typical USD per 5 seconds, its median hour of the last 7 days floored at $5,000 an hour). Numbers are rounded to 2 significant figures (3 for the VWAP) and no count of prints is returned.
  • The cursor. Send since=<ms> once (up to 24 h back; without it the first call begins 2 minutes back), then send each answer's next back unchanged. A bucket is served only after it has been closed for 10 seconds, every closed bucket is served exactly once, and has_more tells you to ask again at once. Up to 20 symbols and 500 rows a call (symbols=BTC,ETH,SOL, or BTC-USDT style).
  • What it costs a bot. $0.001 a call over x402, $0.0005 on a prepaid key. One call every 5 seconds (one bucket) per caller, an x402 payer or a prepaid key, and every 10 seconds for a pass key (a refused poll is a 429 with Retry-After, never billed; a call that follows an answer saying has_more is exempt). A key has the same single clock over REST and over the MCP tool get_liq_feed; an x402 payer is keyed by IP over REST and by paying wallet over MCP. The horizon moves in 5-second steps, so a call sooner than that could not carry a new bucket. At the 5-second floor that is 17,280 calls and $8.64 a day on a key; at a 30-second poll 2,880 calls and $1.44 a day; at 60 seconds, $0.72. A bot pass ($25 flat for 30 days, this route only) is $0.83 a day at any poll rate.
bash
curl -s -H "X-AgentFeed-Key: $AGENTFEED_KEY" \  "https://x402.ochinimus.app/api/liq-feed?symbols=BTC,ETH,SOL&since=$(( $(date +%s) * 1000 - 300000 ))"

Free tasters

Seven, of which four have an HTTP route — those four are the ones published at / under free_tools. The other three are MCP-only and have no paid HTTP equivalent to undercut.

ToolRoute
get_fear_greed/api/fear-greed
get_last_liquidation/api/last-liquidation (15-min delayed)
get_exit_method/api/exit-method
get_cascade_forecast_freeMCP only — full-quality SOL liquidation forecast, nothing withheld
get_forecast_questionMCP only — what the forecast answers and how to settle it yourself
get_forecast_record/api/forecast-record — live settled track record with the raw rows
pricingMCP only — lists everything with live prices

Two more free HTTP endpoints carry no tool of their own:

EndpointWhat you get
GET /api/sampleLists every paid route that has a stored sample response
GET /api/sample/liq-pulse(liq-pulse is an example: any route name from GET /api/sample works) The real captured response for one of the paid routes — the same example its Bazaar listing carries — with its price, input schema and paid URL. See what a route returns before paying for it.

A free route answers "paid": false, and a paid one "paid": true, because that field is per-request: it reports whether the route you called is priced. curling either of the two above costs nothing and says so.

Use it from an elizaOS agent

bash
npm i @seekdaseek/plugin-agentfeed   # one action per data route; the current version is on npm

Set AGENTFEED_PRIVATE_KEY to a funded Solana wallet and the agent pays per call automatically. Default spend cap $0.50/call (AGENTFEED_MAX_SPEND_PER_CALL to change).

Try it free right now

bash
curl https://x402.ochinimus.app/api/fear-greed       # "paid": false — it really is freecurl https://x402.ochinimus.app/api/last-liquidationcurl https://x402.ochinimus.app/api/exit-methodcurl https://x402.ochinimus.app/                    # full pricing index + live coveragecurl https://x402.ochinimus.app/api/cascade-scan    # returns 402 + payment terms

x402 clients pay and retry automatically.

Prepaid keys (for bots that cannot pay x402)

A bot that can set an HTTP header but cannot sign an x402 payment (n8n, Freqtrade, Hummingbot, a plain script, a gateway such as claw402) buys a key once and spends it per call.

  • Buy once, with any x402 client, on any exact rail the route offers: GET /api/keys/buy-trial ($0.25), buy-1, buy-5, buy-20. Top up with topup-5 or topup-20, sending the key as the header. Or in a browser at /keys with a Base wallet: the page loads no library and sends nothing but the key's hash.
  • Spend per call: send X-AgentFeed-Key: afk_... (or Authorization: Bearer afk_...) on any paid GET or on POST /mcp. Each call draws half the route's x402 price, minimum $0.0005, from the balance; a 400, 404, 500 or 503 is never drawn. 120 requests per minute per key.
  • Bring your own key: generate afk_ + base58 of 32 random bytes yourself and buy with ?key_hash=<sha256 hex>&prefix=<8 characters after afk_>; the server registers the hash and never sees the key, and a dropped connection after payment loses nothing. Without key_hash the server generates the key and returns it once.
  • Bot pass: GET /api/keys/buy-pass ($25) is a different kind of key for a bot that polls /api/liq-feed all day: valid for 30 days from the moment its payment settles, good only on /api/liq-feed (and the MCP tool get_liq_feed), nothing drawn per call, still one call per 10 seconds. Every other route answers 403 to it, it cannot be topped up, and GET /api/keys/balance shows its routes and expiry. At a 30-second poll it costs $0.83 a day, against $1.44 a day on an ordinary key.
  • Day pass: GET /api/keys/buy-day-pass is $1.00 flat for 24 hours from the moment its payment settles, good only on /api/liq-feed and /api/liquidations, nothing drawn per call, each of the two routes one call every 10 seconds per key (6 a minute; a call inside the 10 seconds is a 429 with Retry-After, never billed). It is the pass a default x402 client can buy as it is: @x402/fetch 2.28 refuses any payment over $1 before signing and accepts exactly $1.00 (measured), so the $5 and $20 packs and the $25 bot pass need spendControls raised and this one does not. Every other route answers 403 to it, it cannot be topped up, and GET /api/keys/balance shows its routes, expiry and hours left. Also in the browser at /keys.
  • Signals pass: GET /api/keys/buy-signals-pass ($25) is one flat key for the briefs and the perp signal routes, valid for 30 days from the moment its payment settles, and GET /api/keys/buy-signals-day-pass is $1.00 flat for 24 hours: good only on /api/morning-brief, /api/move-alert, /api/anomaly-flag, /api/market-state, /api/signal-board, /api/coin-signal/:coin, /api/oi-spike-scan, /api/liq-heatmap (and their MCP tools), nothing drawn per call, each route one call every 60 seconds per key (a call inside that is a 429 with Retry-After, never billed; /api/coin-signal/:coin keeps one clock for every coin, so read several coins at once with /api/signal-board?coins=BTC,ETH,SOL). For an agent that runs on a schedule with nobody to approve a payment: the key goes in X-AgentFeed-Key from an environment variable. Every other route answers 403 and names the covered ones, an expired pass 401. Non-refundable, no top-up, a bearer secret; the stock x402 client's $1 spend cap buys the day pass as is.
  • Balance: GET /api/keys/balance with the header, free.
  • Terms: a prepaid balance is usage credit, non-refundable, with no expiry (a bot pass is a flat price, non-refundable, valid for 30 days, and the day pass the same for 24 hours; the brief passes follow the same terms); the key is a bearer secret (anyone holding it spends the balance); abuse means revocation. Purchase routes offer the exact accepts only, because credit bought through the half-price batch or Gateway tier would be a free 50%.
  • In the books: a purchase is a settled payment (status paid); the calls it funds are rows of status key, consumption of credit already counted, never revenue.

No wallet? Use Apify Store

Five AgentFeed data sets are also Apify Store actors. The Store bills in fiat through Apify, so no wallet is needed.

ActorReturnsPrice
Crypto Liquidation Heatmap & Map: real Hyperliquid positionsLiquidation levels in 5% price bands from the open positions of the largest Hyperliquid accounts$0.008 per coin
Scholarly Paper Search: OpenAlex, Google Scholar alternativePapers from OpenAlex's CC0 data, by search or DOI$0.003 per paper
US Company Filings by Ticker: 10-K, 10-Q, 8-K, Form 4Recent public filings from the SEC's EDGAR system, per ticker$0.002 per filing
PDF to Markdown: clean text from any PDF URLThe text of a PDF as markdown, page by page$0.01 per PDF
AI Data Extractor: web page or PDF to JSON by your schemaStructured JSON from a web page or PDF, for the fields you name; a field the page does not state is null$0.02 per page

Prices are per result, plus Apify's $0.00005 start fee per run.

Use AgentFeed in NOFX

NOFX is an open-source AI trading terminal. get_signal_board and get_coin_signal are shaped for its External Data Sources: data.coins is an object keyed by coin in open-interest order, data.ranked is the list, data.sources names each source, and the board is about 10 KB for 30 coins. Read this first: at NOFX commit ef476f2 nothing calls the function that fetches External Data Sources (StrategyEngine.FetchExternalData), so stock NOFX saves the two entries and never reads them into a prompt; they work on a NOFX build that calls it, and the same key works from anything else that sends a header. docs/nofx.md (中文) has the exact strategy JSON, how to buy a key from the wallet NOFX already pays claw402 with, the cost per trader (about $0.48 a day for the board and $0.19 a day per coin at NOFX's default 15-minute scan) and the proof harness that replays NOFX's fetch and data_path walk against the live routes.

Pay for a call

Copy payTo only from a fresh 402 response, never from transaction history. On 2026-07-31 a lookalike of the Base treasury (same first and last characters as 0x22DB…76e6) sent zero-value address-poisoning transfers to our biggest buyer, so a wallet's history can show a fake payee next to the real one.

x402 — the client that ships in this repo

test-client.mjs is the repo's own Solana x402 payer: @x402/svm's ExactSvmScheme behind wrapFetchWithPaymentFromConfig, reading a standard solana-keygen 64-byte JSON keypair.

bash
node test-client.mjs https://x402.ochinimus.app/api/sol-price ./payer-wallet.json

test-client-evm.mjs is the same thing over Base (eip155:8453) with a viem account, and test-mcp-client.mjs pays MCP tool calls over Streamable HTTP. Settlements land in the audit table with the payer and the transaction signature; the last run of this client from the project's own payer GBFoGJXvLsgBXAKJw9cGK18BGxaevpYtAyQKoqgcSQKz settled 4ixeZSHSYcBcx5PhRDvPbLwMY2Vgj24FPkjnCaBkewhfcva2kHj32suXv7UE2M4NGsh4q31yGJRqx5nvqbBLNxvD.

MPP — the Foundation's pay CLI

bash
pay --mainnet --mpp --account <account> curl -s https://x402.ochinimus.app/api/btc-price

Two MPP payments settled against this service on 2026-09-19, at 21:53:39 and 21:57:36 UTC, and both signatures are recorded in the replay store so neither can be spent twice.

The pay CLI needs an interactive session. An account with auth_required: true blocks on a Touch ID prompt that cannot render in CI, a headless agent or a scheduled task, and it blocks without a timeout — it looks exactly like a network hang while holding zero TCP sockets. That is solana-foundation/pay #469. Run it from a real GUI session, or use an account without auth_required.

MCP quickstart

Point any MCP client at https://x402.ochinimus.app/mcp (Streamable HTTP, POST). Paid tools return payment terms; an x402-capable client settles and retries.

createx402MCPClient is exported by the published @x402/mcp (checked against the npm tarball, 2.27.0, 2026-09-23). This is what test-mcp-client.mjs in this repo actually does:

js
import { createx402MCPClient } from '@x402/mcp';import { ExactSvmScheme } from '@x402/svm/exact/client';import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
const client = createx402MCPClient({  name: 'agentfeed-test',  version: '1.0.0',  schemes: [{ network: 'solana:*', client: new ExactSvmScheme(signer) }],  autoPayment: true,});
await client.connect(new StreamableHTTPClientTransport(new URL('https://x402.ochinimus.app/mcp')));const { tools } = await client.listTools();const result = await client.callTool('get_sol_price', {});   // pays and retries

Also available as an elizaOS plugin.


Configuration

Every variable the service reads, derived from the source (grep -rhoE "process\.env\.[A-Z0-9_]+"). Only HELIUS_API_KEY, PAY_TO and — when MPP is on — MPP_SECRET_KEY have no working default.

VariableDefaultNotes
PORT3006
HELIUS_API_KEY—required; builds the primary Solana RPC URL (chain state only, no DAS). If Helius is out of credits or down, calls move to RPC_FALLBACKS (below)
HELIUS_RPChttps://mainnet.helius-rpc.com/?api-key=$HELIUS_API_KEY
SOLANA_RPC_URLHelius, from HELIUS_API_KEYthe PRIMARY standard-RPC endpoint for every Solana read: on-chain spot, the peg tape, token and wallet routes (lib/solrpc.js)
RPC_FALLBACKShttps://api.mainnet-beta.solana.comcomma list of https URLs (empty = none). On HTTP 429, 402, 403, 5xx, a dropped connection or a timeout from the primary the same call goes to the next URL, and the primary is left alone for 10 minutes. No endpoint answering is a 503 (not charged), never a stale or partial paid answer. A devnet or testnet primary gets no fallbacks. One rpc_usage line every 10 minutes counts calls per method and host (hosts only, never a key). A keyed provider belongs first in this list (RPC_FALLBACKS=https://<provider>/<key>,https://api.mainnet-beta.solana.com): getTokenLargestAccounts, which token-risk, token-holders, sol-token-check, sol-token-flow and sol-holder-clusters need, is refused by the public RPC with HTTP 429 at any load (measured 30 Oct 2026), so it is never sent there (RPC_HEAVY_SKIP) and with no keyed provider those five routes answer 503, not charged. ops/add-rpc-fallback.sh adds a provider from one command
RPC_PROGRAM_SKIPthe two Solana Labs public hosts and solana-mainnet.g.alchemy.comhosts never asked getProgramAccounts (pool discovery of sol-token-check, sol-token-flow, sol-holder-clusters). The public RPC refuses it; Alchemy's Free plan answers one such call on an idle app with HTTP 429 "exceeded its compute units per second capacity" (measured 30 Oct 2026), and the helper rests a host for ten minutes on any 429, so the call would take the keyed provider out for every other method. Those three routes therefore need Helius (or a plan that serves it: set the variable empty) and answer 503, not charged, without it
RPC_CUPS240 for hosts ending alchemy.com, nothing elsea per-host compute-unit budget per second, host=cu,host=cu or off (lib/rpc-throttle.js). Each request is priced at Alchemy's published weights (getAccountInfo 10, getTokenLargestAccounts 20, getTransaction 40; unlisted 20); one second never carries more than the budget (so no ten seconds carry more than ten times it). A request over the budget waits up to RPC_THROTTLE_MAX_WAIT_MS (8000), then is answered locally as a 503, not charged, without being sent and without resting the provider
RPC_HEAVY_SKIPapi.mainnet-beta.solana.com,api.mainnet.solana.comcomma list of hosts (or host:port) that are never asked a heavy method (lib/rpc-heavy.js: today only getTokenLargestAccounts). Empty = skip none. Heavy answers are cached 90 seconds per mint and concurrent identical calls share one upstream call
JITO_RPC_PRIMARY, JITO_RPC_FALLBACKSthe public mainnet RPC; the primary abovethe Jito tip collector (bin/jito-tips-collect.js, every 15 minutes) reads from the free public RPC first and uses Helius only as its fallback
PENSIO_NEWSunset (off)on registers GET /api/news-brief (SEC, CFTC and Federal Reserve Board press releases, classified once by the language-model path of the other model routes) and adds it to the brief passes. Off, the route is in no table. The collector bin/news-collect.js writes news.json (NEWS_SNAPSHOT) and is installed by the owner, not by the server
BRIEF_CALIBRATION, NEWS_SNAPSHOT, NEWS_LABELStools/briefs/calibration.json, news.json, data/news-labels.jsonthe per-coin move tails behind GET /api/move-alert (built by bin/brief-calibrate.js from Hyperliquid candles; refused when older than 45 days), the news snapshot and the kept news labels
X402_MODEonoff serves every route free
X402_NETWORK—required when X402_MODE is on: mainnet in production, devnet for tests; boot fails without it
PAY_TO—required; Solana treasury that receives USDC
PAY_TO_EVM—EVM treasury for every EVM rail; unset drops every EVM rail from the challenge
X402_EVM_NETWORKSunset (all)comma-separated CAIP-2 ids to narrow the original EVM rails (Base, Polygon, Arbitrum, Arc), e.g. eip155:8453 for Base only; the R10 networks are narrowed by X402_EXT_NETWORKS
X402_EXT_NETWORKSunset (all)comma-separated CAIP-2 ids to narrow the R10 networks (lib/ext-rails.js); X402_EXT=off removes all of them, X402_ULTRAVIOLETA=off and X402_PAYAI=off remove one facilitator's rows
FACILITATOR_URL—required when X402_MODE is on; boot fails without it. Production uses the CDP facilitator, https://api.cdp.coinbase.com/platform/v2/x402
MPP_ENABLEDunset (off)true mounts the solana/charge layer
MPP_SECRET_KEY—required when MPP_ENABLED=true; must be 32 characters or longer — mppx HMAC-binds the challenge id so verification is stateless, and init refuses anything shorter
MPP_NETWORKmainnet
MPP_REALMx402.ochinimus.appthe realm in the WWW-Authenticate challenge
MPP_RPC_URLHelius, from HELIUS_API_KEY
LIQ_DB/opt/agentfeed/liquidations.dbthe liquidation tape (read-only)
PEGWATCH_DB/opt/pegwatch/pegwatch.dbtokenized-equity peg tape before our cutover, and its reference (read-only)
PEG_ONCHAIN_DBpeg-onchain.db alongside the sourceour on-chain peg tape, written by bin/peg-collect.js
JITO_TIPS_FILEjito-tips.json alongside the sourcethe on-chain Jito tip sample, written by bin/jito-tips-collect.js
OVERHANG_DB_PATH/opt/overhang/overhang.dbcollateral exit-liquidity tape (read-only)
CALIPER_DIR/opt/caliperforecast model directory
CALIPER_MODEL$CALIPER_DIR/model.json
CALIPER_RECORD_DB$CALIPER_DIR/record.db
CALIPER_LIQ_DB/opt/agentfeed/liquidations.db
TELEGRAPH_LOGalongside the sourcerequest-shape log
BYBIT_WS BYBIT_API BYBIT_MAX_SYMBOLSBybit public, the liquidation tape only (no route reads Bybit market data since R7)1000 symbol cap
OKX_WS OKX_APIOKX public, the liquidation tape only (no route reads OKX market data since R6)
BINANCE_WSBinance public, the liquidation tape only (no route reads Binance market data since R6)
HL_APIhttps://api.hyperliquid.xyz/info
BASE_RPChttps://mainnet.base.org

DB_PATH, SIGNATURE, VERIFY_DELAY_MS, HOME and PATH appear only in the MPP test harness (mpp/test/helpers/) and are not service configuration.

Tests

bash
npm installcd mpp && npm install && cd ..    # separate tree: mppx pins express>=5, this service is express 4
node --test test/tool.test.js     # 10 tests — the route wrapper and the `paid` flagnode --test mpp/test/*.js         # 40 tests — MPP conformance, offline, every RPC call stubbed

Neither package.json declares a test script; the commands above are the ones the test files themselves document.

test/tool.test.js mounts the real wrapper from lib/tool.js — the same module server.js mounts, not a copy — on a throwaway express app over a real socket, so req.route is populated exactly as in production. It covers a priced route, a path-parameter route (which is what proves the flag matches on the registered pattern and not the request URL), an unpriced route that is nonetheless registered with a price argument, X402_MODE=off, the audit row's field set on success / error / bad_request, and prototype pollution through req.route.path.

Two of the MPP tests fork real worker processes to race the replay store across process boundaries rather than simulating the race in one event loop.


Free dataset

A multi-venue liquidation dataset — normalized, growing daily, free — ships with a full quality statement covering coverage dates, known gaps, exchange throttles, and field definitions: ochinimuse.gumroad.com/l/liqdata

Read DATASET_QUALITY.md before you use it. It tells you exactly where the data is wrong.


Links

MCP Registry · Smithery · x402 manifest · ochinimus

Source: README.md at commit c439d5d

Tools

102

get_liq_pulse

Liquidation pulse

Use when an agent needs to know what is being liquidated right now. Returns the last 60 minutes across every USDT perp we record: total USD, long/short split, prints and the top 5 symbols. If our recording is stale it answers 503 and is never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_perp

Perp snapshot

Use when an agent needs one perp market in a single call. Returns Hyperliquid funding and open interest (with 1h/24h change from our 5-minute sampler) and 24h liquidations with long/short split and biggest print from our own tape. A symbol nothing lists answers 400 and a failed read answers 503; neither is ever billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_funding_pulse

Funding pulse

Use when an agent needs the most extreme funding rates right now. Returns the 5 largest absolute annualised rates across the Hyperliquid perps above a liquidity floor, each with 8h rate, open interest and 24h price move. One call, not a full screen. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_liquidation_leaders

Liquidation leaderboard

What is blowing up RIGHT NOW: top symbols ranked by liquidation USD across every USDT perp we record on Bybit, OKX and Binance. Per symbol: total liquidated, long vs short split, biggest single print, venue count, dominant side. The fastest read on where leverage is being flushed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitwindow_min

get_cascade_scan

Full universe cascade scan

Liquidation cascade scan across EVERY USDT perp we record at once, not just the majors: symbol, side liquidated, USD total, prints, duration, severity. Computed from our own multi-venue liquidation tape. Costs 0.05 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterswindowmin_usdmin_events

get_liq_heatmap

Liquidation heatmap

Liquidation heatmap by PRICE LEVEL: where leverage actually got flushed in the last N hours — USD, prints and long/short split per price zone, with the hottest zone flagged. Built from real liquidation prints, not entry-price estimates. BTC, ETH, SOL, HYPE or any other USDT perp on our multi-venue liquidation tape. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametershourssymbolbuckets

get_squeeze_score

Squeeze score

Short squeeze score and long flush score, 0-100, for any Hyperliquid perp. Composite of Hyperliquid funding (35), whale crowding (25: the net-long share of the top 250 Hyperliquid accounts in the coin, not retail), the 24h open-interest build from our own 5-minute sampler (20) and liquidation skew from our own tape (20). One number for whether a trade is crowded and about to hurt someone. A symbol nothing lists answers 400; while the open-interest record is under 24 hours deep, or Hyperliquid or the whale snapshot is unavailable, it answers 503; both are never billed. A listed coin none of the top 250 accounts holds returns 200 with a decline naming the missing input. Costs 0.1 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_cascade_forecast_free

Free cascade forecast

FREE taster: the full-quality liquidation forecast for SOL, no delay and nothing withheld. Use it to check the calibration before paying for coverage of the other ~345 symbols. Free.

Takes no parameters.

get_forecast_record

Forecast track record

FREE: the live track record of this miner. Every forecast was written down BEFORE its 15-minute window opened and settled afterwards from the exchange public feed, and the raw rows are returned alongside the score so you can recompute it yourself rather than take it on trust. Returns settled count, base rate, Brier skill against climatology, coverage, calibration error and a reliability curve. A backtest is a claim about the past that its author also chose how to compute; this is not that. Free.

Parametersrowssymbol

get_cascade_forecast

Liquidation cascade forecast

Liquidation forecast, FORWARD-LOOKING and not a description of what already happened. Returns the probability that a symbol will liquidate more in the NEXT 15 minutes than its own 90th-percentile 15-minute window. Calibrated on our whole multi-venue liquidation tape, over 6 million liquidations, refit every 6 hours; no exchange publishes that history, so it cannot be rebuilt. Every answer carries the exact question, the threshold in USD, the window it read, the number of historical occurrences behind the number, and instructions for settling it yourself from the public feed. When a state has too little history the tool DECLINES rather than guessing, and says why. The settled record is free at /api/forecast-record. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbolsymbols

get_open_interest

Open interest

Open interest for ANY Hyperliquid perp: OI in base units and in USD with the mark price, and its 1h and 24h change from our own 5-minute sampler (null until that record reaches back so far). /api/positioning adds the whale net-long share for SOL and BTC. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_funding_rate

Perp funding rate

Funding rate for any Hyperliquid perp: raw rate, interval hours, 8h equivalent, annualised rate, next funding time and mark price. Without a symbol, SOL and BTC from Hyperliquid with open interest. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_sol_price

SOL spot price

Live SOL/USD spot price read on-chain: the median of the two deepest SOL/USDC pools on Solana (Orca Whirlpool, Raydium CLMM). confidence is null: a pool publishes none. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_btc_price

BTC spot price

Live BTC/USD spot price read on-chain: the median of three Uniswap V3 reads on Base and Ethereum (cbBTC/USDC, cbBTC and WBTC through WETH/USDC). confidence is null: a pool publishes none. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_fear_greed

Fear and Greed index

Crypto Fear & Greed index (0-100) with classification. Free.

Takes no parameters.

get_market_snapshot

Market snapshot

SOL+BTC prices, funding rates, and Fear & Greed in one call. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_wallet_holdings

Solana wallet holdings

Solana wallet holdings: native SOL with its USD value at AgentFeed's own on-chain SOL price, SPL tokens with mint, symbol and amount (no token prices), NFT count (Helius DAS balances). Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterswalletrequired

get_token_metadata

SPL token metadata

SPL token metadata: name, symbol, URI, decimals, supply, mint and freeze authority, mutability. Read from the mint account and its metadata account. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersmintrequired

get_recent_liquidations

Recent liquidations

Recent perp liquidations across Bybit (complete unthrottled tape), OKX and Binance: timestamp, long/short, size, price, USD value. Any USDT perp we record, not just majors. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitscopesymbolmin_usd

get_cascade_alert

Liquidation cascade alert

Liquidation cascade detector for the 5 majors (SOL, BTC, ETH, XRP, DOGE): returns cascades active NOW - clustered same-side liquidations with symbol, side, USD total, prints, duration, severity (minor/major/extreme). Empty cascades array = no cascade in window. For every USDT perp we record across 3 exchanges, use get_cascade_scan. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterswindowmin_usdmin_events

get_forecast_question

Forecast question spec

FREE: the exact question the forecast answers, machine readable, plus how to settle it yourself from the public exchange feed and the full list of covered symbols. Read this before building on the forecast. Free.

Takes no parameters.

get_liquidation_stats

Liquidation stats

Liquidation aggregates for the 5 majors (SOL, BTC, ETH, XRP, DOGE): 1h and 24h totals, longs vs shorts USD split, biggest print, broken out per exchange. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_last_liquidation

Last liquidation

FREE taster: last liquidation for SOL, BTC, ETH, XRP and DOGE (15-min delayed). Real-time via get_recent_liquidations. Free.

Takes no parameters.

get_positioning

SOL and BTC positioning

SOL+BTC positioning on Hyperliquid: open interest with 1h/24h change and the top 250 accounts' net-long share (whale crowding). Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_trade_context

Trade context

Full market state in one call: SOL+BTC prices, funding, Fear & Greed, positioning (open interest and whale net-long share), and liquidation stats. The complete pre-trade picture. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_token_risk

Token rug check

SPL token rug-risk signals: mint/freeze authority status (revoked = safer), top-1/top-10 holder concentration, and risk flags. Not a honeypot/LP-lock checker. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersmintrequired

get_exit_method

Exit liquidity method

FREE: how overhang measures exit liquidity on lending collateral, and the counts behind every paid answer - computed from the tape at request time, nothing hardcoded. Returns what is measured (the protocol's own live-refetched mark vs realisable value from sell-direction quotes at real clip sizes), the corroboration rule in plain terms (a terminal verdict needs six consecutive agreeing floor observations from the symbol's own tape; one sample is never enough; a contradicted floor buys a fresh probe rather than writing a hole), the full status vocabulary including why a router refusal and an empty book are different facts, the size-matched control design and its results, the gated sweep and row counts, covered symbols and markets, and the measured cadence. Read this before paying for get_exit_quote, and to check the claim rather than trust it. Free.

Takes no parameters.

get_liq_history

Liquidation history

Liquidation history, time-bucketed: total, long and short USD, prints and biggest print per bucket, for any USDT perp or the whole recorded universe, up to 7 days back. Bybit is the only complete liq tape in crypto and no exchange publishes history of it. Costs 0.05 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametershoursscopesymbolbucket_min

get_cascade_history

Cascade history

Liquidation cascade history: past clustered same-side flush events reconstructed from our own tape, with start and end, prints, USD total and peak print, up to 72h back. /api/cascade tells you what is happening NOW; this tells you what already happened. Costs 0.03 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersgap_shoursscopesymbolmin_usd

get_venue_liq_share

Liquidations by venue

Liquidations by exchange: per-venue liquidation share across Bybit, OKX and Binance with long/short split and biggest print, for any symbol or the whole recorded universe. Which venue is flushing whom. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametershourssymbol

get_funding_extremes

Funding extremes

Funding rate extremes across every Hyperliquid perp above a liquidity floor: the most positive and most negative funding with annualized %, 24h price move and open interest. The most crowded trades in the market — crowded shorts are squeeze candidates. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitmin_turnover_usd

get_funding_radar

Funding radar

Funding radar over every Hyperliquid perp: 337 on 13 Oct 2026, 178 on the main dex and 159 on the HIP-3 dexes (stocks, indices, commodities, FX). Per perp: the current funding at its 8h equivalent, its 30-day z-score against its own settled history, the dex and asset class, and a flag on any |z| of 2 or more, most extreme first. By default it returns the perps with $10M and up of open interest; min_oi_usd changes that and 0 returns them all. Precomputed every 5 minutes with as_of; a snapshot older than 15 minutes answers 503 and is never billed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstopmin_oi_usd

get_market_state

Market state

Market state for BTC, ETH, SOL or HYPE in one call: spot and the perp's basis against the Hyperliquid oracle, realized vol 7d and 30d, funding with its 30-day z-score, open interest and its changes, the top Hyperliquid accounts' net-long share, liquidations 1h and 24h by side, Fear and Greed, the next FOMC or CPI release, and flags with stated thresholds. Every part carries its source and as-of time; a part we do not hold is null with a reason. When nothing of the market itself could be built it answers 503 and is never billed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_macro_calendar

Macro calendar

FOMC, CPI, NFP and PCE calendar for traders: the next Fed rate decisions and the CPI, nonfarm payrolls and PCE release dates with UTC times converted from New York time (DST-aware), each with its official Fed, BLS or BEA source URL and the time we verified it. Read daily from the agencies' own pages and never entered by hand; data verified more than 35 days ago answers 503 and is never charged. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdaystype

get_tradfi_radar

TradFi perps radar

Stock perps, S&P 500, Nasdaq, gold and oil perps ranked by funding rate: every stock, index, commodity and FX perp on the Hyperliquid HIP-3 dexes (trade[XYZ], Paragon, Markets by Kinetiq, Entropy), with funding at its 8h equivalent, a 30-day funding z-score, open interest and its 24h change, mark minus oracle basis and 24h volume. Filter by asset class. Precomputed every 5 minutes; stale data answers 503. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstopclassmin_oi_usd

get_equity_24h

Equity 24/7 price

Weekend price for US stocks: an indicative 24/7 price for a stock or index (TSLA, NVDA, S&P 500, Nasdaq) from stock perps on Hyperliquid and our tokenized stocks DEX price, with the last regular-session price, its time and source, the implied gap in %, each source's liquidity and the session (open, pre, after, overnight, weekend). Indicative, never an exchange quote; 503 when no source has liquidity. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbolrequired

get_oi_spike_scan

Open interest spikes

Open interest spikes across every Hyperliquid perp: coins whose open interest moved abnormally in the last hour against their own previous day, with the 1h, 4h and 24h change (in coin units, so a price move does not count), a spike z-score, the price move and funding. Read from our own 5-minute sampler: it answers 503 and is never billed until that record is 24 hours deep. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimit

get_basis

Perp basis vs oracle

Perp basis for any Hyperliquid perp: its mark price against Hyperliquid's oracle price (the validators' weighted median of spot venues), as a premium or discount in %, with a contango or backwardation read and the funding context. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_volatility

Realized volatility

Realized volatility for any Hyperliquid perp: 7-day and 30-day annualized from daily candles, plus today's range in %. A position-sizing input. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_funding_history

Funding history

Funding rate history for any Hyperliquid perp, up to 200 hourly settlements: the average rate, its annualized %, the share of intervals that were positive, and the raw series. What the carry has actually been. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitsymbol

get_top_movers

Top movers

Top gainers and losers over 24h across every Hyperliquid perp above a liquidity floor, each with its funding rate attached. The "what moved" screener. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitmin_turnover_usd

get_orderbook_imbalance

Orderbook imbalance

Orderbook imbalance for any Hyperliquid perp: resting bid and ask liquidity in USD within ±N bps of mid, the ratio between the two sides, and a skew read. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersbpssymbol

get_orderbook_walls

Orderbook walls

Orderbook walls for any Hyperliquid perp: the largest resting orders on each side of the book, with USD size and distance from mid. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstopsymbol

get_token_holders

Top token holders

Top holders of any SPL token: per-account share with top-1, top-5 and top-10 concentration for a Solana mint. A deeper cut than the summary in /api/token-risk. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersmintrequired

get_wallet_activity

Solana wallet activity

Solana wallet activity: recent transactions for any address, each with the wallet's SOL and token balance changes, the fee, failures and the programs invoked. Read from the chain and summarised by us. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitwalletrequired

get_priority_fees

Solana priority fees

Solana priority fees right now: percentiles from min to max of the per-slot minimum fee paid on the busiest SOL/USDC pools over the last ~150 slots, in micro-lamports per compute unit, with a recommended level. For bots that need their transactions to land. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_jito_tips

Jito tip floor

Jito tips sampled on-chain: p25 to p99 in SOL of the newest transfers into Jito's tip accounts, what landed bundles actually paid, refreshed every 15 minutes (the age is in the answer), with a landing recommendation. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_sol_network

Solana network health

Solana network health: recent average TPS, the current slot, the current epoch and epoch progress in %. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_peg_deviation

Tokenized stock peg

Tokenized stock peg deviation on Solana: the on-chain DEX price of a tokenized US equity versus the underlying's last real trade, in bps, with 24h stats split into market-open and off-hours. Sampled every 5 minutes by our own collector; the token price is read on-chain. latest.reference is null: the underlying's reference price is not returned (its source does not allow redistribution), only the deviation computed from it. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametershourssymbolrequired

get_peg_sessions

Peg by session

Tokenized stock peg by trading session: deviation broken out across open, premarket, afterhours, overnight and weekend — mean, p95, max bps and median liquidity each, with the worst off-hours window flagged. Market-open acts as the control. Costs 0.03 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdayssymbolrequired

get_peg_universe

Tokenized stock rankings

Tokenized stocks ranked by off-hours peg risk: every tokenized US equity we track, with p95 and max deviation bps, market-open deviation as the control, and median liquidity. Dead pools are excluded rather than reported as perfect pegs. Costs 0.05 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdaysmin_liquidity_usd

get_exit_quote

Collateral exit liquidity

EXIT LIQUIDITY on seized collateral: what a liquidator ACTUALLY realises selling a Kamino reserve into live routing, versus the oracle price the protocol marks it at. Returns max_exitable_usd (largest clip whose liquidator margin is still positive, found by bisection, with its resolution width), the exitable fraction, the conservative bound at the 2% penalty floor, and for the nearest clip actually probed: realised USD, haircut bps and liquidator margin bps. Distinguishes a router that REFUSES to quote a token (permissioning, not illiquidity) from a book with no route (a real liquidity finding) - they are different facts and were one status until this split. A terminal verdict requires six consecutive agreeing observations from the symbol's own tape, so a single bad quote cannot produce a finding; withheld verdicts fall back to the last corroborated measurement with its age rather than returning null. Zero bad debt today does not disprove any of this - it means nobody has been forced to test it at size. Method, corroboration rules and row counts are free via get_exit_method. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbolrequiredsize_usd

get_eth_price

ETH spot price

ETH spot price in USD, read on-chain from the two deepest WETH/USDC Uniswap V3 pools, on Ethereum and on Base. Returns their median plus each pool's own price, so a caller can see the spread between chains. Computed from chain state; no exchange feed. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_base_gas

Base gas price

Base gas price (chain 8453) in BOTH gwei and wei, with base fee, priority fee and block number when the node supplies them. Both units are returned because a caller asking in wei and a caller asking in gwei are asking the same question. Served from keyless public RPC with three-node fallback, so there is no API key to rotate or expire. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_base_balance

Base wallet balance

ERC20 and native ETH wallet balance on Base or Ethereum mainnet, for a 0x address or an ENS name. decimals() and symbol() are read from the contract at request time rather than assumed, because assuming 18 reports a USDC balance a trillion times too large. ENS is resolved through two independent resolvers and the answer is used only when they agree, so a wrong address can never produce a confident balance for the wrong wallet. An unsupported chain is refused rather than silently answered from the wrong one. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterschaintokenaddressrequired

get_honeypot_check

Honeypot check

Use when an agent needs to know whether a token on Base, BNB Chain or Ethereum can be sold before it buys. Returns a verdict from our own buy-then-sell simulation on the token's deepest pool, with the buy and sell tax measured. Also: whether a wallet transfer works, bytecode flags (mintable, blacklist, proxy, pausable, owner), where simulation and bytecode disagree, and the block. Uniswap, Aerodrome and PancakeSwap pools. No pool found is a finding; RPC failure answers 503. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterschaintokenrequired

get_base_launches

Base launches

Use when an agent needs the newest token launches on Base. Returns pools created on Base in the last 24 hours on Uniswap V4, V3, V2 and Aerodrome, newest first, with launchpad, liquidity and volume. Each carries its pair, creation time, launchpad named from the V4 hook (Zora, Clanker, Doppler, Flaunch), quote-side liquidity, 24h volume and swaps, and our honeypot simulation for the busiest. Read from Base logs every minute; a snapshot older than 5 minutes answers 503. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslimitmin_liq_usd

get_hl_whales

Hyperliquid whales

Use when an agent needs to know how the biggest Hyperliquid traders are positioned. Returns the open perp positions of the largest Hyperliquid accounts aggregated per coin: net long or short USD, account counts, size-weighted entries, notional-weighted distance to liquidation, notional within 10% of liquidation and uPnL. With coin=BTC: whale liquidation levels in 5% price bands and the largest positions. Refreshed every 5 minutes; stale data answers 503. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstopcoin

get_web_markdown

Web page to markdown

Use when an agent needs the readable text of a web page as markdown. Returns the main content of the one URL you pass as clean markdown (Mozilla Readability, then turndown), with title, final URL, fetch time and word count. http or https on ports 80 and 443, 5 MB, 10 s; robots.txt honoured and private addresses refused. A blocked or unreachable URL is never charged. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequired

get_pdf_markdown

PDF to markdown

Use when an agent needs the text of a PDF as markdown. Returns the text of the one PDF URL you pass, page by page as markdown, with title, page count and word count. http or https, 10 MB, 10 s; robots.txt honoured and private addresses refused. A file that is not a PDF, a PDF with no text layer (a scan), or an unreachable URL, is never charged. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequired

get_sec_filings

SEC filings

Use when an agent needs a US company's latest SEC filings. Returns the most recent EDGAR filings for a ticker, optionally one form type (10-K, 10-Q, 8-K, 4, S-1, 13F-HR), with filing date, report date, accession number, description, 8-K item codes and links to the document and the filing index. Source: SEC EDGAR public filings. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersformlimittickerrequired

get_insider_trades

Insider trades

Use when an agent needs what a company's insiders bought and sold. Returns one row per transaction from the company's recent SEC Form 4 filings: insider, role, transaction code and meaning, shares, price, value, shares owned after and date, plus open-market buy and sale totals for the window. Source: SEC EDGAR Form 4 filings. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdaystickerrequired

get_sec_8k

SEC 8-K events

Use when an agent needs the material events US companies disclosed in the last hours. Returns the 8-K filings filed across the market in the window, with company, CIK, filing time, accession number, the 8-K item codes and titles (e.g. 2.02 results, 5.02 officer changes, 1.01 agreements) and a count per item. Source: SEC EDGAR current filings. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametershours

get_tradfi_perps

Tradfi perps (HIP-3)

Use when an agent needs a 24/7 price for a stock, index, commodity or currency outside market hours. Returns Hyperliquid HIP-3 perp markets: oracle and mark price, premium, hourly and 8h funding, open interest, 24h change and the dex. With symbol (TSLA, GOLD, EUR or xyz:TSLA): every live market for it. Without: the whole list. Prices are each market's own HIP-3 oracle and mark. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_fx_rates

FX reference rates

Use when an agent needs official daily exchange rates. Returns the ECB euro foreign exchange reference rates for about 30 currencies, as published or as crosses for another base, plus Hyperliquid HIP-3 FX and commodity marks. The ECB rates are available free of charge on the ECB's website; they are for information only, not for transactions. Costs 0.002 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersbase

get_liq_feed

Liquidation pressure feed

Use when an agent needs liquidation pressure as it happens. Returns 5-second buckets per symbol of long and short USD liquidated across venues, the dominant side and pressure against the symbol's own baseline, from a gap-free cursor. Calls are paced per caller: one every 5 seconds (one bucket) for an x402 payer or a prepaid pack key, one every 10 seconds for a pass key, except while an answer says has_more; a call that comes too early is a 429 with Retry-After and is never billed. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersnextsincesymbols

get_spot

Spot price

Use when an agent needs a spot price without choosing a venue. Returns the on-chain DEX price for SOL, BTC or ETH, the median of deep USDC pools on Solana, Ethereum and Base read from chain state, and the pools that served it. Any other symbol answers 400 with the supported list and is never billed. Costs 0.001 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssymbol

get_signal_board

Perp signal board

Signal board for trading bots: the Hyperliquid perp market in one table, ranked by open interest in USD (30 coins by default, up to 60, or the coins you list). Per coin: mark, 1h and 24h price change, funding (hourly and annualised), open interest in USD with its 1h and 24h change, liquidations in the last hour by side with a z-score against the coin's own last 7 days, the whale net position and tilt of the top 250 Hyperliquid accounts, and flags: crowded_long (funding_ann_pct >= 30 and oi_chg_24h_pct >= 5), crowded_short (funding_ann_pct <= -10 and oi_chg_24h_pct >= 5), squeeze_risk (crowded_short and (chg_1h_pct >= 1 or liq_1h_short_usd >= 2 x liq_1h_long_usd with liq_1h_short_usd >= 50000)), liq_spike (liq_z >= 3 and liq_1h_long_usd + liq_1h_short_usd >= 50000). Poll every 1-5 minutes: one call is the whole market structure, answered from our own caches, each source named with its as_of. A source past its staleness limit answers 503 and is never billed. Costs 0.01 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersncoins

get_coin_signal

Coin signal

Signal for one Hyperliquid perp, for trading bots. Everything on the signal board for the coin (price changes, funding, open interest, liquidations with their z-score, whale net position and tilt, flags) plus the 15-minute liquidation cascade probability from our forecast model, the nearest liquidation cluster above and below price from the 24 h liquidation heatmap, and the top 3 whale positions (side, size, entry, liquidation price). BTC, ETH, SOL, HYPE or any other Hyperliquid perp. Poll every 1-5 minutes. An unknown coin answers 400 with the supported list and a stale source answers 503; neither is billed. Costs 0.004 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterscoinrequired

get_sanctions_check

OFAC wallet screen

Use when an agent needs to screen a crypto wallet before paying or being paid. Returns an exact match of a Bitcoin, Ethereum, Tron, Solana or other address against the OFAC SDN list, with entry, program and list date. No match is not a clearance. Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersaddressrequired

get_email_verify

Email verification

Use when an agent needs to know whether an email address can plausibly receive mail. Returns syntax, MX, disposable-domain, role-account and free-provider checks with a deliverable_likely, risky or undeliverable verdict and its reasons. No SMTP probe. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersemailrequired

get_domain

Domain DNS and TLS

Use when an agent needs the basic facts about a domain. Returns its DNS A, AAAA, MX, NS and TXT records and the live TLS certificate: issuer, alternative names, validity dates and days to expiry. Public hosts only; no registrar data. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdomainrequired

get_papers

Paper search

Use when an agent needs scholarly papers on a topic. Returns OpenAlex works (CC0 data) for a search: title, year, DOI, authors, venue, citation count and open-access link, up to 25, optionally from a given year. Cached 24 hours. Costs 0.015 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersqrequiredlimityear_from

get_paper

Paper by DOI

Use when an agent needs the paper behind a DOI. Returns title, year, authors, venue, citation count, open-access URL and the abstract where OpenAlex holds it (CC0 data). The DOI goes in the path as written, slash included: /api/paper/10.1038/nature14539. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdoirequired

get_wiki

Wikipedia summary

Use when an agent needs a reliable plain-text summary of a topic. Returns the Wikipedia summary and lead section for a page title in any language, with the CC BY-SA 4.0 licence, the article URL and the authors link. Cached 24 hours. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterslangtitlerequired

get_qr

QR code

Use when an agent needs a QR code for a link, address or payment string. Returns an SVG or PNG (base64 and data URI) at error-correction level M, scaled for scanning. Input up to 2 KB; over that is a 400, never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersdatarequiredformat

get_hash

Hash

Use when an agent needs a hash it should not compute itself. Returns SHA-256, Keccak-256 (the Ethereum hash) or BLAKE2b-512 of UTF-8 text or hex bytes, as hex and 0x-hex. Input up to 2 KB; over that is a 400, never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersasalgrequireddatarequired

get_time

Time zone conversion

Use when an agent needs an exact time conversion with the right daylight-saving rules. Returns an ISO time or epoch in any IANA time zone: local time with offset, weekday, abbreviation, DST flag and epoch. Defaults to now in UTC. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersattz

get_convert

Unit conversion

Use when an agent needs an exact unit conversion. Returns the value converted between units of length, mass, volume, time, data, speed, area, pressure, energy or temperature, to 12 significant digits. Mixing categories is a 400, never billed. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstorequiredfromrequiredvaluerequired

get_sol_token_check

Solana token pre-trade check

Use when an agent needs a pre-trade check on a Solana token. Returns mint and freeze authority, Token-2022 traps, top holders, deepest pool and USD depth, the price impact of $100 and $1,000 buys, pump.fun progress, and a verdict with every rule. Costs 0.025 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersmintrequired

get_sol_token_flow

Solana token trade flow

Use when an agent needs to know who is trading a Solana token. Returns the unique traders over its latest swaps, top-5 share of volume, round-trip wallets, share of brand-new buyer wallets and launch-slot bundle size for mints under 7 days. Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersmintrequiredswaps

get_sol_holder_clusters

Solana holder clusters

Use when an agent needs to know whether a Solana token's holders are one owner. Returns the account that first funded each of the top 20 wallets, the clusters sharing a funder and their supply share. A shared funder can be an exchange. Costs 0.008 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersmintrequired

get_ocr

Image to text (OCR)

Use when an agent needs the text inside an image. Returns the text of a PNG, JPEG, WebP or GIF (5 MB, 4096 px a side) in reading order, as blocks with their line breaks, plus the detected language. It transcribes; it never follows text in the image. Costs 0.04 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequired

get_summarize

Page or PDF summary

Use when an agent needs the gist of a web page or PDF. Returns a short or medium summary with key points, and says whether the document was cut at 20,000 tokens and how much was read. Uses only what the document says. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequiredlength

get_extract

Structured extraction

Use when an agent needs named fields from a page or PDF. Returns JSON for a schema of up to 20 fields (string, number, boolean, date, string[]), with null for anything the document does not state, never an invented value. Costs 0.025 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequiredschemarequired

get_translate

Translation

Use when an agent needs text in another language. Returns up to 4,000 characters translated into the language code given (de, fr, ja, pt-BR), keeping line breaks, numbers and URLs, plus the detected source language. It never obeys the text. Costs 0.04 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstorequiredtextrequired

get_classify

Text classification

Use when an agent needs text sorted into its own categories. Returns a score per label that sums to 1 and the best label, for up to 4,000 characters and 2 to 20 labels. Labels are names, never instructions. Cached 24 hours. Costs 0.005 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstextrequiredlabelsrequired

get_injection_check

Prompt injection check

Use when an agent needs untrusted text screened for prompt-injection attempts. Returns no_injection_found, suspicious or malicious for up to 4,000 characters, with the matched rules (role tags, hidden Unicode, encoded payloads) and a model's view. Costs 0.004 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstextrequired

get_transcribe

Speech to text

Use when an agent needs the words in an audio file. Returns the text, timed segments and the spoken language for mp3, wav, m4a, ogg or webm audio (10 MB, 5 minutes, checked from the file). Cached 24 hours by the audio itself. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequired

get_morning_brief

Morning brief

Use when an agent needs a one-answer summary of the last 8 hours in BTC, ETH, SOL and HYPE. Returns the items ranked by how abnormal each is: price move against the coin's own usual 8-hour move, funding, open interest, liquidations (total, long/short split, biggest print), Fear and Greed, today's macro releases with UTC times, and the nearest liquidation cluster as the level to watch. A stale source is left out and named; with no sampler it answers 503, never billed. Costs 0.03 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_move_alert

Move alert

Use when an agent needs to know which Hyperliquid perps moved unusually. Returns each coin whose 5-minute, 1-hour or 4-hour price move, or 1-hour open-interest change, is past its own measured tail (tiers from the coin's own history, sample size printed), labelled event-driven when a scheduled FOMC, CPI, NFP or PCE release explains it. An empty list is a valid answer. Stale inputs answer 503, never billed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_anomaly_flag

Anomaly flag

Use when an agent needs one check for what is abnormal across Hyperliquid perps right now. Returns funding, liquidation and open-interest anomalies in one ranked list, using the thresholds of /api/market-state, or nothing abnormal with what was checked. If a source is stale and nothing else was found it answers 503 rather than an all-clear, and is never billed. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Takes no parameters.

get_x402_lint

x402 challenge lint

Use when an agent needs to check an x402 endpoint's payment challenge before paying it. Returns a verdict, a 0 to 100 score and 32 checks, paywall bypass included. Never pays. An unreachable endpoint answers 503 and a refused URL 400, neither charged. Costs 0.05 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequiredmethod

get_x402_test

x402 paid test

Use when an agent needs proof that an x402 endpoint takes a real payment. Returns PASS, FAIL or INCONCLUSIVE with the receipt after paying it once from our own wallet, up to $0.05, in Base or Solana USDC. A 503 or 404 is not charged. Costs 1 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequiredmethod

get_cascade_backtest

Cascade backtest

Use when an agent needs what price did after past liquidation cascades. Returns a symbol's events with 15 m, 1 h, 4 h and 24 h forward returns, n, mean, median, hit rate, a bootstrap interval and a random-time baseline. Not charged on 400, 404 or 503. Costs 0.5 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterssidelimitsymbolmin_usdwindow_mincooldown_min

get_claim_check

Claim check

Use when an agent needs a short claim checked against sources. Returns SUPPORTED, CONTRADICTED or INSUFFICIENT, with every supporting line quoted word for word from a filing, Wikipedia article or URL. No readable source answers 404 or 503, not charged. Costs 0.15 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlsclaimrequired

get_site_signals

Site signals

Use when an agent needs the technical facts of one website. Returns its TLS certificate, DNS records, a security-header grade over 8 checks, tech stack and social links. A bad URL (400) or unreachable site (503) is not charged. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersurlrequired

get_pkg_check

Package check

Use when an agent needs to know if an npm or PyPI version has a published advisory. Returns flagged (any OSV advisory for that exact version), highest severity, advisories, release, scripts, downloads, name-squat flags. 404 or 503: not charged. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersnamerequiredversionecosystemrequired

get_tx_precheck

Transaction precheck

Use when an agent needs to see what a Solana or Base transaction does before signing it. Returns simulated balance changes, programs or contracts, approvals, new accounts, token-risk reads and warnings. 503 if it cannot simulate: not charged. Costs 0.05 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parameterstotxdatafromchainrequiredvalue

get_company_check

Company check

Use when an agent needs to check a US-listed company. Returns a verdict line and the SEC facts behind it: going-concern language, delisting-notice 8-Ks, overdue reports, insider Form 4 direction. EDGAR down (503) or a foreign filer (404) is not charged. Costs 0.25 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersqrequiredsite

get_rwa_yields

RWA yields

Use when an agent needs the realized 7-day and 30-day yield of tokenized treasury and credit products, computed from issuer on-chain prices. Returns NAV, yields, contract and method. A failed read answers 503, not charged. Costs 0.02 USDC per call (x402, USDC on Solana, Base, Polygon, Arbitrum or Arc).

Parametersproduct

pricing

Price list

Use when an agent needs the price list before calling anything. Returns every agentfeed tool with its USDC price and description. Free.

Takes no parameters.

Version history

9
  1. v2.11.0LatestNov 3, 2026
  2. v2.10.0Oct 30, 2026
  3. v2.9.0Oct 15, 2026
  4. v2.8.0Oct 14, 2026
  5. v2.6.0Oct 12, 2026
  6. v2.5.0Oct 9, 2026
  7. v2.4.0Oct 8, 2026
  8. v2.3.0Sep 23, 2026
  9. v2.2.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts