$ GET /changelog

Changelog

Recent additions to Agent402: new tools, skill packs, framework adapters, and platform features. Each entry describes the service on its date; current prices are on /pricing and in every 402.

RSS feed
2026-11-09

Tool and payment bounds

  • Tools: image-crop and image-dominant-color decode in the image worker pool, like image-resize, image-convert and image-thumbnail, with a 15 s deadline; a busy pool answers 503 and nothing is charged.
  • Tools: the image tools read each format's header the way its decoder does (a GIF's first frame and its codes, a PNG's chunk list, a JPEG's frame headers, a TIFF's directories) and answer 400, naming what was wrong, when a file's header and contents disagree. An interlaced PNG is inflated under a bound for its declared size. A TIFF decodes from its first image; a CCITT fax page decodes in an isolated process. TIFF compressions 9 and 34316 are not decoded.
  • Tools: business-days counts by arithmetic, so a range of any length answers at once.
  • Tools: markdown-to-html renders every document with the same heading ids as before; documents over 2,500 characters render in a dedicated worker with a 10 s render deadline (400 when the document's markers are the cause, 503 otherwise, never charged).
  • Tools: json-to-csv writes large sheets in slices and serves up to 10,000,000 cells or 16 MB of CSV; a larger sheet is refused with its row and column counts and how to split it.
  • Tools: openapi-resolve-refs reuses resolved schemas and serves up to 16 MB; a larger result answers 413 and says to resolve the spec in parts.
  • Tools: a proof-of-work tool whose input holds a value that cannot be coerced answers 400 with the field named; other errors are unchanged.
  • Payments: a payment that settles a signed transaction (Solana, Algorand, Stellar) is identified by that transaction alone, and a Permit2 payment by its signed permit, for retries, payer attribution and payer screening; an authorization block no signature covers is removed from the header before anything reads it.
  • Router: seller-written names and descriptions are cleaned of markdown links and images in a single pass, in time linear in their length.
  • Router: route-and-execute names no paying chain for a payment header that names two different networks, and answers its ordinary refusal.
  • Router: a registry-only listing larger than the per-seller tool cap is cut to the cap before the crawl's passes run; stored tools and reported totals are unchanged.
  • Site: pinned install commands such as agent402-mcp@0.13.31 arrive intact in page HTML for readers that run no script.
2026-11-08

Buying at volume

  • Docs: a buying-at-volume guide (/guides/buying-at-volume, wiki page Buying-at-Volume) for agents that buy in bursts: the per-address limits and their Retry-After, retries that never pay twice, async jobs, spend caps in agent402-client, agent402-mcp and agent402-openclaw, which rails settle when, metered model ids and input caps, and the errors to handle. llms.txt and the three package pages link it.
  • Gateway: the /v1/metered unpaid-quote 429 carries Retry-After: 60, retryAfterSeconds and a guide link.
  • Gateway: once a client address has paid (a final 200 that settled on any rail, or a credits debit), its unpaid price checks read against 10 times the hourly figure for the rest of that clock hour and for 10 minutes after each paid call, and past the plain /v1/metered quote figure each paid /v1/metered call from that address earns 2 more quotes, used within 10 minutes, up to 10 times each figure; on the shared Worker egress address the whole address keeps its ceiling; a refused payment credential still counts.
  • Docs: a content-pipeline guide (/guides/content-pipeline, wiki page Content-Pipeline): research, script, voiceover, images, transcription, subtitles, dubbing and media checks as paid calls from one wallet, with a runnable example per stage, an end-to-end flow, the stages that run as jobs, spend caps and Tempo pull and push. llms.txt and the buying-at-volume guide link it.
  • Gateway: inception/mercury-2.5 reached its upstream expiration and is no longer listed; a call naming it is served by google/gemini-3.1-flash-lite with the swap named.
  • Payments: a resend of a payment whose answer was charged but never delivered gets a 503 (replay_pending, Retry-After: 10) while the ledger has not yet confirmed that answer as served; nothing more is charged, and a retry with the same payment receives it.
  • Payments: when the Tempo relay does not answer whether it claimed a push transfer, the 503 says so (transferClaimed: null); when the ledger records the transfer as owed, the 503 also carries refundOwed: true, and a retry with the same credential that pays for the request voids that debt.
  • Payments: a Tempo pull payment answered 402 after its broadcast failed is read on chain again (by default 15 s, 45 s and 2 minutes later); a transfer that lands after the 402 is booked as owed, to be refunded.
  • Payments: a keyed call whose client closes its connection keeps its claim until the run ends, so a retry with the same key gets 409 idempotent_request_in_flight, then the stored answer, never a second run.
  • Payments: a credits call whose client leaves after the response headers is decided when the response ends: a response of 400 or above, a replay or a cache hit is not debited, and a metered call is debited its metered amount, never the whole hold.
  • Payments: a card subscription status event that arrives late never reactivates a canceled subscription.
  • Payments: refund recipients are screened like every payout; a held refund logs a fixed reason and stays owed.
  • Tools: the company-dossier and financial-research packs return 90 days of Form 4 insider trades; their insider step had been read at the 30-day default.
  • Tools: wallet-audit looks up metadata for a token the wallet holds, not for the wallet address; a wallet holding no tokens gets a 422 on that step.
  • Tools: report products, the image edit route and the subtitle-pipeline and search-and-cite packs say model-backed in their descriptions.
  • Router: a seller's 402 must name the URL requested (the same origin, the same path or the route mounted under a path prefix, and the same query); one naming another resource is refused before anything is signed.
  • Router: a GET seller is probed at its bare listing URL first; while candidates are compared, the caller's inputs reach one only when that probe answers 400 or 422.
  • Router: Algorand sellers are paid only at the address their settlement proof names.
  • Router: when several proven sellers on one chain refuse our payments with no settle between them, routes on that chain are not benched until a payment there settles.
  • Site: the navigation puts live, status and llms.txt in the menus.
  • Operations: /api/gateway-status reports lateSettlements (ok, near_capacity, full, unresolved) for settlements whose outcome was not known when the call was answered, and replayStore (ok, pending) while a settled payment's consumed mark waits to reach the shared store.
  • Operations: an operator closes an unresolved late settlement as booked owed, paid (with its refund transaction) or dismissed, and each resolution is recorded before the entry is dropped; unresolved entries are read on chain again every 6 hours and close once the chain answers.
  • Operations: a Tempo pull transaction that lands after its 402 is booked as owed even past the per-process watch bound or across a restart: every watch is on record, and a one-minute sweep reads any the process did not finish.
  • Operations: Tempo subscription gas sponsorship has a rolling 24 h ceiling on transactions and fees, with a fifth of each held for renewals; past it a send is refused before broadcast, and /api/gateway-status reads subscriptionFeePayer.ceiling=reached.
  • Privacy: the shared record that an address paid recently is keyed by a keyed hash of the address, never the address or a plain hash of it, and expires within the hour; /privacy names it.
  • Privacy: /privacy says a candidate seller may receive a request's inputs unpaid before it is paid, sometimes more than once.
  • Privacy: /privacy and /.well-known/x402 name the Tempo pull credential kept, with its route, amount and payer, until its late-landing check ends (at most 24 hours while the chain cannot be read).
  • Privacy: /terms says an x402 payment on an EVM chain, or a Tempo transaction, that lands on chain after an error answer is recorded as owed and repaid, and that a repayment is checked against the published sanctions lists first.
2026-11-07

onchain-sql price, X data tools, Solana token search, metered chat, OCR and fetch errors

  • Tools: onchain-sql is $0.030 a call (was $0.040), and a call still sends the query service at most 3 queries. The onchain-analyst pack follows the tool's price.
  • Tools: x-tweet no longer reads the author: the tweet carries authorId, its author username, name and verified fields are null, and its link is the /i/web/status form.
  • Tools: x-user-tweets is $0.09. Looked up by username, the account's profile still fills user and each row's author. Looked up by id, the author is not read: rows carry authorId, null author fields and the /i/web/status link, and user carries the id with null username, name and verified.
  • Tools: x-search-recent is unchanged.
  • Tools: sol-token-search finds a Solana token whose ticker is busy on other chains: when the pair search holds no matching Solana pair, the mints come from a Solana token index (verified first) and their pairs are read by mint. The answer says whether that fallback ran, names both sources when it did, and carries the partial-answer fields. No pair found while a fallback read did not answer is a 5xx, never an empty answer.
  • Tools: image-ocr answers 422 for a body that is not an image it reads (a PDF, a webpage, an SVG), naming what it got and the formats it reads (PNG, JPEG, GIF, BMP, TIFF, WebP, PNM), and 422 for an image that does not decode or whose header does not give its size, where it answered 500 "OCR failed: unknown". An image over 64 megapixels or 32,767 pixels a side is a 422 (image-too-large) before it is decoded, naming maxMegapixels, maxSide, the image's width, height and megapixels, the longest side to downscale to (downscaleToLongestSide, also in fix) and a howToCall with a note to resend the image downscaled. One image over 16 megapixels is read at a time; another waits up to 15 s, then answers 503 (large-image-busy) with Retry-After.
  • Tools: a tool that fetches a URL answers a source host that times out or refuses the connection with a 504 carrying attribution "upstream" and the hint source-timeout or source-unreachable, so a caller can retry later or pick another host.
  • Gateway: a metered model id written with a hyphenated version (v4-1 for v4.1) is served as the dotted id when that exact id is on the upstream's live list; any other unknown part is still refused. The unknown-model 400 carries suggestions (the closest served ids, at most three) and a howToCall that retries with the first.
  • Gateway: the metered routes take 200k input chars on every model and more on a model with a larger context window (three chars per window token, up to 1,000,000), each request still quoted from its own body. An input over the cap is refused with maxInputChars, inputChars, a trim-input hint and models whose window takes it, before payment on /v1/metered/chat/completions.
  • Operations: a /v1/metered/chat/completions input refusal answered before payment is logged and counted like a handler 400, marked pre-payment.
2026-11-06

Ink rail

  • Payments: Ink (chain 57073) is a listed rail: x402 payments settle in native USDC on Ink, named on every surface that lists the chains, with its own chain page.
  • Payments: a chain page links the service's wallet on the chain explorer even before the rail's first revenue reading.
  • Packages: the buyer client, MCP server and OpenClaw plugin price and sign Ink USDC accepts, and refuse an Ink accept that names another EIP-712 domain than the token's own (agent402-client 0.8.25, agent402-mcp 0.13.31, agent402-openclaw 0.5.11).
2026-11-06

EVM router chains, call hints, package limits

  • Router: the router buys from proven sellers on each EVM chain the operator lists, with the same price binding, validity cap and spending caps per chain as on Base, and each listed chain counts toward the global unsettled-spend ceiling.
  • Agents: an input-validation 400 carries howToCall: the method, URL and a ready request body from the tool's own example, plus a query-string form where the route serves one; the first-contact 402 body carries the same call, or the method and URL alone when the example is large.
  • Payments: a cached gateway answer is served only to the payer that settled it, on a payment not already used.
  • Payments: a Stellar refund or settle confirmation counts USDC only from its pinned issuer, and a refused settle releases the authorization's claims so the buyer can retry.
  • Packages: the buyer client (with an x402Client), MCP server and OpenClaw plugin refuse to sign an authorization valid for longer than 24 hours, except the client's batched payments, which keep their own limit of seven days and an hour; a held amount is released ten minutes after its authorization expires (agent402-client 0.8.24, agent402-mcp 0.13.30, agent402-openclaw 0.5.10).
  • Packages: the MCP server redacts its configured keys from every result, error and log line; the OpenClaw proxy removes its credits key from error logs and error answers, and its doctor no longer prints it.
  • Packages: Tollbooth grants a charged request only when its payment middleware took a payment; a charged request whose method the middleware does not price is answered with a 402, so price every method served (agent402-tollbooth 0.11.0).
  • Operations: the heartbeat opens one issue when a repository security advisory waits in triage for more than a day; the issue names no advisory.
  • Agents: a call to a retired tool through catalog.call names its retirement date and replacement, as the HTTP route's 410 does.
  • Operations: retired-route answers are counted by coarse source (client family, referring host, payment rail, HTTP or MCP), with no address, wallet or full user agent kept.
  • Operations: the EVM wallet alarm also opens when an enabled chain's balance cannot be read for an hour, and the status probe pages on it.
2026-11-06

Stellar settle confirmation

  • Payments: a Stellar settle that the chain confirms is matched to the payment it signed: asset, amount and transaction, and each confirmed transaction serves one request.
2026-11-06

Router buyer price binding

  • Router: the router's buyer signs exactly the price it checked against its caps, on every challenge version, and refuses a seller accept whose price fields disagree; a live quote with disagreeing fields reads as unpriced.
2026-11-06

Settler alarm, direct upstream switch, facilitator map

  • Payments: a payment whose payload declares an x402 version other than the one this server offers is answered with the 402 offer instead of being matched.
  • Payments: payment headers are read once at intake through one decoder and passed on in canonical form, so every check reads the same payment.
  • Payments: a Stellar payment's signed authorization is claimed before it settles, so one signed payment is served once.
  • Payments: the Tempo buyer pays only challenges whose method details it recognizes.
  • Payments: MPP subscription renewal reconciliation reads the renewal amount in base units and finds a renewal that landed after a timed-out send.
  • Payments: MPP subscription activation signs with its own 25 s validity window, so a timed-out activation cannot land after its answer.
  • Operations: a subscriptionRenewals status word reads unconfirmed when an MPP subscription renewal has stayed unconfirmed for longer than its alert window, and the heartbeat and status Worker page on it.
  • Operations: a robinhoodSettler status word reads relayer when our own relayer has settled Robinhood Chain sales in place of the listed facilitator for longer than its alert window, and the heartbeat and status Worker page on it.
  • Operations: the manifest's facilitator map names only chains this server offers.
  • Payments: a 402 exposes to browsers only the headers it carries, and the MPP charge challenge leaves out the output schema the x402 challenge already holds, so every 402 stays well inside common header limits.
  • Gateway: an optional direct inference upstream, off unless set, serves listed models on the chat wire with zero data retention requested on every call, and falls back to the usual route on any failure; while it is configured, the privacy page names it under third parties.
  • Operations: the repo's paid buy scripts price offers from a known asset table, sign only the amount that passed their cap, and refuse a target outside this service unless told otherwise.
  • Packages: viem is 2.57.16.
  • Packages: agent402-client 0.8.23, agent402-mcp 0.13.29 and agent402-openclaw 0.5.9 price an offer by the field its challenge version signs, check the signed amount before sending, and openclaw removes its per-call cap only with an explicit acknowledgment.
  • Packages: agent402-client and agent402-mcp keep a sent payment's signed amount held against their caps until its authorization can no longer settle, and an error after sending reports the payment as unknown rather than unpaid.
2026-11-05

Robinhood facilitator order, public-index disclosure, job buys

  • Payments: on Robinhood Chain the server settles through the first listed facilitator whose /supported confirms exact at boot, so a primary that does not answer then leaves the rail on the next one; a listed facilitator's refusal that is not about the buyer's payment moves to the next listed facilitator before our own relayer, and a refusal about the payment itself is never retried.
  • Privacy: when the facilitator that settles Robinhood Chain publishes settlements on a public index, the privacy page names it and what it publishes, the terms, /.well-known/x402, llms.txt and the Robinhood page point there, and the pages print the date it began.
  • Operations: the operator view of first-call grants counts refusals of wallets that never paid by reason and route, apart from returning buyers, so a route a newcomer wanted shows up by name.
  • Operations: every Playwright install in CI goes through the bounded apt helper, and a guard fails any workflow step that runs apt directly.
  • Operations: the listing pass and the other catalog buy scripts send Prefer: respond-async to slow routes and follow the job to its answer; a failed job counts as a failed buy, and records keep a job's state, never its link.
2026-11-05

Payment libraries on x402 2.30, a wider unproven lane, one spend workflow

  • Payments: the x402 libraries are 2.30.0 and mppx 0.17.1. A money or identity check that runs before verify or settle and fails refuses the payment with a 402 and charges nothing; a Tempo charge whose broadcast is rejected as a replay recovers its receipt instead of answering a new 402.
  • Router: on Base an unproven seller is tried up to $0.05 a call (was $0.01), only after every proven candidate, paid at its own live 402's payTo, with at most $0.25 a day per seller and $5 a day across all unproven sellers.
  • Router: the unproven lane's terms name only the daily caps that are switched on, and the seller-trust and seller-dossier examples show the lane as the tool answers on a default host.
  • Tools: linkedin-article takes images only from fast-tier links its resizer can read; the fast tier still serves WebP to buyers.
  • Router: the per-seller unproven cap keys a path-scoped seller on its origin plus prefix, so tenants on one host keep their own day; each cap window keeps a running sum, rebuilt from the window when invalid and at least daily, so an older build during a deploy overlap cannot drift the cap.
  • Monitoring: the heartbeat signs its paywall read, and the status Worker pages "Paywall not observed" after three unobserved runs.
  • Security: a standing red-team suite runs in CI against the MCP connector, the seller judge, decide, the fetch guard, the router's payer and report prose. MCP refusals quote an echoed name as data, and the listing and judge screens read markup-split, lookalike and tool-abuse wordings of the same text.
  • Router: route-execute is graded step by step in CI: 56 fixed tasks run the real paid server, resolver and payer against stub sellers and check every step from the candidate set to the receipt. The unproven lane reads the same verdict as the public label, at the seller's live payTo, so a seller paid at a shared settlement wallet is not tried there.
  • Security: in FREE_MODE identity-bound routes take no wallet identity from an unverified payment header (memory uses its demo namespace, the others answer 400); TRUST_PROXY_HOPS defaults to 0 when unset, with a boot warning; MCP prompt arguments are quoted as data, bounded and stripped of hidden characters; a paid server answers a job created by a FREE_MODE server as not found.
  • Upgrade note: TRUST_PROXY_HOPS unset now reads 0 (it read 1), and an explicit 0, which used to read as 1, is honored: set TRUST_PROXY_HOPS=1 behind one edge proxy. With no hop trusted, the server warns once when a loopback or private peer sends X-Forwarded-For. Without it, every visitor behind the proxy reads as the proxy's one address and shares its rate limits.
  • Limits: the unpaid price-check budget counts per client address (an IPv6 /64 as one) whatever the User-Agent; a named indexer or search crawler reads against ten times the budget on its address, each User-Agent on Cloudflare's shared Worker address gets its own budget under a ceiling for the address, and only our signed probes are exempt.
  • Index: a failed paywall check is re-run after 24 hours and when a seller registers again, and the check skips a templated route.
  • Gateway: /v1/images/fast now falls over to Recraft V4.1 Flash (WebP) and /v1/images/generations to MAI-Image-2.6 Flash (PNG), ahead of GPT-5 Image Mini's upstream expiry; the former id is still accepted in model. The live model guard checks every image, video and speech link's upstream expiration date.
  • Speech: /v1/audio/speech and the /api/tts backups move from MAI-Voice-2 and MAI-Voice-2-Flash (upstream expiry 2026-12-31) to MAI-Voice-2.1 and MAI-Voice-2.1-Flash, with a distinct English voice per voice name; the former model and voice ids are still accepted.
  • Pages: operator pages tell search engines not to index them, and the sitemap lists only pages that are their own canonical.
  • Pages: structured data names one site entity, Agent402, part of Havok Holdings LLC, as every page's author and publisher.
  • Pages: report, skill, blog, guide, docs, category and marketplace pages show a breadcrumb trail that matches their structured data, and seeded SEC report pages carry the date of the newest filing they show.
  • Surfaces: the agent hosts guide adds Agent402 to a HarnessRouter workspace as a remote MCP server under Add-ons, with a harness create that lists the connector, the free proof-of-work tools, and how paid tools answer on the connector.
  • Operations: the spend jobs run from one workflow, each behind the same approval; only the listing pass is scheduled (weekly, still waiting for that approval, and paging only when it ran and failed).
  • Packages: agent402-mcp 0.13.28 runs on x402 2.30 and MCP SDK 1.32.2, and every install pin names it.
2026-11-05

Audio-only decoding, refused redirects answer 400, documented gateway fields

  • Index: the index keeps at most 5000 tools per seller, described tools first, and shows the listed count beside it.
  • Index: a seller listing that cannot be read is dropped alone; every other seller still routes, and /api/gateway-status gains containedTurns and brokenListings.
  • Gateway: on the Messages wire, citation text counts against the tier's input cap.
  • Tools: media-info, audio-convert and audio-normalize decode audio streams only. media-info still lists every stream: a video, image or subtitle stream is read from the container headers and carries decoded: false, with null for a resolution only its decoder would know. A file with no audio stream converts to nothing and answers 422, as before.
  • Tools: render and screenshot answer 400 (not charged) when the page's navigation is redirected to a host the browser may not load, instead of rendering the refusal as the page.
  • Tools: html-frames runs documents in a browser of its own with the JavaScript JIT off, so WebAssembly is not available to a document; plain script, canvas, SVG and CSS animation render as before. After 5 failed documents from one payer in 10 minutes, the next answers 429 with Retry-After.
  • Tools: a2a-card-fetch answers the address check's 400 for a host it may not reach, the same answer every URL tool gives.
  • Tools: URL tools answer 503 with Retry-After when this server's resolver cannot answer a lookup, and the one 400 for a name that does not exist. A host name without a dot is answered with that 400. favicon-grab refuses a non-http scheme.
  • Gateway: the Responses and Messages wires pass each input item, content block and tool on with its documented fields only.
  • Index: a seller registration naming one of this server's own hosts is refused.
  • Index: a seller listing with a number, object or array where text belongs is stored with text fields (numbers become their digits, anything else is dropped), and every seller page, route and search reads it as text.
  • Reports: a public report's JSON has its own address, /reports/public/<id>.json.
  • Packages: agent402-client 0.8.22 resends its own request once when the connection failed before any answer (a closed keep-alive socket), with the same headers and Idempotency-Key; retryResets: false turns it off. A caller's payFetch is not wrapped; resetRetryFetch is exported to put under a payment wrapper.
2026-11-04

Office files from data, shorter pages, one page per adapter

  • Gateway: inception/mercury-2.5 leaves the auto tier's fast band ahead of its upstream expiration on 2026-11-08, a date every model of its family carries. A call naming it is served as itself until that day, then by google/gemini-3.1-flash-lite at the tier and price of the route called, the swap named in agent402_model_substituted.
  • Tools: new xlsx-create, docx-create and pptx-create ($0.003 each, wallet only) turn structured data into a real Office file in one call, answered as base64 with its size, content type and filename, the same shape as the PDF tools. xlsx-create takes sheets of rows (arrays, or objects with an optional column order) with a bold, filled, frozen header row by default, optional header styling, column widths (auto-sized otherwise) and number formats; every cell is a literal value and text that starts with = + - or @ is written as text with the Text format, never a formula. docx-create takes a title and markdown (headings, emphasis, lists, task lists, tables, code blocks, quotes, rules, links). pptx-create takes slides with a title, bullets in up to five levels, an optional table and speaker notes, plus an optional title slide.
  • Tools: the Office builders fetch nothing: a link is written as a hyperlink and an image as its alt text linked to its address. Each call is bounded (sheets, rows, cells, slides, bullets, table sizes and table cells, 100,000 characters of text in a request body of up to 2 MB, an 8 MB file): an input cap answers 400 naming it, the file size cap and the build deadline answer 422, and the file is built in a worker thread.
  • Surfaces: the agent hosts guide adds Agent402 to a Paperclip company as a custom MCP server, with the free proof-of-work tools, how paid tools answer on the connector, and the per-action Allowed, Ask first and Off settings.
  • Surfaces: the home page is five blocks: the hero with the live payments panel, the agents and people doors (the free tier in two lines, Decide as a table row), three short claims with one row of chain marks, a two-line seller block, and four questions. The seven full claims and the comparison table moved to /docs#why (/why and /compare redirect there); the seller board lives on /leaderboard, the demand ranking on /tools/bestsellers and the proof-of-work demo on /playground, each linked from the page.
  • Surfaces: /agentic-finance, /sell, /what-is-x402, /what-is-mpp, /faq and /docs read shorter: one-sentence openings, one call to action per target, one x402 vs MPP table (on /what-is-x402), FAQ questions grouped under headings, and /docs titled Docs; /terms states that prepaid credits are not currently sold.
  • Surfaces: chain pages and /marketplace keep their shared legend and scope notes in one collapsed "About these figures" block; each framework adapter has one page at /integrations/<slug> with its configuration table (/docs/adapters/<slug> redirects there); tool, integration and /markets pages share one failed-call footnote; openings name the chain count and link the one chain list on /pricing; page titles are plain descriptions.
2026-11-03

Replay claims at a deploy, pending settles explained, sweeps follow jobs

  • Payments: while another container may be serving (more than one replica configured, the first 120 seconds after a container starts serving, set by DEPLOY_OVERLAP_SECONDS, or a drain), a paid call on any route answers 503 with Retry-After when the shared payment store does not answer, before any payment is verified or settled. A lone container past that window serves fast routes on its own claim, so a store outage does not stop sales; a long-running route needs the shared store as before.
  • Payments: a re-sent x402 payment is matched by its network, signed payer and nonce, so two wallets or two networks signing the same nonce are two payments; marks an earlier build wrote are still honored across a deploy.
  • Payments: a settle fallback that answers pending with a transaction is read on chain like the primary's, and the call is served once the transfer to us is proven. When no noted transaction is confirmed in time, the 402 says so: reason settlement-unconfirmed, retry watch-transaction, the network and the transactions to watch, and that a transfer which still lands is booked as owed and repaid after on-chain proof. Listed on /x402-test; the no-receipt exception on /agents.md, /llms-full.txt and the guides names this case beside a timed-out settle and a disconnect during settle.
  • Payments: a buyer whose connection closes while its settlement is already in flight spends no hang-up forgiveness budget: the log reads SETTLE UNCONFIRMED (a late transfer is booked as owed) in place of NOT CHARGED, and SETTLE WITHHELD when no settlement was sent.
  • Payments: a settlement sent while the buyer was connected is a settlement outcome whether or not the buyer stays: one that fails after the buyer closes counts toward the wallet's settle breaker and the composite guard like one whose buyer stayed, and one that succeeds records the sale beside the owed charge. The "settlement sent" mark is set where the charge leaves: a settle the authorization claim refused is never read as sent, so that hang-up spends forgiveness budget as an abandoned run and feeds the breaker nothing.
  • Payments: the Tempo gate and the card gate require the shared replay claim on the same rule as the x402 dispatcher: on a long-running route always, and on every route while another container may be serving (more than one replica, a deploy's overlap window, a drain). With the shared store configured but unreachable, a Tempo pull or push credential or a card credential is refused 503 with Retry-After before the handler runs, before a push transfer is claimed and before a card is captured; past the window a lone container serves on its per-process claim.
  • Payments: a settled payment's consumed mark in the replay guard keeps the guard's default hold (one hour). Only a grant that was not settled (a hang-up the forgiveness budget forgave) is held to the authorization's own validBefore plus a margin, since that authorization is still live on chain. The privacy page and the readsOnly list under payment.dataHandling on /.well-known/x402 name the mark (a digest of the payment's network, signed payer and nonce) and the same hold.
  • Tools: onchain-sql is $0.040 a call (was $0.020), and a call sends the query service at most 3 queries: the query itself and up to 2 recovery runs (the row-size measure, then the filtered run or a small re-run). A call that reaches the cap without an answer is the uncharged 422 with hint narrow-query; the original query is never resent, and small rows served from the re-run are marked truncated with a note naming the cap. The onchain-analyst pack follows the tool's price.
  • Tools: an upstream read that would start with under 5 ms of its budget is refused as the budget's deadline before any request leaves, instead of leaving with a cap too small to use.
  • Surfaces: a seller's own rows on /api/index?seller= carry the same executeVia fields as route rows (callable now, its lane, or when it becomes eligible). html-frames' published example fits its 402 whole, and a paid sweep that meets an example the 402 shortened replays the full one from /openapi.json instead of the placeholder.
  • Operations: the Bazaar keep-alive sweep follows a slow route to its settlement: a route that refuses a synchronous paid call is called again with Prefer: respond-async and its job polled at the Retry-After it names until it succeeds or fails; a failed job's status and body are read from its error, and it is never retried as a second paid job. The deploy job validates the new build's flagship Bazaar listings after the deploy is verified, keyless, up to three runs a minute apart: a clean run passes, an INVALID run with no clean run fails the job, and three unreadable runs warn.
  • Operations: every shared-store wait (the hang-up ticket, the per-payer spend reserve, journals, idempotency, the first-call store, the shared market-data and geocoding reads, the cache, the database ping, lease release, the shared limiters) counts loop time, so an answer that landed while the loop was held is read before the deadline expires instead of being booked as a store that did not answer.
  • Operations: the revenue snapshot's boot warm-ups (a scan of every rail over public chain RPCs) are off under X402_INDEX_CRAWL=off, X402_SYNC_ON_START=false or REVENUE_WARMUP=off; before, two of them ran on every boot that configured a wallet, test boots included.
2026-11-02

Agent front door

  • Surfaces: /llms.txt (after its title, summary, base URL and full-text link), /agents.md and the MCP server.describe answer open with the same three-line front door: the first call (web.search, with web.answer beside it) at its catalog price; access with no account or API key, led by the proof-of-work tools that run free with no wallet (counted from the catalog, listed at /api/pow), then pay per call in the stablecoins and over the wires this server offers (named from its live configuration); and when to use the service and when not to, linked to /agents.md. server.describe's startHere.firstJob opens with the same first call. With FRONT_DOOR_402=on, the unpaid 402 body also carries the access line and the /agents.md link (off by default). Rails and wire detail follow unchanged.
  • Surfaces: new /agents.md (text/markdown, free): the front door, then "When a call fails" (four recovery lines, each scoped to where it holds), then how to connect, pay and find more tools. Linked from /llms.txt, listed in the sitemap and robots.txt.
  • Surfaces: the OpenAPI info description and the /.well-known/x402 summary lead with what the first call returns for its price.
  • Discovery: the Bazaar listings of web search, web answer, news search and browser render say what one call returns; the search and news sample outputs show two results with a matching count.
  • Tools: when shareable answers are enabled (ANSWER_SHARE=on, off by default), web.answer takes share=true (same price): the answer also carries share: { url, cardUrl, expiresAt }, a public page of the question, the answer and its cited sources with a 1200x630 preview card, written only once the call settles and kept 30 days (then 410 expired for 90 days; the operator can remove a page, 410 removed). The question is labeled as the caller's; the record is at /answers/<id>.json. The page is not indexed; /privacy describes what it keeps.
  • Payments: a Solana payment refused because the paying wallet has no USDC account or less USDC than the price now says so (reason no-token-account or insufficient-funds, retry fund-wallet, Retry-After 300) and asks for the wallet to be funded or another listed network, instead of asking for a fresh signature. A wallet refused this way three times in ten minutes gets the same answer without a new check until its Retry-After passes.
2026-11-02

Paid answers on a pending settle

  • Payments: an EVM payment whose transfer confirms moments after the facilitator stops waiting for it now receives its answer, instead of a refusal and a later refund: when a settle comes back pending with a transaction, the server reads that transaction on chain for a few seconds and serves the call once the transfer to us is proven.
2026-11-02

Router on Tempo and MPP, CDP headers built in-house

  • Router: route-execute moves on to the next Tempo seller when a seller fails before any payment left, as it does on every other chain; each seller is paid with its own freshly signed credential.
  • Router: a Tempo seller's error after payment is reported as "it may have been charged", unless the chain shows the payment was never taken, which is read only when the caller's answer window outlasts the payment's expiry.
  • Router: an MPP seller whose own llms.txt example takes a list (for example urls: [...]) receives a single url, query or id in that shape; the receipt's paramsAdapted names the rename. An ambiguous case is sent as written, and a seller with a published input schema is unchanged.
  • Payments: the CDP facilitator's auth headers are built by the server itself, so a self-hosted server no longer installs @coinbase/x402; the same CDP key variables apply.
  • Surfaces: /revenue's MPP table shows each rail's last settlement by date, marked "ours" when it was our own, as the x402 table does.
2026-11-02

New pro models, the 2026-12-11 retirements, MCP install text, lite search, Stellar RPC

  • Gateway: the pro tier serves openai/gpt-6.1-terra (and its -pro twin) and moonshotai/kimi-k3.1-pro, both with a 1M-token context and tools.
  • Gateway: gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3 and o3-pro are served as themselves until 2026-12-11, then by their named gpt-5.6 successors at the tier and price of the route called, the swap named in agent402_model_substituted.
  • Gateway: gpt-5-codex and gpt-5-chat-latest, shut down upstream, are served on the premium and metered tiers by gpt-5.6-sol, the swap named.
  • Gateway: the metered tier's default model is Claude Haiku 5.5. A call that names no model but sends temperature, top_p, top_k, an assistant prefill or a fixed reasoning budget is served by Claude Haiku 4.5 instead of a 400; /v1/models and the route descriptions name both.
  • Gateway: the base tier falls back to gpt-6-luna, then deepseek-chat, when the requested model has no available host, as the nano tier does.
  • Judgment routes run Jev 1.14.0.
  • Surfaces: server.describe, llms.txt and the README offer the hosted connector at https://agent402.tools/mcp in place of an add-server form that has closed.
  • Packages: agent402-mcp 0.13.27 carries the same server.describe install text, and every install pin names it.
  • Tools: exa-search accepts type "lite": the fastest search, served from cached pages, with every filter the tool takes. Its published example runs it.
  • Facilitator: on pubnet an RPC already on version 30 is tried first, ahead of the Protocol 30 vote, and startup logs each RPC's version with a warning for one below protocol 30.
2026-11-01

Payment libraries on x402 2.29, model "default" served

  • Payments: the server runs the x402 2.29 libraries (core, express, evm, svm, stellar, avm, fetch, extensions) and mppx 0.13.6, and agent402-mcp 0.13.26 runs x402 2.29 core, evm, svm and fetch. The 402 challenge a buyer echoes back is unchanged in size, and a free-tier tool's 402 body still leads with its proof-of-work option.
  • Payments: the router pays an Algorand seller that advertises the full genesis-hash network id, echoing the seller's own accept.
  • Gateway: model "default" on any chat wire is served as the tier's default model, exactly as an omitted model is, and the metered 402 quotes it that way.
2026-10-29

The transactions page updates itself, every rail by name, a cleanup

  • Surfaces: an open /revenue page reads its figures again every minute while the tab is visible (the headline and the rail and MPP tables; the chart every fifth minute), for the same date range (a preset range moves with the day). A failed read keeps what is shown.
  • Surfaces: /revenue's timestamp line says when the payment figures were last read from the chains (every 5 minutes) apart from the rail status scan behind the Status column (every 4 hours).
  • Packages: agent402-mcp 0.13.25 accepts every rail by name in AGENT402_NETWORKS (monad, celo, avalanche, sei, optimism, stellar and algorand joined base, polygon, arbitrum, robinhood, arc and solana); a raw CAIP-2 id still works.
  • Tools: dex-pair, dex-pool and dex-quote answer on a deployment without a provider key, reading public nodes the way evm-rpc does.
  • Payments: on Algorand the route-execute tiers settle to the router's own spending wallet, as they do on Base. Every other route on Algorand settles to the treasury as before.
2026-10-29

The metered gateway leads, speech quoted from the text, each sale's arrival path

  • Surfaces: the metered gateway (/v1/metered/chat/completions and its Messages and Responses twins) is the default way to call a model on /llms.txt, the openapi guidance, SKILL.md, the connector's server.describe and payment.info, the home page, the FAQ, the x402 guide, the README and the wiki: the 402 quotes the request from its body (the input estimated from its tokens with headroom, plus max_tokens), and on x402, Tempo and credits settlement never exceeds that quote; a card payment adds the processor fee. The flat tiers stay as the predictable-price option, and a flat chat tier's unpaid 402 names its metered twin in meteredTwin.
  • Surfaces: a retired route's 410 carries a Sunset header with its retirement date and, when a replacement is live, a Link header with rel="successor-version" naming it; the retired pairwise converters name /api/unit-convert. The JSON body is unchanged.
  • Surfaces: /api/revenue's cacheSeconds is the HTTP max-age it sends; refreshesEverySeconds and nextRefreshAt state the cadence of the rail scan behind it. The privacy page (dated 2026-10-29) says the sales ledger keeps how a paid call arrived.
  • Speech: /api/tts and /api/tts-hd are quoted per request from the length of the text, a floor plus a per-character rate rounded up to the next $0.001, so 2,000 characters costs what the flat price did; the cap stays 2,000 characters on both. The 402, Tempo and credits all read the quote, and /api/pricing, /openapi.json, the tool pages and /llms-full.txt publish the range and the formula. /api/dub keeps its cap and price; /api/tts-lite stays flat.
  • Speech: /api/tts and /api/tts-hd are called directly; route-execute refuses routes quoted per request, so the 402 carries the real price.
  • Packages: agent402-client 0.8.21 takes a userAgent option (a calling package's own product token, sent before the client's). agent402-mcp 0.13.24, agent402-agentkit 0.1.10, agent402-ai-sdk 0.2.12, agent402-anthropic-tools 0.1.13, elizaos-plugin-agent402 0.2.10, agent402-google-adk 0.1.12, agent402-langchain 0.2.12, agent402-llamaindex 0.1.13, agent402-openai-agents 0.1.13, agent402-openai-tools 0.1.13, agent402-strands 0.1.13 and agent402-langchain 0.1.6 on PyPI name themselves in the User-Agent of every request; the adapters that pass it require agent402-client 0.8.21 or later. agent402-openclaw 0.5.8 ships its README's metered-default wording.
  • Packages: agent402-mcp 0.13.24 pins viem, @solana/kit and @modelcontextprotocol/sdk to exact versions, so an install resolves the signing libraries it was tested with. agent402-tollbooth 0.10.8 accepts the x402 packages from 2.0.0 up to, not including, 3. agent402-openclaw 0.5.8, agent402-agentkit 0.1.10 and elizaos-plugin-agent402 0.2.10 cap each optional peer below its next major (the x402 packages and viem below 3, @coinbase/agentkit below 1, zod below 5); agent402-ai-sdk 0.2.12 caps ai below 8 and agent402-llamaindex 0.1.13 caps llamaindex below 1.
  • Operations: each sale records the path it arrived on (the hosted connector's loopback, one of our client packages by its User-Agent product token, or HTTP; earlier rows read unknown). The operator sales and tool-failure views group by that path, and an operator cohort view lists wallets past a per-day distinct-tool or per-hour call threshold beside a daily series without them. Public figures are unchanged. An operator test wallet that pays the Gateway batched route is booked as our own traffic.
  • Operations: a catalog call served on the free proof-of-work or trial tier that ends in a 5xx counts on its own lane of the operator tool-failure view, beside a per-rail breakdown; the toolFailures word on /api/gateway-status reads paying buyers' outcomes, and free outcomes only when a tool fails nearly every free call.
  • Limits: a request body nested more than 64 levels deep answers 400; a compressed request body (any Content-Encoding) on the large-upload routes answers 415; a large upload while this host's in-flight upload budget, or one address's share of it, is full answers 503 with Retry-After; repeated unpaid large bodies from one address to a quoted route answer 429; a PDF whose streams decode past the processing limits answers 422, and a PDF call while the PDF workers and their queue are full answers 503 with Retry-After; base58 text is capped at 4,096 characters (400 past it). None of these is charged.
  • Live view: where a network holds the event stream back, the page switches to short polls of /api/poll after 8 seconds and keeps updating; its status label reads the connection, so a quiet minute on a working connection reads live.
2026-10-29

Lost answers booked at the paid price, budgets fitted under the cap, Algorand by its CAIP-2 id

  • Payments: a card report bought at checkout is generated from the Stripe webhook as well as from the success page, so a buyer who closes the tab still gets it.
  • Payments: an async job or MCP task whose settled answer was lost is booked as a debt at the price the buyer paid on its chain (premium and floor included, or the metered amount), with the x402 settle receipt as proof.
  • Payments: a streamed metered call paid with prepaid credits is debited at the usage its last frame reports, not at the quote held when it started.
  • Payments: a card report refund that could not be sent is read on the refundsOwed word of /api/gateway-status, so the status probe and the heartbeat page on it.
  • Payments: a buyer that leaves while its payment settles is charged, and a resend of the same payment voids the debt and is served the answer, and a resend after the refund was paid is refused. A hang-up forgiveness ticket is priced on the chain the verified header names.
  • Payments: a refusal on a Tempo push payment says the transfer was claimed and a refund is owed; copy that says a refusal is not charged names x402, the rail that holds on.
  • Payments: a credits pack refunded in full before its claim mints no key; a partial refund mints net of it; after minting, a refund takes its amount off the balance and a full refund or a dispute disables the key. A disputed subscription payment drops the subscription from the active list until the dispute is won, which also re-enables a key the dispute disabled.
  • Payments: the unpaid-quote limiters and the gateway cache count a payment header only when it decodes to a payment on a chain this server sells on.
  • Payments: agent402-client 0.8.20 pays the Circle Gateway batched accept on Arc and Base with the gateway option (an EIP-712 signer whose address holds a USDC deposit in Circle Gateway): the authorization is signed under the Gateway domain the accept carries, the caps hold before the signature, a pending settlement is resent with the same header, and a 402 with no batched accept falls back to the payment fetch. Off by default. A refusal for a short Gateway balance says to deposit, not to fund the wallet, and reads no wallet balance. The mechanism is on the wiki's Circle Gateway page and in the x402 guide.
  • LLM gateway: a reasoning or thinking budget is fitted under the output cap the price covers on the chat, Messages and Responses wires, or refused with a 400 when the provider's floor leaves no room.
  • LLM gateway: /v1/audio/speech stops walking links once its timed-out budget is spent, and a stream the upstream dropped after its first frame ends with an SSE error frame instead of silence.
  • LLM gateway: o4-mini is served by gpt-5.6-terra and the answer says so in agent402_model_substituted; the premium tier no longer lists it.
  • Payments: a Solana, Stellar or Algorand x402 payer is screened against the sanctions list after its payment verifies, as an EVM payer already was; a listed signer is refused before the tool runs.
  • Router: a Solana payer's route-execute leg runs under a time budget, as the Algorand and Tempo legs do; a resolve that used it up is refused before anything is signed.
  • Router: purchases the router makes with our own wallets never count toward a seller's settlement proof, on every source the floor reads.
  • Router: /api/route serves a seller's name, homepage, description and tags through the same listing screen as the index, and our own catalog is recognized by canonical host, a redirected manifest included.
  • MCP connector: server.describe no longer lists the client names seen since boot; a paid call is booked once, by the route it reaches; tasks/cancel reaches a task running on another replica.
  • MCP connector: a paid blocking call to a slow route from a client without the tasks extension is refused before any payment, with the guidance the HTTP route gives; the free-tier limit copy says the figure is shared across replicas.
  • Surfaces: each chain's settlement premium is published as payment.premiumUsdByNetwork on /api/pricing, in /llms.txt, in the openapi guidance and on the connector's payment.info, beside the per-chain floors.
  • Surfaces: Algorand mainnet is offered under its 32-character CAIP-2 id; a payment naming the older full-hash id still settles. agent402-client 0.8.20, agent402-mcp 0.13.22 and agent402-openclaw 0.5.7 read both spellings; the earlier client matches only the old id. agent402-mcp 0.13.22, elizaos-plugin-agent402 0.2.9 and agent402-agentkit 0.1.9 describe a credits key as sold or already issued, and the mcp package shows a buy link only while the service's /api/pricing says credits are on sale.
  • Surfaces: /health answers cross-origin requests, and a cdnOrigin word on /api/gateway-status reports whether a CDN-range peer reached the origin without its edge secret.
  • Surfaces: /.well-known/x402 states under payment.dataHandling that payment annotations are not read as readsAnnotationFields, which replaces readsPaymentMetadata; the privacy page names readsOnly and readsAnnotationFields.
  • Surfaces: the router's dispatch legend on /api/index carries settlementNetting (on or off) and its self-funded reason says it is read only while netting is on; a seller's historyLegend says a crawl outcome counts the routes found, from the manifest or from an OpenAPI, agents.json or llms.txt read.
  • Surfaces: the home page labels a seller whose name reads as a page title by its host.
  • Surfaces: the privacy page carries a rights section for readers in the EU and the UK, and its backups wording names the state database.
  • Operations: the operator view of a public surface reads X-Operator-Token only; an Authorization header there is a buyer's credential. An operator session is known on every operator route across containers.
  • Operations: the nightly backup runs once a night across replicas; deploy and probe steps that run package code see no job secret; @hono/node-server 2.1.3 in the root and mcp overrides; the agentkit-live lockfile installs again.
2026-10-28

Prepaid credits for our own services, with a daily limit and sales tax handled

  • Prepaid credits are a prepayment for Agent402's own services, for business and developer use: not cash, not transferable, never expiring, with no fees. The terms and privacy policy (both dated 2026-10-28) say so, and the checkout shows the rules.
  • Routes that buy from an outside seller with our wallet (the router's execute tiers, seller-payability, decide-execute and the flight routes) take a wallet payment over x402 or MPP on a chain; prepaid credits and per-call card payments are refused on them with reason third-party-purchase.
  • One buyer may buy at most $1,000 of credits in any 24 hours, matched by email or card; a purchase past that is refunded in full and issues no key, decided one buyer at a time across servers.
  • A decision paid with prepaid credits or a card earns no execution credit, so card-funded value never pays decide-execute.
  • An unspent credits balance under $10 is refunded on request, and a refunded or disputed purchase disables only the key it issued.
  • Unknown or malformed credits keys are counted per client and shown to the operator; a valid key is never refused because of them.
  • Credits checkout asks for a billing address, offers a business tax ID field and requires the business-use and terms answers, which the key keeps. A buyer billed in the EU or the UK enters a VAT number, or the purchase is refunded and issues no key. Prices are the same everywhere and include North Carolina sales tax on generated speech, audio and video for a buyer billed in North Carolina by card, which each of those tools' pages states.
  • agent402-mcp 0.13.21 lists router.execute only with a wallet key; agent402-client 0.8.18, agent402-openclaw 0.5.6, elizaos-plugin-agent402 0.2.8 and agent402-agentkit 0.1.8 carry the updated credits wording.
2026-10-28

Cache answers keyed on every input, steadier geocoding and ENS lookups

  • The response cache keys each answer on every input the call sends, so calls to geocode, place-search, fx-rate, weather-alerts, earthquakes and the other cached tools with different inputs never share a cached answer. An answer from the backup geocoder is kept for 10 minutes.
  • Decide keeps the task's letter case when it reuses a plan, so tasks that differ only in a URL path or an address get their own plan.
  • Geocoding sends at most one request a second to its primary source across the service; a call that would wait longer is answered by the backup geocoder.
  • unit-convert reads Kb, Mb, Gb and Tb as bits; MB, mb and every other unit name stay case-insensitive.
  • ens-resolve reads through the ENS universal resolver, so names whose records moved (nick.eth) resolve; a name with no owner is found: false.
  • Payment verification reads Solana transactions sent as version 1.
  • page-change answers to urlwatch, url-watch and watch-page.
  • Every paid 402 fits the response-header limit of Node's built-in fetch: a route's discovery block trims its input schema first and points to its full output example when it would not fit.
  • llm-premium serves the retired o3-mini and o4-mini ids with gpt-5.6-terra.
  • The Kalshi tools read Kalshi's dedicated API host, every GitHub API call names API version 2026-03-10, and hunter-email-verify fills result from status when the source leaves it out.
2026-10-27

agent402-mcp 0.13.20: clearer tool safety labels and pinned install commands

  • agent402-mcp 0.13.20: tools that reach the network are labeled not read-only and open-world, so hosts ask before running them; only the local describe and payment lookups are read-only.
  • agent402-mcp 0.13.20: router.execute and sellers.list are listed only when a wallet or credits key is set, or with AGENT402_SHOW_ROUTER=1. Calls to them still work.
  • agent402-anthropic-tools, agent402-llamaindex, agent402-openai-tools and agent402-strands 0.1.12: the npm listings name every settlement chain, Arc included. No code change.
  • agent402-mcp 0.13.20 and the hosted /mcp: every listed tool description is at most 400 characters, cut at a sentence; a paid tool opens with its price. The full description stays on catalog.find.
  • agent402-mcp 0.13.20: install commands are pinned to a published version, and the startup instructions describe the tools and what they do.
2026-10-23

Spending caps count the price you pay

  • agent402-client 0.8.17 and agent402-mcp 0.13.19: with a prepaid credits key, a spending cap counts the route's own price, not a higher price another chain's payment option carries, so a budget lasts as long as it should.
  • agent402-client 0.8.17 takes payNetworks, the chains a pre-wrapped payment fetch pays on, and counts the dearest option on those chains (the dearest of all when none of a quote's options is on them); without it the cap still counts the dearest option on any chain. Its chain names now cover every chain the gateway offers.
2026-10-22

Please upgrade the buyer packages

  • Please upgrade to agent402-client 0.8.16, agent402-mcp 0.13.17, agent402-agentkit 0.1.7, agent402-openclaw 0.5.4, elizaos-plugin-agent402 0.2.7, agent402-langchain 0.2.11, agent402-ai-sdk 0.2.11, agent402-google-adk 0.1.11 and agent402-openai-agents 0.1.12 on npm, and agent402-langchain 0.1.5 on PyPI.
  • Spending caps are checked against the payment that is signed, priced from the assets the package knows, so a payment over a cap is refused before it is signed, whatever amount the 402 quoted.
  • A request that can carry a payment does not follow a redirect. The package refuses it and names where it pointed, so a signature or a credits key stays with the host you configured; if the new address is the one you meant, set it as the base URL.
  • A paid call to a slow route (reports, video, the premium image) now sends Prefer: respond-async for a job link, or Prefer: wait=<maxSeconds> to wait on the connection. A paid call with neither is answered 400 before any payment is taken, so a client that would hang up first is never charged for an answer it did not receive. agent402-client 0.8.16 and later is run as a job on its own, and agent402-mcp 0.13.18 with AGENT402_ASYNC=off sends Prefer: wait.
2026-10-21

Slow routes say so, and jobs show their progress

  • Each slow route (reports, video, the premium image) states its typical and maximum run time on its /api/pricing row and /openapi.json operation, marks its /llms.txt line, and its 402 carries X-Async-Recommended with the same advice in the JSON body. The route-execute tiers, seller-payability and the fast and pro image tiers accept Prefer: respond-async too.
  • GET /api/jobs/{id} keeps its status (working, completed, failed) and adds state (queued, running, succeeded, failed), with a stage (video: submitted, generating, downloading; reports: their named steps), progress from 0 to 1, an ETA and Retry-After on every state that is not final. A route that does not report its own steps shows elapsed time against its typical run, marked as an estimate. Payment still settles only on the delivered answer.
  • On the MCP connector, every slow paid route runs as an MCP task for a client that declares the tasks extension, and tasks/get carries the same progress.
  • Faster runs: a domain audit probes in one round instead of three, research reads its source pages at once, the LinkedIn article generates its images together, and video checks for its finished clip every 2 seconds once it is due.
  • agent402-client 0.8.16 and agent402-mcp 0.13.17 send slow calls as jobs and collect them on their own, honoring Retry-After, with progress callbacks and MCP progress notifications.
2026-10-20

Dub, loop gate, email guard, page change and MCP package check

  • New tool dub (POST /api/dub) translates a text into a target language and speaks the translation in one paid call, priced as the sum of the chat tier and the chosen speech tier and quoted in its 402. The audio comes back as raw bytes with the translation in the X-Dub-Translation header, or as JSON with json: true. A failed step answers an error naming the step and is not settled on x402. Model-backed.
  • New tool loop-gate (POST /api/loop-gate) decides whether an agent loop should continue, stop or escalate after an iteration, with the checks behind the answer and a next step. Budget and iteration limits are checked in code first, and repeats are found lexically before any model runs. Model-backed for the goal and stuck judgments.
  • New tool email-guard (POST /api/email-guard) reads one email the way a mail-triaging agent should before acting on it, reporting hidden text, invisible Unicode, text present in only one part, links whose text names another host, header signals and sentences phrased as instructions to an AI assistant, each with evidence and offsets. No score and no verdict. Deterministic code, no model.
  • New tool page-change (POST /api/page-change) tells whether a public page changed since the last look, with nothing stored on our side. It answers a fingerprint of the readable text (a selector narrows it, ignore entries drop timestamps and counters), and a line diff with a similarity score when the previous text is sent back. Deterministic code, no model.
  • New tool mcp-package-check (POST /api/mcp-package-check) returns the published facts about an npm package that ships an MCP server, read before running it: version and package age, maintainers, provenance, install scripts, dependency counts, deprecation and the GitHub repository the manifest names. Observations only, no score. Deterministic code, no model.
  • /api/tts and /api/tts-hd back up ElevenLabs with Voxtral, then Grok voice, then MAI-Voice-2 on the same speech wire, each in all six formats.
  • New pages: /how-to-pay walks the buyer path on every payment rail, and /speech covers the speech tools, with routes, prices and examples read from the catalog.
  • On the MCP connector, audio from a paid call comes back as an audio block, with dub's translation kept.
  • agent402-mcp 0.13.14 requires MCP SDK 1.32.1; the server runs follow-redirects 1.16.1 and hono 4.13.13.
  • Outbound TLS from the server, the render worker, the Stellar facilitator and the canaries refuses a certificate chain through any of eight intermediate CAs whose keys are reported recoverable, keyed on each key's SubjectPublicKeyInfo hash. agent402-client 0.8.14 and agent402-mcp 0.13.15 apply the same refusal to their own requests on a dedicated dispatcher.
2026-10-20

Page speed says what to fix

  • page-speed answers an opportunities array from the same single load, so one paid call returns the measurement and what to fix: the LCP element (selector, size, lazy-loaded or waiting for a web font), render-blocking scripts and stylesheets in the head, images without reserved dimensions or larger than shown, fonts without font-display swap, bytes by resource type and resources over 100 KB, responses sent uncompressed or without cache headers, requests to other hosts, long tasks with the script that ran, layout shifts with the element that moved, and console errors. Each carries the measured bytes or milliseconds behind it, null where the load measured neither. Every existing field is unchanged and the price is the same.
2026-10-20

html-frames checks frames against a baseline

  • html-frames (POST /api/html-frames) takes an optional compare input: baseline, an array of {t, png} stills, or baselineUrl, a public URL of a second document under the same render contract (window.renderAt(t)), fetched through the public-URL guard and rendered the same way. Each compared frame carries similarity (0 to 1, identical stills score 1) and changedRegions (bounding boxes of the differing cells on a 32x18 grid, largest first, capped and saying so). A compare by baselineUrl renders two documents and is quoted at twice the listed price in its 402; every other body is quoted at the listed price. Deterministic code, no model.
2026-10-19

Page speed, HTML frames, and a video retry that collects the clip

  • New tool page-speed (POST /api/page-speed) loads one public URL once in headless Chromium on a mobile or desktop viewport and reports navigation timings, LCP, FCP, CLS, total blocking time, transfer bytes, request count, the heaviest resources, render-blocking scripts and styles, and console errors. Its measurement field says it is a single lab measurement from one server location, not field data from real users. Deterministic code, no model.
  • New tool html-frames (POST /api/html-frames) renders a self-contained HTML document with network access refused, calls its window.renderAt(t) for each requested time, and returns a PNG per time plus a contact sheet. Loading and every renderAt share one 25 s budget. Deterministic code, no model.
  • When the browser pool is full, render, screenshot, page-speed and html-frames answer 503 with Retry-After.
  • /v1/videos/generations: a request that times out answers 504, which is not settled on x402. A wallet payer can send the same request again unchanged within 30 minutes to collect the same clip.
  • Tools whose upstream is billed per call have a daily call ceiling. Past it, a call answers 503 until 00:00 UTC, and a 503 is not settled on x402.
  • stock-quote and stock-history read up to the last session the daily bars hold, so a read over a weekend answers instead of being refused.
2026-10-18

A guide for new sellers

  • /sell has a New sellers section: listing and being paid by the router are separate gates, how the unproven lane works, and what each routerDispatchReason means with what the seller can do about it.
  • seller-trust names why our own host is not on the proven lane instead of answering an empty provenBlockers list.
2026-10-17

Edit an image with a prompt

  • POST /v1/images/edits edits an image from a prompt and one to four PNG or JPEG reference images (JSON base64 or data: URLs, or one multipart image file, so an OpenAI images.edit() client works unchanged) and returns one JPEG of about one megapixel in the first reference's aspect ratio. Model-backed.
  • /v1/images/pro and /v1/images/fast gain a fast failover model and keep their 1024x1024 JPEG output.
  • crypto-news recovers within seconds when every news feed failed once: a retry fetches the feeds again instead of repeating the cached failure.
2026-10-16

Both router lanes in seller reports, and pages that read on phones

  • seller-trust and seller-dossier report both router lanes from the router's own verdicts: the proven lane with each route-execute tier that can pay the seller, and the Base unproven tier with its ceiling. routableByOurRouter is true when either lane can pay; routableAsProven keeps the proven meaning.
  • A crawled seller's price is read the same way whether the seller states it as a dollar label, a number or an object, so label-priced routes count as paid.
  • Market-data quotes and history answer 503 when the data source stalls mid-answer, and a 503 is not settled on x402. Server instances share one cache of market bars, so a repeat read is served without waiting on the source.
  • A Solana payment quoted by one server instance and paid on another settles: every instance names the same fee payer.
  • Site pages read cleanly on phones from 360 px wide: tables become cards, labels stay whole, and text keeps a readable measure.
2026-10-15

Questions about images, and search that forgives a typo

  • POST /v1/judge/vision (preview) asks typed questions about up to four PNG or JPEG images: a yes or no probability, a choice, a score, or a box that says where something is, as edges from 0 to 1. Name each image and refer to it as `name` in a question. Built on Jev features its maker labels experimental, and model-backed.
  • POST /v1/judge/locate (preview) finds up to four things in one image: each comes back with whether it is there and its box. A box is always returned, so found reads false when the model judges the thing absent.
  • POST /v1/judge/long (preview) runs /v1/judge's questions over a document of up to about 262k tokens in one call.
  • On /v1/judge, jev-latest is the Jev version we have tested, and every answer names the version that served it; jev-preview reaches the newer release.
  • /api/find corrects a one-letter slip in a long word and says what it corrected in `corrected`, and when no tool does the task, the nearest matches it still returns are marked `weak`.
  • Receipts, usage, attestations, feedback, refund lookups, monitor links and Decide quotes read the same record whichever server instance answers.
  • Site pages were checked and fixed for color contrast, form labels, link styling and keyboard access to scrolling code and tables.
2026-10-15

A complete sanctions list, and steadier search under load

  • sanctions-wallet now reads OFAC's full SDN XML export. Since it launched on 2026-09-12 it read the CSV export, which cuts long entries short: it saw about half of the published digital currency addresses, and some Tron, Dogecoin and other case-sensitive addresses were stored in the wrong case. An address in either group could have been answered as not listed. Every published address is now matched exactly as listed.
  • Search and routing (/api/find, /api/route and the MCP catalog tools) bound every uncached search with a deadline and recover on their own if one stalls; under load they answer 503 with Retry-After instead of hanging.
  • Every published npm package retries a discovery read that answers 503 with a retry delay, a few times and briefly, and never repeats a paid call.
  • Data tools that wait on an outside service answer 503 naming the service and the step when it does not answer in time, and nothing is charged.
  • Transcription with diarize:true adds language_confidence, the model's 0 to 1 confidence in the language it detected. Speech requests, and transcription with diarize:true, route only to model providers that do not collect the data, and to zero-data-retention endpoints wherever every endpoint of the model offers it.
  • stock-quote and stock-history read an end-of-day summary dataset when one is available: the official close and that dataset's total volume, returned as volume. Each answer names its dataset and coverage; a read that falls back to the three-venue feed says coverage three-venue and returns volume null.
2026-10-09

A third model behind every judgment

  • /v1/judge adds microsoft-decision-1 as a backend. The default order is now jev-latest, then microsoft-decision-1, then gpt-6-luna; name any one first with model. The answer names the model that served, and fallbackFrom when the first was unavailable.
2026-10-08

Collect slow reports later, and richer free SEC pages

  • A paid call to a slow route (reports, video, the premium image, decide execute) can send Prefer: respond-async: it answers 202 with a job link at once, and GET /api/jobs/{id} returns the answer when it is ready. Payment still settles only on a delivered answer; each slow route now says how long it can take.
  • An Idempotency-Key call sent again while its first copy is still running gets 409 with Retry-After instead of running twice.
  • On the chat wires, a model provider refusing the request itself answers 400 with the reason, after failover has tried the next model.
  • The free SEC company pages add three years of revenue, net income and assets, twelve months of filing activity with the reasons for each 8-K, and recent filings; insider pages total the open-market flow and fund pages show ten holdings.
  • agent402-mcp 0.13.11 lists route_and_execute as router.execute (the old name still works), and its Docker images include every file the server loads.
2026-10-08

Decisions on the OpenAI wire, and two models behind every judgment

  • /v1/judge falls back to gpt-6-luna on the OpenAI Decisions wire when jev-latest is unavailable (a third backend followed on 2026-10-09). The answer shape is unchanged; it names the model that served, and fallbackFrom when the first was unavailable.
  • POST /v1/decisions speaks OpenAI's Decisions wire: point an OpenAI SDK here and decisions.create works unchanged, paid per call, answered by gpt-6-luna with jev-latest as the fallback.
  • The transcription examples use a new two-voice sample, so diarize:true shows two speakers, and the image, OCR, PDF and OpenAPI examples read this site's own sample files.
2026-10-07

New voices and speaker labels

  • /api/tts and /api/tts-hd move to new speech models: each of the ten voice names has its own voice, 21 more voices can be named directly, and all six formats (mp3, opus, aac, flac, wav, pcm) are served.
  • Transcription takes diarize:true for speaker labels and word timestamps, on /api/transcribe, /api/transcribe-pro and the OpenAI transcription wire, at the same price and cap.
  • /api/tts and /api/tts-hd are repriced for the new models; current prices are on /pricing and in every 402.
  • Most published examples now fetch from agent402.tools and its own sample files, so they work the same for every buyer; the rest follow as their sample files go live.
2026-10-06

Claude Code pays from a wallet

  • The local proxy (agent402-openclaw 0.5.0, `npx agent402-openclaw proxy`) now answers the Anthropic Messages wire too: point Claude Code at it with ANTHROPIC_BASE_URL and each turn is paid from your wallet over x402, no key to buy.
  • The metered Messages route no longer refuses a thinking budget that only collides with its output cap: the budget is clamped along with max_tokens, so Claude Code on Haiku works.
2026-09-30

Live payments view

  • live.agent402.tools shows x402 payments on Base and MPP payments on Tempo as they settle, one walker per payment, with sellers named from their public listings. It runs as its own read-only service.
2026-09-30

New Base sellers can be routed before they have settlement history

  • The router pays Base sellers with settlement history above the floor. A seller below it is now tried too, under a $0.01 per-call ceiling, only after every proven seller for the task, only at the wallet its own live 402 names, and flagged unproven on the buyer's receipt. Solana has had the same tier since 2026-09-01.
  • The index shows it: a Base verdict of settlement_required carries unprovenTier when the floor is the only thing in the way and the route's price is within the ceiling.
  • When a seller's manifest cannot be read and the crawl falls back to its OpenAPI, agents.json or llms.txt, the seller record now names each file that gave nothing and why (fallbackErrors).
  • /revenue: the MPP table shows outside dollars per rail. Base and Celo MPP payments settle as x402 USDC and are counted in the x402 table.
2026-09-30

Decide: a call-ready plan for any job, and a way to run it

  • POST /api/decide turns a task into a plan: which tools, from this catalog and from outside x402 sellers with a recently verified 402, in what order, with fallbacks and input params that validate against each tool's schema. Priced by depth (quick, plan, full); every tool in a plan says whether it is ours, and the ranking has no first-party term. See /decide.
  • The fee comes back as an execution credit. POST /api/decide/execute runs the plan: our tools directly, outside steps bought from the seller on Base and resold at the seller's price plus a disclosed markup. Spend stops at the budget, fallbacks are tried in order, unspent money returns as a credit, and a run where no step succeeds is not charged.
  • A parameter the plan could not take from the task is left as a <placeholder> for the agent to fill, and execute never sends a placeholder to a paid tool. Each written value is checked against the task before it is kept.
  • Outside sellers whose inputs are all optional are now indexed with those inputs named, so a plan can fill them instead of calling the route empty.
  • decide.feedback on the MCP connector (and POST /api/decide/feedback) records whether a step worked; it is free and feeds the ranking.
2026-09-30

Live transfers on /revenue, and tighter proof for the sellers the router pays

  • /revenue, /api/revenue and the chain pages read their recent transfers from the settlement ledger on every load, so a new settlement shows on the first refresh once the ledger has recorded it (it reads the chains every five minutes). Wallet balances still refresh hourly, and the page says so.
  • The router counts a seller's buyers without the payers whose every payment was refunded, and an MPP seller on Tempo needs three distinct outside payers as well as its transfer count, the same bar as Base. Transfers a seller sends itself and our own payments never count.
  • A seller that takes the router's payment and then does not deliver is recorded as failing on that route, on Tempo as well as x402, and a later settled answer clears it.
  • A Tempo payment's payer on sales and refund records is the sender the signature or the chain proves, never a name the client wrote. A push payment whose request is refused before it is served is recorded as owed, and cleared if the same payment is retried and served.
  • Repeat disconnects past the forgiveness budget are held for review in the refund run instead of planned as ordinary refunds, and a settlement recovered through a backup facilitator frees the wallet's in-flight balance at once.
  • Re-registering an origin re-checks its routes at once, then at most once every ten minutes; the answer says when the next re-check opens. /api/selfcheck serves a cached run to anyone and a fresh one at most every thirty minutes.
2026-09-29

Purchases from other sellers run inside the buyer's authorization, and the paid path has two observers

  • route-execute and seller-payability pay another seller for an EVM buyer only while the buyer's own authorization can still settle after that seller answers. With too little of the window left they answer 504 before paying anyone, and nothing is charged. A stock client's 300-second window always has room, and a payability check run in a shorter window says so in its flags.
  • On the report products, a wallet's concurrent runs are admitted while its balance covers them together. A run the balance cannot also cover answers 429 before it starts, and nothing is charged.
  • A paid call to another seller that gets no answer ends that request: route-execute tries no second seller for it and says so in its answer.
  • Seller routes are judged one at a time: a route whose payment layer turns the router's payment away twice is set aside for a while, the seller's other routes stay routable, and a settled answer from the route brings it back. The seller dossier names a route that is set aside.
  • Seller answers, 402 bodies and live-402 reads in the index decode the way Response.text() does, so JSON that opens with a byte-order mark parses.
  • A Tempo pull credential names its sender by its signature: secp256k1, p256 and webAuthn, and access keys, including a new key authorized in the same transaction on its first use. Per-buyer bounds count that sender, and routes that pay another seller before settlement, or run long, accept a pull credential from a sender the signature or the chain proves.
  • /status: the paid call path is observed every 5 minutes by an outside probe as well as by the GitHub heartbeat, and a failure either observer records stands until that same observer sees the path work again. The page reads from indexes, so it builds as quickly with years of history as with a month.
  • The hosted connector's paid cut-off and task-cancel messages say that a charge which reached no answer is recorded as owed in the refund ledger and repaid after review.
2026-09-28

The 402 body carries the payment requirements

  • Every 402 from the paywall carries the same payment requirements in its JSON body as in the PAYMENT-REQUIRED header: x402Version, resource, accepts and extensions. A refused payment keeps its own explanation in the body beside them.
  • agent402-mcp 0.13.5, agent402-openclaw 0.4.4 and agent402-client 0.8.9 report a refused payment by its reason.
  • A paid call whose buyer disconnects before the answer is sent is not settled, within a daily allowance. A call priced above that allowance, a call once it is spent, and a call on a route whose effect outlives the answer (memory writes, attestations, feedback, and purchases from other sellers) settle as before, and the undelivered answer is recorded in the refund ledger and repaid after review.
  • A Tempo credential whose transfer is already on chain is finalized before the call runs.
  • Algorand on routes under one cent follows the facilitator's sponsored allowance: while the month's allowance is spent, those routes offer the other rails and GET /api/rails names the restriction. Routes of one cent and more keep Algorand throughout.
  • Seller index: chains and pay-to addresses learned from a live 402 stay with the method that answered them, and a row with no read of its own is read first.
  • The x402 leaderboard reads x402 v1 listings that name Base by its shorthand.
  • deepseek/deepseek-v3.2 is served again.
2026-09-24

Integration and learn pages

  • The four Polymarket tools are retired. Each route answers 410 naming the nearest Kalshi tool: kalshi-markets for search and order books, kalshi-event for one market, kalshi-live-data for price history.
  • New /integrations pages for every published package and /learn explainers for x402, HTTP 402, MPP and agent payments.
  • /llms-full.txt lists every catalog route with its price.
  • Tool pages now show parameters, example requests and responses, and related tools.
  • Model gateway: gpt-6-luna is the nano default and leads the auto router's fast band, gpt-6-sol is on the pro tier, Claude Opus 5.5, Grok 4.5 to 4.7 and qwen3.8-max-prime are served with their own settings, and four DeepSeek models the upstream removes on 2026-09-28 are refused by name with a successor named.
  • /v1/images/generations is served by FLUX.2 Pro, with GPT-5 Image Mini as the failover, ahead of Gemini 2.5 Flash Image's shutdown on 2026-10-02. The request and response are unchanged: one 1024x1024 PNG per call as inline base64.
  • Fixed broken links on the FAQ and chain pages.
  • Seller index: a route that is not in the seller's own manifest or OpenAPI must answer a live 402 at least every 7 days and leaves the listing when it answers 404 or 405 twice at least an hour apart; a 410 removes any route; re-registering re-checks every route. /api/index?seller= shows each route's declared, source and lastVerifiedAt.
  • Lower prices on web search, news search, render, fed-funds, gas-estimate, edgar-company-lookup and sol-price (current prices on /pricing). Skill packs that use them follow.
  • kalshi-markets and kalshi-event return yesBidSize and yesAskSize, the resting contracts at the best yes bid and ask. The source retires its liquidity figure on 2026-10-01 and it already reads zero on markets with a live book, so liquidityUsd is now null with a note saying why wherever the source does not publish one.
2026-09-22

Five explorer-backed tools retired, and token-risk reads its facts from keyless probes

  • contract-inspect, address-profile, token-info, token-holders and tx-inspect are retired. Each route answers 410 naming its replacement where there is one: contract-inspect to contract-source, address-profile to wallet-balance, token-info to token-metadata, tx-inspect to tx-receipt. token-holders names none, because nothing in the catalog reads a holder list for an arbitrary token.
  • token-risk and token-risk-pro read every token fact from keyless probes instead: name, symbol, supply, holder count and the top holders with their share come from the token-security probe, the market from the deepest DEX pair that has the token as its base, and source verification from Sourcify. The advertised chains are now exactly the ones that probe serves, so celo is gone and bsc arrives.
  • A token-security source that does not answer (a rate limit, an upstream error, a timeout) refuses 502 or 503 saying so, rather than a 422 telling the buyer to check an address that is correct. Nothing is charged either way.
  • The /api/chain/proxy verb is gone with the tool it pointed at; chain-storage reads the same implementation slot by its key. Every other verb in the namespace still resolves.
2026-09-21

Typed judgments, a router that says who it is, and a leaderboard that reads the seller's own prices

  • POST /v1/judge: a typed judgment over supplied state - a choice from your named options with a probability for each, a position on levels you describe, or a yes/no as a probability. Model-backed, declared as such, input bounded by bytes so the worst case is knowable before the call.
  • The router identifies itself on every paid call it makes to an outside seller: User-Agent Mozilla/5.0 (compatible; Agent402-Router/1.0; +https://agent402.tools/crawler) and X-Agent402-Via: router; /crawler documents both.
  • A seller origin on a non-default port is accepted at x402 registration, MPP registration and MPP discovery, and the port is carried through every later fetch.
  • Seller leaderboard: a transfer that matches a price the seller publishes counts as a settlement above the flat $0.75 ceiling, up to a $25 price-match ceiling; rows carry settlementsAbovePerCallCeiling and transfersSkippedOverCeiling, and GET /api/leaderboard accepts ?limit= as an alias of ?top=.
  • priceKnown on every /api/index seller row, /api/route row and seller detail: whether the published price could be read as a number. priceUsd is unchanged.
  • unit-convert accepts the other spelling of a unit (plural or singular, British spellings, spaces, the statute- prefix); an unknown unit is still a 400.
  • Heading order fixed on /reports, /monitors, /quickstart and /transparency; /leaderboard no longer prints the same figure twice; about 6 KB of repeated nav style removed from every page.
2026-09-20

Equities on a licensed feed, five tools and a pack retired, credits sales paused

  • stock-quote and stock-history read a licensed feed (three US venues, aggregated per session): volume is reported as venueVolume, stock-history takes up to 250 sessions, and the 52-week high/low fields are gone. options-chain, premarket-quote, stock-dividends, earnings-calendar, dividend-calendar and the market-open skill pack are removed.
  • Prepaid card credits are no longer sold; existing keys keep redeeming.
  • Google's native generateContent wire on every gateway tier; POST /v1/audio/transcriptions (OpenAI transcription wire, multipart); service_tier "priority" on the pro and premium tiers.
  • New tools: perp-dexs, perp-dex-markets and perp-dex-limits (Hyperliquid HIP-3 dexs); kalshi-live-data and kalshi-weather-index; edgar-13f-datasets and edgar-13f-dataset-head. sol-token-holders restored.
  • CORS on the machine surfaces (/api/, /v1/, /mcp, /.well-known/, /openapi.json, /llms.txt) with the payment headers exposed; an under-funded buyer's 402 points at what its balance covers; input aliases for 20 more required parameter names.
2026-09-18

Settlement evidence read from the chain on every rail we pay on, an identity of our own, and a monthly view

  • Base settlement evidence now seeds its wallet list from our own crawl as well as public discovery registries, so a seller we indexed ourselves is measured too. The crawl is a seed, never evidence: the chain still decides what settled, and each wallet's volume counts only for the origins it is paid at.
  • On Algorand, router candidates now come from our own index and proof from the chain (inbound USDC transfers to the payTo the seller advertises, self-transfers excluded). Every chain the router spends on now proves settlement from the chain.
  • For sellers: the index detail view shows your own description and tags, so you can confirm an OpenAPI edit landed, and re-registering an origin re-reads its documents.
  • An A2A AgentCard at /.well-known/agent-card.json and /.well-known/agent.json, checked by the same validator we sell as a tool; it declares HTTP+JSON, the transport this server runs.
  • An ERC-8004 identity: agent 94639 on Base, owned by the wallet our 402s name as payTo, pointing at /.well-known/agent-registration.json, which lists every way to reach us.
  • /revenue adds a Monthly view beside Daily and Weekly, with distinct buyers counted once per month.
2026-09-18

Astra and Fable on premium, effort on the Messages wire, and a faster router

  • Paid routes stay up when a facilitator is unreachable at startup: they answer an error until it comes back instead of the service stopping.
  • The premium tier admits openai/gpt-6-astra and anthropic/claude-fable-5.1 (1M context, reasoning mandatory).
  • Messages wire: top-level effort (low to max) on Claude 4.7+, checked against the model's own effort list; a setting a model cannot honor is refused with the fix named rather than dropped silently.
  • transcribe moves to a newer transcription model ahead of the old one's shutdown, with a 4-minute cap; the two tiers now differ only in cap and price.
  • Settlement falls back to a second facilitator when the first refuses before broadcasting.
  • /api/route answers from a candidate index instead of scanning every seller, with the same ranking, and the crawler reads every OpenAPI payment-annotation dialect.
  • agent402-mcp 0.13.2, agent402-openclaw 0.4.3, elizaos-plugin-agent402 0.2.3 and agent402-agentkit 0.1.3.
2026-09-02

Typed 402s, tokenized assets and MPP on the edge

  • Every 402 now carries the answer's typed output schema on its first accept (accepts[0].outputSchema) as well as in the bazaar extension, and every kind of client still settles.
  • Five tokenized real-world-asset tools: rwa-list, rwa-markets, rwa-asset, rwa-issuers and rwa-issuer, covering tokenized stocks, ETFs and commodities with onchain market data and their issuers.
  • agent402-tollbooth 0.10.0: the edge build (Workers, Next.js edge, Deno, Bun) takes MPP too, with a WWW-Authenticate: Payment challenge beside the x402 quote.
  • /api/route rows say whether the router will pay that seller now (routerDispatchEligible, routerDispatchReason, executeViaCallableNow), and a route's chains come from its live 402 even when the seller's manifest lags.
  • Tempo subscriptions: a renewal that fails on a slow network retries in minutes, and a renewal whose send timed out is checked on the chain before anything is signed again, so a landed transfer is never charged twice.
  • A refused MCP credential answers the spec's -32043. gpt-4.1-nano and the openai/o4 models retire ahead of their upstream dates (gpt-5.6-luna is the nano default, gpt-5-nano stays, gpt-5.6-terra joins premium), and /v1/images/fast fails over to gpt-5-image-mini.
  • The Solana seller leaderboard updates incrementally, a deploy never spends on a report and then discards it, every skill pack runs every tool it advertises, and feed-watch reads the newest feed items.
  • The daily paid canary now proves the Tempo subscription rail after a deploy.
2026-08-26

Why pay here, settle-actual for every buyer, and a client that routes

  • agent402-client 0.8.2: the User-Agent header now carries the package version and the test pins it to package.json so it cannot drift again (0.8.1 still sent 0.7.0). Contributed by epistemedeus (PR #985).
  • agent402-client 0.8.1: route(task, { k, include, network }) ranks tools across the host's current x402/MPP index over the free /api/route, read-only and wallet-free, with executeVia tier hints for route-execute. Contributed by epistemedeus (PR #974).
  • Why pay here: first-party differences, each linked to the surface that proves it (first at /why, now the #why section of the home page); the same points in /llms.txt, the MCP instructions, the README and the OpenClaw guide
  • Metered gateway: credits and card buyers settle actual usage like upto buyers; agent402-openclaw 0.3.x pays upto when the wallet holds a Permit2 allowance (permit2-approve), proven daily by the canary's metered-upto leg; the quote is priced from the same object the handler serves
  • Stellar facilitator: second and third Soroban RPC on transport failures, and a settle fallback
  • Report inputs: XBRL operating-to-net bridge and verbatim filing excerpts in the dossier, 13F amendments folded, Schedule 13G holders, derivative Form 4s, token-security and DEX market probes in token risk, DNS posture and recursive SPF in domain audits, page bodies and a citation audit in research; LinkedIn article package with LinkedIn-sized images
  • Wiki accuracy pass across 19 pages, generated from the live catalog and product tables
2026-08-18

Agentic Finance, the MPP leaderboard, and a tollbooth that settles from env

  • Positioned under Agentic Finance: /agentic-finance defines the category (DefinedTerm + FAQ structured data), /glossary is one canonical DefinedTermSet for the vocabulary (x402, MPP, 402, facilitator, EIP-3009, receipts, settlement, rails, dual-stack, PoW tier, SOR, tollbooth), and /blog/what-is-agentic-finance-aifi is the long form
  • MPP leaderboard on /mpp-marketplace: verified MPP sellers ranked by inbound USDC.e transfers on Tempo to the recipient their live challenge names, read from the chain by us (window, rolling 7d/30d, distinct payers, volume; routable rows are the ones the router will pay). Machine-readable at /api/mpp-index and /api/mpp-leaderboard
  • Smart Order Router pays MPP sellers on Tempo (chain-matched: an MPP/tempo buyer's payment funds a Tempo purchase), gated up front by that leaderboard and at pay time by on-chain proof
  • Native MPP settlement on Tempo (tempo/charge via Tempo's relay) alongside the Base/Celo evm method; TEMPO_CURRENCY accepts a CSV of currencies
  • agent402-tollbooth 0.8.0: the reverse-proxy CLI settles x402 AND MPP from env alone (TOLLBOOTH_PAYTO + TOLLBOOTH_FACILITATOR_URL); 0.7.0 added the x402: middleware mode that settles after the handler and MPP on the same 402
  • agent402-client pays MPP sellers with a stock mppx fetch; every package and identity surface names both wires
2026-07-24

MPP dual-stack - every endpoint speaks two payment protocols

  • Every paid endpoint now answers MPP (Machine Payments Protocol, the IETF-track Payment HTTP auth scheme) alongside x402, from the same URL at the same price
  • 402 responses carry a WWW-Authenticate: Payment challenge (EIP-3009 USDC on Base and Celo); Authorization: Payment credentials settle identically to x402; settled responses return a signed Payment-Receipt
  • Proven live daily: the paid canary buys over the native MPP wire on Base and Celo, receipts on-chain
  • Listed on MPPScan; /openapi.json now serves MPP discovery metadata (per-operation offers + service info)
  • MPP adoption is public at /api/stats: toolCallsServed.viaMPPWire
  • HEAD requests on paid routes now return the same 402 challenges as GET
  • Explainer: what-is-x402 now covers how x402 and MPP compare
2026-07-23

Smart Order Router - Algorand external settlement

  • POST /api/route/execute now settles on the buyer's chain: Algorand buyers are routed to proven AVM sellers and pay in USDC on Algorand
  • Algorand payment validity windows are checked before execution, so slower tools can't strand a payment
2026-07-21

Smart Order Router - external execution

  • POST /api/route/execute can buy from external x402 sellers and resell the result: one payment in, result plus receipt out
  • Only sellers with verified on-chain settlement history are eligible at launch; unhealthy sellers are never routed to (an unproven tier under a small ceiling followed on 2026-09-01 for Solana and 2026-09-30 for Base)
2026-07-20

On-chain intelligence tools + Celo rail

  • contract-inspect and address-profile: verified contract source, ABI, and address token/transaction profiles across major EVM chains (both retired 2026-09-22 with named replacements)
  • USDC on Celo joins the accepted settlement rails
2026-07-17

More settlement rails - USDG on Robinhood Chain, USDC on Avalanche

  • USDG (Global Dollar) on Robinhood Chain accepted for every paid endpoint
  • USDC on Avalanche accepted for every paid endpoint
  • Every rail is exercised by a daily paid canary with real settlements
2026-07-16

Text-to-speech returns to the /v1 gateway

  • /v1/audio/speech: OpenAI TTS wire format, mp3/pcm output, 2k-character cap
  • Served by a five-model failover chain - a provider outage never becomes the buyer's error
  • OpenAI voice names map automatically; native voice ids listed on /v1/models
2026-06-24

LLM vision, structured output, and content moderation

  • Vision: send up to 2 image URLs to any LLM tier - screenshot analysis, chart reading, image Q&A
  • Structured output: response_format with json_object or json_schema for schema-enforced JSON
  • Content moderation: /api/moderate - check text for harmful content across 13 categories
  • All guardrails enforced server-side: image count limits, schema size caps, data: URI blocking
2026-06-24

Full AI suite - TTS, STT, embeddings via x402

  • Text-to-speech: /api/tts and /api/tts-hd - 10 voices, 6 audio formats
  • Speech-to-text: /api/transcribe and /api/transcribe-pro - URL-based audio input
  • Embeddings: /api/embed and /api/embed-large - 1536 or 3072 dimensions for RAG and search
  • No API key needed - pay per call with USDC on Base, Solana, Polygon & Arbitrum (the rails at the time; the current list is /api/rails)
  • Self-hosters: bring your own upstream key to run these for free
2026-06-24

Code execution sandbox - Python/JS via x402

  • Run Python or JavaScript in isolated cloud sandboxes: /api/code-run and /api/code-run-pro
  • Returns stdout, stderr, expression result, and error traceback
  • Pro tier: 60s timeout and 50k char code limit for longer computations
  • Each call runs in a fresh, isolated VM - nothing persists between calls
2026-06-24

Image generation gateway - 3-tier GPT Image via x402

  • Generate images: /api/image-gen, /api/image-gen-hd and /api/image-gen-premium
  • Text-to-image - no API key needed, pay per call, returns base64 PNG
  • Three quality tiers from fast drafts to high-fidelity output
2026-06-24

LLM proxy gateway - 3-tier inference via x402

  • Chat completions: /api/llm, /api/llm-pro and /api/llm-premium
  • OpenAI-format interface - no API key needed, pay per call
  • Models at launch: GPT-4o-mini, GPT-4o, GPT-4.1, o3, o3-mini (the live list is GET /v1/models)
2026-06-23

Reliability improvements and observability

  • Per-tool analytics: every call now tracked with latency, cache, and error metrics
  • Improved upstream reliability for finance and government data tools
  • Automatic retry on transient network failures for market data endpoints
2026-06-23

Developer experience and SEO improvements

  • Proper caching headers on static and discovery routes for faster loads
  • /health endpoint now reports tool count, uptime, and mode (it has since been trimmed to the tool count and build)
  • Expanded sitemap with blog posts, adapter docs, and webhook pages
  • Wiki and docs navigation updated with new developer resources
2026-06-23

Crypto-hash, string, and calendar kits - 15 new tools

  • Crypto-hash kit: PBKDF2, scrypt, HKDF, constant-time compare, CRC32/Adler32 checksums (several since retired; the live list is /api/pricing)
  • String kit: Jaccard similarity, case conversion, fuzzy matching, character frequency, word wrap (several since retired; the live list is /api/pricing)
  • Calendar kit: ISO week numbers, leap year check, Easter date, epoch conversion, day-of-year
  • Google ADK adapter published - agent402-google-adk on npm
2026-06-22

Validation, encoding, and math kits - 15 new tools

  • Validation kit: phone formatting, XML validation, CSV linting, base detection, IPv6 expansion
  • Encoding kit: Punycode, NATO phonetic, Soundex, binary-text, Braille conversion (several since retired; the live list is /api/pricing)
  • Math kit: Roman numerals, Fibonacci, primality check, GCD/LCM, number base conversion (several since retired; the live list is /api/pricing)
2026-06-21

Decode-blob and trend-analysis skill packs

  • decode-blob skill pack - automatically detect and decode JWT, gzip, brotli, base64, or hex blobs
  • trend-analysis skill pack - fetch data, summarize, smooth, detect trends, flag anomalies, benchmark
  • Compression kit: 5 tools for gzip, brotli, and deflate compression/decompression
  • Stats kit: 5 tools for summary statistics, correlation, regression, moving averages, and outlier detection
2026-06-20

Security-audit and structured-scrape skill packs

  • security-audit skill pack - 7-tool domain audit covering DNS, TLS, WHOIS, HTTP, headers, SPF, and robots.txt
  • structured-scrape skill pack - render a page and extract structured data in one workflow
  • HTML kit: 5 tools for extracting text, elements, links, tables, and headings from HTML
2026-06-19

x402 economy dashboard and leaderboard

  • /economy - daily x402 ecosystem volume, concentration, and network breakdown (now the economy section of /marketplace)
  • /leaderboard - public on-chain ranking of x402 sellers by Base USDC settled volume
  • /api/leaderboard - machine-readable seller rankings
  • Smart Order Router (/api/route) - rank healthy tools across the x402 ecosystem (the ranking order has grown since; each /api/route row names it)
2026-06-18

Docs hub, analytics dashboard, and caching

  • /docs - wiki content rendered on-site with sidebar navigation
  • /analytics - live tool-level call counts, error rates, and latency percentiles (operator-only since 2026-10-01; public uptime is on /status)
  • Server-side response caching with cache-hit headers for supported routes
  • Idempotency support - Idempotency-Key header prevents double-charging on retries
2026-06-17

Tollbooth Cloud (since retired) and framework adapters

  • Tollbooth Cloud - hosted multi-site pay-per-crawl dashboard (retired; the self-hosted agent402-tollbooth replaces it)
  • 7 framework adapters on npm: OpenAI, Anthropic, Vercel AI SDK, LangChain, LlamaIndex, OpenAI Agents, AWS Strands
  • agent402-client SDK - find() + call() with auto-payment