# Rates by 402rates > Verify every measured figure. > Source-backed tokenized Treasury yields, instrument terms, history and measured > USDC settlement costs. No account or API key. Paid data settles per request. Separate product: Compass agent tests, payment checks and tool discovery. https://402rates.com/compass/llms.txt Base URL: https://api.402rates.com Live on mainnet. Product Registry identifier: com.402rates/rates Product manifest: https://api.402rates.com/v1/rates/manifest Dated public sample with observations: https://402rates.com/sample.json ## How to call it 1. Send a normal GET request to an endpoint below. 2. A paid endpoint answers `402 Payment Required`. The terms are in the `PAYMENT-REQUIRED` response header (base64 JSON, x402 v2) and list every network accepted for that call. 3. Sign the authorization with your wallet and retry the same request with the payment header attached. 4. You receive `200 OK` with the data, and the settlement transaction hash in the `PAYMENT-RESPONSE` header. Paid capabilities are for business/professional use only. Terms: https://402rates.com/data-terms/ The HTTP v2 `PAYMENT-REQUIRED` resource description and paid MCP tool/challenge descriptions include this notice before payment. Paid HTTP endpoints, including the legacy XDC mirror, also return `Link` with relation `terms-of-service` and `X-Paid-Service-Audience: businesses_and_professional_agents_only`. Each individual paid call buys its described result, within its published scope and limits. The main obligation is fulfilled on delivery of the agreed result to the client's HTTP or MCP interface. Payment or internal execution alone does not establish delivery. No ongoing monitoring, automatic updates or execution of later customer transactions is included unless expressly agreed. Repeated individual purchases are permitted under the same use terms. Claims concerning non-delivery or defective performance remain unaffected. Synthetic test runs retain their separate access period and call limits; subscriptions and continuous services, if separately agreed, follow their own terms. https://402rates.com/data-terms/#per-call-scope Report non-delivery after payment, duplicate charges for the same payment authorization or a calculation inconsistent with its supplied inputs and published method to info@402rates.com. Include the capability, payment network, transaction identifier and available evidence with secrets removed. Reports are reviewed manually. These examples do not restrict other complaints or statutory rights and deadlines. Repayment does not itself settle other claims. https://402rates.com/data-terms/#complaints Gas is sponsored by the facilitator, so an agent needs USDC only and no native gas token. An XDC native mirror of every paid endpoint is served under `/xdc/v1/...` and speaks the x402 v1 flow the XDC AI marketplace uses. ## Free endpoints - `GET /v1/rates/manifest` - OpenAPI 3.1 description of Rates capabilities and shared service information, parameters, prices and accepted networks. The combined legacy manifest remains at `/v1/manifest`, `/openapi.json` and `/.well-known/openapi.json` for existing clients. - `GET /v1/rwa/coverage` - which instruments the yield data covers, whether each figure is measured or quoted and why, and what is known to be missing. - `GET /v1/rwa/filter` - filter the catalogue by investor type, geography, minimum, chains, and permission model; unresolved evidence stays explicit. - `GET /v1/rwa/instrument` - one complete evidence-backed instrument state: yield, measured deployment size, subscription and redemption minimums, fees, settlement, chain evidence, access conditions and citations. Omit `ticker` to receive the ticker list rather than all instrument records. Three distinct tickers per caller are free in a rolling hour; repeats do not consume another slot. A fourth distinct ticker returns `402` with code `BREADTH_LIMIT` and a pointer to the paid complete snapshot. - `GET /v1/rwa/history` - normalized observations for one instrument and one audited reconstructible recorder source in an inclusive `date_from` / `date_to` window. Every point includes value, date, source ID, revision and source-time versus read-time dating. Omit `source_id` to discover sources. Forty of 45 daily sources are free. The five current-only issuer series return `HISTORY_SOURCE_RESERVED` with the data-use URL, never an empty gap. It shares the instrument view's three-ticker rolling-hour allowance. - `GET /health` - liveness. `GET /ready` - whether a paid call could be served right now. ## Paid endpoints - `GET /v1/rwa/instruments` (5 USDC) - the complete current evidence snapshot for all 13 tracked instruments in the exact single-instrument record shape. It includes yields or explicit gaps, measured size, every terms cell, chain conflicts, quotations, source URLs and evidence dates. This call grants internal use with attribution. Redistribution, embedding in a customer-facing product, and continuous access with change notices are available separately: https://402rates.com/data-terms/ - `GET /v1/rwa/yields` (0.03 USDC) - realised 30-day yields for BUIDL, BENJI, OUSG, USDY, USTB, USYC, VBILL, mTBILL, TBILL, cUSDO and Spiko EUTBL, USTBL and UKTBL. Measured rows are computed from NAV, price or verified passive-holder balances under the Open Treasury Yield Basis and carry their observations and sources. Quoted and unavailable rows remain explicit. Optional `instruments`. - `GET /v1/settlement/costs` (0.01 USDC) - the measured on-chain cost of a USDC transfer across Base, Polygon, Arbitrum, Ethereum and XDC, from gas units simulated per chain, live gas prices, fresh chain heads and the rollup L1 data fee, cheapest first. Optional `chains`. ## MCP Streamable HTTP at `https://api.402rates.com/mcp/rates`, stateless JSON over POST. [//]: # (MCP_INVENTORY_START) 11 MCP tools: 8 free and 3 paid. 13 HTTP capabilities including shared service information. Generated from the product's code catalogue. - `list_rwa_updates`: Read observed Treasury changes since a saved cursor. Free. - `compare_rwa_benchmark`: Compare a supplied USD Treasury return with a matching benchmark. Free. - `compare_rwa_snapshots`: Compare yield and divergence fields in two saved Treasury responses. Free. - `list_capabilities`: List capabilities for Rates by 402rates. Free. - `get_manifest`: Get the manifest for Rates by 402rates. Free. - `get_rwa_instrument`: Get one RWA instrument state. Free. - `get_rwa_history`: Get one RWA source history. Free. - `cheapest_settlement_chain`: Cheapest chain for a USDC transfer. Free. - `compare_settlement_costs`: Measured cost of a USDC transfer per chain, cheapest first. 0.01 USDC per call. - `get_rwa_yields`: Realised 30-day yields of tokenized treasuries, recomputable. 0.03 USDC per call. - `get_rwa_instruments`: Complete evidence snapshot for all tracked tokenized treasuries. 5 USDC per call. [//]: # (MCP_INVENTORY_END) Paid tools return payment challenges before purchase. Each paid tool returns x402 payment terms as structured content when called without payment. The free instrument and history tools share the same breadth rule as HTTP; the refusal names `get_rwa_instruments` as the paid MCP purchase path. Payment support and a funded wallet are needed to complete a paid call. Runnable examples and prerequisites: https://402rates.com/integration/ claude mcp add --transport http 402rates https://api.402rates.com/mcp/rates ## Free snapshot comparison - POST https://api.402rates.com/v1/rwa/changes, MCP compare_rwa_snapshots: accepts before and after saved 402rates yields/instrument responses, plus optional threshold_bps (default 5). Compares supplied yield and divergence fields; no new data access, authenticated history or automatic monitoring. A threshold crossing is numeric, not an assertion of economic significance. The comparison uses application/json, require no login and accept at most 192 KiB. An empty object returns input guidance. Synthetic examples and input schemas appear in OpenAPI requestBody. Inputs are not persistently stored. Thin HTTP/MCP client: https://402rates.com/examples/analyze.mjs Reports use report_version and status, with explicit limitations. The legacy /mcp entry remains combined for existing clients. Limits are shared across the legacy and product entries. Technical compass.rwa.* IDs are unchanged. ## Published specifications - https://402rates.com/basis-spec-v1 - the Open Treasury Yield Basis: what is measured, over what window, how it is annualised, and what disqualifies an instrument. Written so a stranger can implement it and reach our figures. Its Corrections section is the canonical record of corrected observations and published figures. - https://402rates.com/discovery-method-v1 - the directory method: how a query is matched, how results are ordered, what each usage figure means and does not mean, and what this service will never say about anyone. Both are versioned, and the version travels inside every response that rests on them. ## Response shape Source-backed data responses use a JSON envelope; the analysis reports above use their own report_version and status contract: - `meta` - the capability, the schema version, when it was generated, a `sources` list giving the origin, fetch time and maximum accepted age of every input, a `freshness` block whose `valid_until` and `cache_ttl_s` are derived from those sources rather than set to a constant, the units, and the methodology and limitations. - `data` - the rows. - `related` - sibling capabilities that are callable right now. Nothing is listed before it is callable. Errors are always JSON, never HTML, and carry a stable `error.code`. If a source cannot be proven fresh the request fails with `STALE_SOURCE` and no payment is settled: the service does not charge for stale data. A chain that is merely unreachable is excluded, named, and the remaining chains are still served. ## Notes for agents - GET parameters use the query string. Analysis and synthetic test POST inputs use JSON bodies; short-lived test tokens use the documented HTTP header. There are no path parameters. - Every endpoint returns a useful result with no parameters at all. - `minimum_lte` requires `minimum_lte_currency`; `size_gte` requires `size_gte_currency`. Errors name the missing partner parameter. - Every decisive issuer-term cell uses `known`, `conditional`, `conflicting` or `unknown`. Conflicting sources are returned together; a more permissive source never silently wins. - Bulk current coverage is the paid `compass.rwa.instruments.all` product. The free history view serves the 40 daily source series that the 2026-09-04 audit found independently reconstructible, one instrument and source per call. The five non-reconstructible issuer series remain reserved and are never reported as missing data. - A figure that cannot be computed is named as unavailable with its reason. It is never filled in, and an instrument whose issuer publishes no machine-readable figure is published as `unavailable` rather than estimated. - The directory publishes counts about other providers and no judgements. A description that addresses the calling model is withheld rather than repeated, and the withholding is declared. - This is an informational data and calculation service. It is not investment, legal, tax or accounting advice, an offer, a solicitation, a recommendation, or a determination of eligibility or suitability. - Source and onchain data can be inaccurate, incomplete, delayed, stale, unavailable, revised or conflicting. Verify the cited evidence independently. The caller remains responsible for every decision and action. - 402rates.com does not execute investment transactions or hold financial assets on the caller's behalf. An x402 payment buys access to data, not a financial instrument. - Full service and data-use terms: https://402rates.com/data-terms/ ## Legal - Provider identification: https://402rates.com/impressum/ - Privacy notice: https://402rates.com/datenschutz/ - Service and data-use terms: https://402rates.com/data-terms/ - Paid capabilities are offered only to businesses, organizations and their professionally deployed agents, not for private consumer purposes. ## Observed changes and benchmark arithmetic - POST /v1/rwa/updates, tool list_rwa_updates: free field-level notices, cursor pagination, fifteen-minute capture and 90-day retention. Complete paired values are in the existing instrument response changes field, under its current allowance. Capture starts with a baseline. Stale/unavailable and cursor_reset_required are explicit. - POST /v1/rwa/benchmark, tool compare_rwa_benchmark: arithmetic on a supplied measured USD instrument snapshot and unverified caller-supplied Treasury total-return index with matching dates. No external fetch. Not a fee or causality measurement. - https://402rates.com/integration/#observed-updates - https://402rates.com/integration/#benchmark - https://402rates.com/examples/rates-watch.mjs