x402.ottoai.services: x402 purchase results on Base, latest attempt 2026-10-27
78 Base listings. Latest result about the seller at each listing: 32 delivered · 0 failed on the seller's side · 18 with no such result among the attempts shown · 28 with no Base purchase. This counts, for each listing, the newest Base purchase that delivered or the newest Base failure on the seller's side. Attempts on vet402's side, not bought, not sorted, or awaiting on-chain verification are skipped.
By the latest attempt at each listing, whatever it was: 25 delivered · 0 failed on the seller's side · 13 on vet402's side · 12 not sorted (vet402 cannot show the failure was not its own) · 28 with no Base purchase.
Latest attempt: 2026-10-27 21:32 UTC. This page read the ledger at 2026-11-12 07:16 UTC and reuses that read for up to 5 min. The first view after a quiet period can show an older read.
Paste this badge on your page. It shows what vet402 received when it paid x402.ottoai.services, and links to this record.
[](https://vet402.com/sellers/x402.ottoai.services)<a href="https://vet402.com/sellers/x402.ottoai.services"><img src="https://vet402.com/api/badge/host/x402.ottoai.services.svg" alt="vet402 record for x402.ottoai.services" height="38"></a>Withdrawn from the catalog
Withdrawn from the catalog. This route is absent from a complete fetch of the public discovery catalog, so it is left out of the public L0 fail count. These routes are not in the counts above.
- x402.ottoai.services/earnings-flash
- x402.ottoai.services/holder-analytics
- x402.ottoai.services/hyperliquid-account
- x402.ottoai.services/hyperliquid-market
- x402.ottoai.services/portfolio
- x402.ottoai.services/swap
- x402.ottoai.services/token-top-holders
- x402.ottoai.services/trade-perpetuals
- x402.ottoai.services/wallet-holdings
- x402.ottoai.services/withdraw
- x402.ottoai.services/yield-farming-historical
- x402.ottoai.services/yield-markets
Rows marked census or retest were bought to give this seller a row of its own, to buy again after a failure on vet402's side, or to read again a listing whose latest delivery missed declared keys.
1.Your listings
- x402.ottoai.services/defi-analyticsGET
- Latest attempt
- 2026-10-27 21:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: asking… · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 22:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xe4b8…a089 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x3e8deb2c…5e53In export.csv?days=17: the row withattempted_at2026-10-27T21:32:04Z andresource_keyx402.ottoai.services/defi-analytics.After a fixNext purchase by vet402: Not before 2026-11-26 21:32 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /defi-analytics": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/defi-analytics": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /defi-analytics": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /defi-analytics": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-21 18:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x7b7f443d…8054Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x2db7…1dd1 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-10-15 17:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xf781d799…db47Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xf409…f937 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/twitter-summaryGET
- Latest attempt
- 2026-10-27 12:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: asking… · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 16:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x634d…5f77 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xef63e5ad…f810In export.csv?days=17: the row withattempted_at2026-10-27T12:02:41Z andresource_keyx402.ottoai.services/twitter-summary.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-11-02 12:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /twitter-summary": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/twitter-summary": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /twitter-summary": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /twitter-summary": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/llm-researchPOST
On 2026-10-26 05:32 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not counted against the seller (not sorted: vet402 unproven). The regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-10-26 05:32 UTC
- Result
- A signed payment got 402 again, on a request that differed from the unpaid one
- Whose side
- not sorted: vet402 unproven
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 22:40 UTC (within 120 hours of the last).What vet402 saw: vet402 took the payment terms from the 402 to its unpaid request, then sent the paid request with the body or query the listing declares, which the unpaid request did not carry. The seller answered 402 again (for example "No matching payment requirements"). The terms for the paid request may not be the ones vet402 paid, so this page does not count the row as the seller's fault.Last result about the seller: none among the attempts shown. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.1 USDC · payTo 0x0e84…b808. Input sent: body declared, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.1 USDC · payTo 0x0e84…b808 · nonce 0x2eff…6298 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · attempted by theretestIn export.csv?days=19: the row withattempted_at2026-10-26T05:32:27Z andresource_keyx402.ottoai.services/llm-research.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "POST /llm-research": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "100000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const POST = withX402( handler, { "/llm-research": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "100000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "POST /llm-research": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "100000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "POST /llm-research": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "100000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-12 18:01 UTC · Refused, and no payment was taken · not sorted: no charge
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 signed the payment and the paid request got a 4xx other than 402, with no settlement receipt and no transaction on the row. No money moved, and vet402 cannot rule out that its own request was the problem (held_reason unsettled_4xx), so this page does not count the row as the seller's fault. Since 2026-09-16 23:25:55 UTC vet402 sends the request body the seller's 402 declares (an empty JSON body when it declares none), and since 2026-09-27 23:27:16 UTC it adds the query parameters the seller's 402 declares on Base.The 402 terms vet402 signed: exact · 0.1 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.1 USDC · payTo 0x0e84…b808 · nonce 0xc5fd…c074 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.This purchase is from before 2026-09-16 23:25:55 UTC, when vet402 sent an empty JSON body on paid POST requests; this listing declares no body. - 2026-09-03 01:02 UTC · Refused, and no payment was taken · not sorted: no charge
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 signed the payment and the paid request got a 4xx other than 402, with no settlement receipt and no transaction on the row. No money moved, and vet402 cannot rule out that its own request was the problem (held_reason unsettled_4xx), so this page does not count the row as the seller's fault. Since 2026-09-16 23:25:55 UTC vet402 sends the request body the seller's 402 declares (an empty JSON body when it declares none), and since 2026-09-27 23:27:16 UTC it adds the query parameters the seller's 402 declares on Base.The 402 terms vet402 signed: exact · 0.1 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.1 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.This purchase is from before 2026-09-16 23:25:55 UTC, when vet402 sent an empty JSON body on paid POST requests; this listing declares no body.
- x402.ottoai.services/whois-lookupGET
On 2026-10-24 03:32 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not counted against the seller (not sorted: vet402 unproven). The next purchase by vet402 is not before 2026-10-30 03:32 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-24 03:32 UTC
- Result
- A signed payment got 402 again, on a request that differed from the unpaid one
- Whose side
- not sorted: vet402 unproven
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 13:40 UTC (within 120 hours of the last).What vet402 saw: vet402 took the payment terms from the 402 to its unpaid request, then sent the paid request with the body or query the listing declares, which the unpaid request did not carry. The seller answered 402 again (for example "No matching payment requirements"). The terms for the paid request may not be the ones vet402 paid, so this page does not count the row as the seller's fault.Last result about the seller: none among the attempts shown. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x4d44…bc63 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no txIn export.csv?days=21: the row withattempted_at2026-10-24T03:32:15Z andresource_keyx402.ottoai.services/whois-lookup.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-30 03:32 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /whois-lookup": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/whois-lookup": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /whois-lookup": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /whois-lookup": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/8k-material-eventsGET
On 2026-10-22 21:31 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not counted against the seller (not sorted: vet402 unproven). The next purchase by vet402 is not before 2026-10-28 21:31 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-22 21:31 UTC
- Result
- A signed payment got 402 again, on a request that differed from the unpaid one
- Whose side
- not sorted: vet402 unproven
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 13:40 UTC (within 120 hours of the last).What vet402 saw: vet402 took the payment terms from the 402 to its unpaid request, then sent the paid request with the body or query the listing declares, which the unpaid request did not carry. The seller answered 402 again (for example "No matching payment requirements"). The terms for the paid request may not be the ones vet402 paid, so this page does not count the row as the seller's fault.Last result about the seller: delivered on 2026-10-15 17:01 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x69b4…3bd4 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no txIn export.csv?days=22: the row withattempted_at2026-10-22T21:31:22Z andresource_keyx402.ottoai.services/8k-material-events.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-28 21:31 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /8k-material-events": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/8k-material-events": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /8k-material-events": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /8k-material-events": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-15 17:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xc383dfeb…460aDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xda35…ce3d · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/news-recapsGET
On 2026-10-22 15:32 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not on the seller's side yet, because that needs such a failure (a failure vet402 can show was not its own) at this listing on two different UTC days. If the failure is real, check the route's verify and settle step, and return the facilitator's error as errorReason, and the next purchase by vet402 is not before 2026-11-21 15:32 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-22 15:32 UTC
- Result
- A signed payment got 402 again
- Whose side
- not sorted: one failure so far
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 13:40 UTC (within 120 hours of the last).What vet402 saw: vet402 sent a signed payment and the server answered 402 again.Last result about the seller: delivered on 2026-09-22 06:02 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x5c8e…b59e · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault. vet402 puts a failure on the seller's side only after it sees one at this listing on two different days (UTC). If this one is real: Check the route's verify and settle step, and return the facilitator's error as errorReason.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no txIn export.csv?days=22: the row withattempted_at2026-10-22T15:32:20Z andresource_keyx402.ottoai.services/news-recaps.After a fixNext purchase by vet402: Not before 2026-11-21 15:32 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /news-recaps": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/news-recaps": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /news-recaps": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /news-recaps": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-22 06:02 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xef899800…4b0eDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xa952…f3c7 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-15 18:00 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x97a1…dd61 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-09 12:09 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x88d4aff4…d0acDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x27ec…963d · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-02 12:08 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x22a415a6…36a6Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/kol-sentimentGET
On 2026-10-22 09:31 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not on the seller's side yet, because that needs such a failure (a failure vet402 can show was not its own) at this listing on two different UTC days. If the failure is real, check the route's verify and settle step, and return the facilitator's error as errorReason, and the next purchase by vet402 is not before 2026-11-21 09:31 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-22 09:31 UTC
- Result
- A signed payment got 402 again
- Whose side
- not sorted: one failure so far
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 04:40 UTC (within 120 hours of the last).What vet402 saw: vet402 sent a signed payment and the server answered 402 again.Last result about the seller: delivered on 2026-09-22 06:01 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x03e1…bc75 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault. vet402 puts a failure on the seller's side only after it sees one at this listing on two different days (UTC). If this one is real: Check the route's verify and settle step, and return the facilitator's error as errorReason.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no txIn export.csv?days=22: the row withattempted_at2026-10-22T09:31:43Z andresource_keyx402.ottoai.services/kol-sentiment.After a fixNext purchase by vet402: Not before 2026-11-21 09:31 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /kol-sentiment": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/kol-sentiment": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /kol-sentiment": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /kol-sentiment": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-22 06:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x54597b7b…5d53Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x6320…cd37 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-15 18:00 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x945c…ca8c · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-09 12:08 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xcdc186c7…c6caDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x9357…0bb4 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-03 07:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x315fbb17…07c2Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/crypto-newsGET
On 2026-10-22 09:31 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not on the seller's side yet, because that needs such a failure (a failure vet402 can show was not its own) at this listing on two different UTC days. If the failure is real, check the route's verify and settle step, and return the facilitator's error as errorReason, and the next purchase by vet402 is not before 2026-11-21 09:31 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-22 09:31 UTC
- Result
- A signed payment got 402 again
- Whose side
- not sorted: one failure so far
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 04:40 UTC (within 120 hours of the last).What vet402 saw: vet402 sent a signed payment and the server answered 402 again.Last result about the seller: delivered on 2026-09-22 00:02 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x96b0…ab4a · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault. vet402 puts a failure on the seller's side only after it sees one at this listing on two different days (UTC). If this one is real: Check the route's verify and settle step, and return the facilitator's error as errorReason.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no txIn export.csv?days=22: the row withattempted_at2026-10-22T09:31:30Z andresource_keyx402.ottoai.services/crypto-news.After a fixNext purchase by vet402: Not before 2026-11-21 09:31 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /crypto-news": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/crypto-news": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /crypto-news": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /crypto-news": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-22 00:02 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x19696f4d…2ed3Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xf4ff…e0e6 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-15 18:00 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xcd92…2485 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-09 12:08 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x1ff07ded…f83dDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xfdac…7794 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-03 07:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x3d974a90…a01fDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/funding-ratesGET
On 2026-10-22 09:31 UTC, vet402 signed a payment and the paid request answered HTTP 402. This row is not counted against the seller (not sorted: vet402 unproven). The next purchase by vet402 is not before 2026-11-21 09:31 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-22 09:31 UTC
- Result
- A signed payment got 402 again, on a request that differed from the unpaid one
- Whose side
- not sorted: vet402 unproven
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 04:40 UTC (within 120 hours of the last).What vet402 saw: vet402 took the payment terms from the 402 to its unpaid request, then sent the paid request with the body or query the listing declares, which the unpaid request did not carry. The seller answered 402 again (for example "No matching payment requirements"). The terms for the paid request may not be the ones vet402 paid, so this page does not count the row as the seller's fault.Last result about the seller: delivered on 2026-09-22 00:02 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xb5d2…c6a4 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no txIn export.csv?days=22: the row withattempted_at2026-10-22T09:31:30Z andresource_keyx402.ottoai.services/funding-rates.After a fixNext purchase by vet402: Not before 2026-11-21 09:31 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /funding-rates": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/funding-rates": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /funding-rates": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /funding-rates": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-22 00:02 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xd84810a0…5e90Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x8dc8…b669 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-15 18:00 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x9867…d7a4 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-09 12:08 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xf26cace7…d5f3Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x2415…eb6c · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-03 07:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x02bda83a…eae6Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/earnings-calendarGET
- Latest attempt
- 2026-10-22 03:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 16:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xa4d1…8fe7 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xb2e6a3f4…c181In export.csv?days=23: the row withattempted_at2026-10-22T03:31:50Z andresource_keyx402.ottoai.services/earnings-calendar.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-28 03:31 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /earnings-calendar": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/earnings-calendar": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /earnings-calendar": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /earnings-calendar": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/form-144-filingsGET
- Latest attempt
- 2026-10-21 03:33 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 13:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0x31d3…8322 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x15b0a9dc…25feIn export.csv?days=24: the row withattempted_at2026-10-21T03:33:44Z andresource_keyx402.ottoai.services/form-144-filings.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-27 03:33 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /form-144-filings": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/form-144-filings": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /form-144-filings": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /form-144-filings": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "5000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/fx-ratesGET
- Latest attempt
- 2026-10-21 03:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 13:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x9ae9…d9cc · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x61eb4fda…8d07In export.csv?days=24: the row withattempted_at2026-10-21T03:32:48Z andresource_keyx402.ottoai.services/fx-rates.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-27 03:32 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /fx-rates": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/fx-rates": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /fx-rates": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /fx-rates": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/stock-poolsGET
- Latest attempt
- 2026-10-20 09:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 22:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xe83c…58f3 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x9495aadc…b713In export.csv?days=24: the row withattempted_at2026-10-20T09:31:46Z andresource_keyx402.ottoai.services/stock-pools.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-26 09:31 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /stock-pools": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/stock-pools": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /stock-pools": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /stock-pools": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/tokenized-equitiesGET
- Latest attempt
- 2026-10-20 09:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x5302…ace4 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x7ebd2da3…7d6fIn export.csv?days=24: the row withattempted_at2026-10-20T09:31:41Z andresource_keyx402.ottoai.services/tokenized-equities.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-26 09:31 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tokenized-equities": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/tokenized-equities": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tokenized-equities": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /tokenized-equities": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/web-linksGET
- Latest attempt
- 2026-10-19 09:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x45a9…491d · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x5e326c22…428bIn export.csv?days=25: the row withattempted_at2026-10-19T09:31:59Z andresource_keyx402.ottoai.services/web-links.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-25 09:31 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-links": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/web-links": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-links": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /web-links": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/rh-seasonGET
On 2026-10-19 03:32 UTC, vet402 paid, the payment settled on-chain, and the paid request got no HTTP answer. This row is not counted against the seller (not sorted: vet402 stopped waiting). The next purchase by vet402 is not before 2026-10-25 03:32 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-19 03:32 UTC
- Result
- vet402 stopped waiting with no answer on the row
- Whose side
- not sorted: vet402 stopped waiting
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 22:40 UTC (within 120 hours of the last).What vet402 saw: vet402 waited the time recorded on the row for the paid answer (20 seconds when the row does not record one). The listing allows longer than that wait (its maxTimeoutSeconds), or does not say how long, or the row names a transaction for the purchase. This page does not place that transaction before or after the end of the wait, and does not count the row as the seller's fault.Last result about the seller: none among the attempts shown. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x86d9…68f3 · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.What to fix: This page does not count it as the seller's fault.Not shown for this row: vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0x2399448c…43e6In export.csv?days=26: the row withattempted_at2026-10-19T03:32:05Z andresource_keyx402.ottoai.services/rh-season.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-25 03:32 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /rh-season": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/rh-season": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /rh-season": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /rh-season": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/pm-marketsGET
- Latest attempt
- 2026-10-18 21:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xa507…4adf · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x7229fc0c…c24aIn export.csv?days=26: the row withattempted_at2026-10-18T21:32:20Z andresource_keyx402.ottoai.services/pm-markets.After a fixNext purchase by vet402: Not before 2026-11-17 21:32 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pm-markets": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/pm-markets": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pm-markets": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /pm-markets": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-18 18:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x87764f81…29c1Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xd0ab…df66 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-12 12:08 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xe4d58e69…228fDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xed90…df44 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-06 07:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xa9eb9e6a…598aDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x6375…80a7 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/filtered-newsGET
On 2026-10-18 15:32 UTC, vet402 paid, the payment settled on-chain, and the paid request got no HTTP answer. This row is not counted against the seller (not sorted: vet402 stopped waiting). The next purchase by vet402 is not before 2026-11-17 15:32 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-18 15:32 UTC
- Result
- vet402 stopped waiting with no answer on the row
- Whose side
- not sorted: vet402 stopped waiting
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: vet402 waited the time recorded on the row for the paid answer (20 seconds when the row does not record one). The listing allows longer than that wait (its maxTimeoutSeconds), or does not say how long, or the row names a transaction for the purchase. This page does not place that transaction before or after the end of the wait, and does not count the row as the seller's fault.Last result about the seller: delivered on 2026-10-01 15:31 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xdd76…04be · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.What to fix: This page does not count it as the seller's fault.Not shown for this row: vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0x11675b85…334aIn export.csv?days=26: the row withattempted_at2026-10-18T15:32:17Z andresource_keyx402.ottoai.services/filtered-news.After a fixNext purchase by vet402: Not before 2026-11-17 15:32 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /filtered-news": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/filtered-news": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /filtered-news": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /filtered-news": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-08 12:01 UTC · vet402 stopped waiting with no answer on the row · not sorted: vet402 stopped waiting
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0x7ef03166…eda8Dispute this purchaseWhat vet402 recorded
vet402 waited the time recorded on the row for the paid answer (20 seconds when the row does not record one). The listing allows longer than that wait (its maxTimeoutSeconds), or does not say how long, or the row names a transaction for the purchase. This page does not place that transaction before or after the end of the wait, and does not count the row as the seller's fault.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xe2bd…a2eb · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.Not shown for this row: vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain. - 2026-10-01 15:31 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x7f2a80fa…59f2Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xd42b…f7cb · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-25 12:02 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x9c10…f265 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-19 06:01 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xf5d8…3b45 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/trending-altcoinsGET
- Latest attempt
- 2026-10-18 15:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x0363…bba5 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x72776304…258aIn export.csv?days=26: the row withattempted_at2026-10-18T15:32:01Z andresource_keyx402.ottoai.services/trending-altcoins.After a fixNext purchase by vet402: Not before 2026-11-17 15:32 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /trending-altcoins": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/trending-altcoins": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /trending-altcoins": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /trending-altcoins": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "2000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-12 14:32 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x673d39c7…fbf7Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x75bf…7741 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-10-06 09:32 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x07e70e0a…4c16Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x1a12…cb53 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/yield-alphaGET
- Latest attempt
- 2026-10-18 15:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 16:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xea5f…ea0e · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x3e36240e…ff76In export.csv?days=26: the row withattempted_at2026-10-18T15:31:55Z andresource_keyx402.ottoai.services/yield-alpha.After a fixNext purchase by vet402: Not before 2026-11-17 15:31 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /yield-alpha": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/yield-alpha": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /yield-alpha": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /yield-alpha": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "2000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-17 00:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x2172d812…9001Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x5d0e…e105 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-10 19:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x4a6ff5da…8844Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xba91…2687 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-04 12:07 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xb42d417b…1969Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xd70c…e77c · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/tradfi-dataGET
- Latest attempt
- 2026-10-18 15:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x9c50…f857 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x1788850e…1920In export.csv?days=26: the row withattempted_at2026-10-18T15:31:41Z andresource_keyx402.ottoai.services/tradfi-data.After a fixNext purchase by vet402: Not before 2026-11-17 15:31 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tradfi-data": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/tradfi-data": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tradfi-data": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /tradfi-data": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-12 14:32 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xfea7ff0a…06a3Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xc594…e338 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-10-06 09:32 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x6608f647…f299Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x47eb…4deb · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/token-detailsGET
- Latest attempt
- 2026-10-18 15:31 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x35f7…2390 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x43331e89…b90bIn export.csv?days=26: the row withattempted_at2026-10-18T15:31:39Z andresource_keyx402.ottoai.services/token-details.After a fixNext purchase by vet402: Not before 2026-11-17 15:31 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). After that it depends on the daily budget and the order of demand, so this is the earliest date, not a booking.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-details": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/token-details": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-details": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /token-details": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-12 14:32 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xedbfa86e…5204Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x0661…1852 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-10-06 09:32 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xc17a34e9…f8daDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x06dc…d32e · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/technical-signalsGET
- Latest attempt
- 2026-10-17 15:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 22:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x777a…c8ee · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xdccf8c47…9044In export.csv?days=27: the row withattempted_at2026-10-17T15:32:13Z andresource_keyx402.ottoai.services/technical-signals.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-23 15:32 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /technical-signals": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/technical-signals": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /technical-signals": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /technical-signals": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/token-scoreGET
- Latest attempt
- 2026-10-15 23:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 13:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce 0x7944…309a · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xdd111669…2f18In export.csv?days=29: the row withattempted_at2026-10-15T23:02:31Z andresource_keyx402.ottoai.services/token-score.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-21 23:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-score": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/token-score": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-score": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /token-score": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "10000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/market-riskGET
- Latest attempt
- 2026-10-15 05:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 13:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xf87b…8045 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xf9f8e37a…98acIn export.csv?days=30: the row withattempted_at2026-10-15T05:02:05Z andresource_keyx402.ottoai.services/market-risk.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-21 05:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /market-risk": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/market-risk": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /market-risk": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /market-risk": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "2000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/pm-moversGET
- Latest attempt
- 2026-10-12 17:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 22:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x9223…3533 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x4b892712…0d13In export.csv?days=32: the row withattempted_at2026-10-12T17:02:09Z andresource_keyx402.ottoai.services/pm-movers.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-18 17:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pm-movers": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/pm-movers": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pm-movers": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /pm-movers": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "2000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-06 12:02 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x9478ea0f…ec52Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xd8e5…d047 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/web-answerGET
- Latest attempt
- 2026-10-12 17:01 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 16:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce 0x6c88…408e · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xb2f042f2…ad8aIn export.csv?days=32: the row withattempted_at2026-10-12T17:01:51Z andresource_keyx402.ottoai.services/web-answer.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-18 17:01 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-answer": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/web-answer": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-answer": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /web-answer": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "10000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-06 06:03 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x6ba0e1be…4532Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce 0xb03c…e944 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/dividend-intelGET
- Latest attempt
- 2026-10-12 17:01 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-09 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-14 16:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xbcf1…0701 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xc695a551…5da0In export.csv?days=32: the row withattempted_at2026-10-12T17:01:35Z andresource_keyx402.ottoai.services/dividend-intel.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-18 17:01 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /dividend-intel": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/dividend-intel": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /dividend-intel": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /dividend-intel": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-10-06 06:03 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x299fa0ee…df49Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xdc36…5d61 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/gas-oracleGET
- Latest attempt
- 2026-10-10 17:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 13:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x77ba…b79e · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x26450ef2…1a84In export.csv?days=34: the row withattempted_at2026-10-10T17:02:22Z andresource_keyx402.ottoai.services/gas-oracle.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-16 17:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /gas-oracle": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/gas-oracle": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /gas-oracle": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /gas-oracle": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-28 06:01 UTC · delivered · no failure (delivered) [retest]
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xc6163789…7066 · bought by theretestDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x918d…ad8d · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/token-fundamentalsGET
- Latest attempt
- 2026-10-08 00:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 22:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xd9ad…0c3d · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xd2294e88…4484In export.csv?days=37: the row withattempted_at2026-10-08T00:02:34Z andresource_keyx402.ottoai.services/token-fundamentals.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-14 00:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-fundamentals": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/token-fundamentals": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-fundamentals": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /token-fundamentals": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next) - x402.ottoai.services/equity-smart-money-briefGET
- Latest attempt
- 2026-10-07 09:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 22:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.1 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.1 USDC · payTo 0x0e84…b808 · nonce 0x3ea9…d0ff · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.The latest purchase delivered. An earlier attempt listed below did not.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x87776546…90dd · bought by theretestIn export.csv?days=37: the row withattempted_at2026-10-07T09:32:18Z andresource_keyx402.ottoai.services/equity-smart-money-brief.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-13 09:32 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /equity-smart-money-brief": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "100000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/equity-smart-money-brief": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "100000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /equity-smart-money-brief": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "100000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /equity-smart-money-brief": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "100000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-18 12:08 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.1 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.1 USDC · payTo 0x0e84…b808 · nonce 0x4d93…5d22 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/institutional-holdingsGET
- Latest attempt
- 2026-10-03 18:02 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 13:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query declared. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xdcfa…1c8e · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.The latest purchase delivered. An earlier attempt listed below did not.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xad0f4483…dcf2 · bought by theretestIn export.csv?days=41: the row withattempted_at2026-10-03T18:02:08Z andresource_keyx402.ottoai.services/institutional-holdings.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-09 18:02 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /institutional-holdings": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/institutional-holdings": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /institutional-holdings": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /institutional-holdings": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-05 01:02 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xae21…30dd · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/tx-explainerGET
- Latest attempt
- 2026-10-03 15:32 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body declared, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce 0x21e8…95b9 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.The latest purchase delivered. An earlier attempt listed below did not.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xd6026508…63ffIn export.csv?days=41: the row withattempted_at2026-10-03T15:32:19Z andresource_keyx402.ottoai.services/tx-explainer.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-09 15:32 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tx-explainer": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/tx-explainer": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tx-explainer": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "10000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /tx-explainer": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "10000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-27 06:02 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xd3f0a1a0…1836Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body declared, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce 0xbf63…8659 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-13 06:01 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce 0xcc46…cecc · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-04 07:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.01 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.01 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/base-seasonGET
On 2026-10-02 15:30 UTC, vet402 paid, the payment settled on-chain, and the paid request got no HTTP answer. This row is not counted against the seller (not sorted: vet402 stopped waiting). The next purchase by vet402 is not before 2026-11-01 15:30 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-10-02 15:30 UTC
- Result
- vet402 stopped waiting with no answer on the row
- Whose side
- not sorted: vet402 stopped waiting
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 04:40 UTC (within 120 hours of the last).What vet402 saw: vet402 waited the time recorded on the row for the paid answer (20 seconds when the row does not record one). The listing allows longer than that wait (its maxTimeoutSeconds), or does not say how long, or the row names a transaction for the purchase. This page does not place that transaction before or after the end of the wait, and does not count the row as the seller's fault.Last result about the seller: none among the attempts shown. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xba7b…bea1 · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.What to fix: This page does not count it as the seller's fault.Not shown for this row: vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0xe411ac0e…40e9In export.csv?days=42: the row withattempted_at2026-10-02T15:30:59Z andresource_keyx402.ottoai.services/base-season.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-11-01 15:30 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /base-season": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/base-season": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /base-season": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /base-season": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "2000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-26 06:01 UTC · No record of the input vet402 sent · not sorted: vet402 unproven
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0xc89f4721…b117Dispute this purchaseWhat vet402 recorded
This purchase is from before vet402 recorded the body and the query it sent on each paid request (the query on Base since 2026-09-27 23:27:16 UTC), so it cannot show that it sent the input the listing declares. This page does not count the row as the seller's fault.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x01c7…7791 · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.Not shown for this row: vet402 has no record of the input it sent; vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain. - 2026-09-20 00:00 UTC · No record of the input vet402 sent · not sorted: vet402 unproven
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0xbdc463e5…cf90Dispute this purchaseWhat vet402 recorded
This purchase is from before vet402 recorded the body and the query it sent on each paid request (the query on Base since 2026-09-27 23:27:16 UTC), so it cannot show that it sent the input the listing declares. This page does not count the row as the seller's fault.The 402 terms vet402 paid: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0xe454…527b · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.Not shown for this row: vet402 has no record of the input it sent; vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain.
- x402.ottoai.services/protocol-revenue-leadersGET
- Latest attempt
- 2026-09-30 15:30 UTC
- Result
- delivered
- Whose side
- no failure (delivered)
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 14:32 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 14:32 UTC (within 120 hours of the last).What vet402 saw: Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x1155…8505 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.Recorded (L1 paid purchase):settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0x87a1ff8b…b3abIn export.csv?days=44: the row withattempted_at2026-09-30T15:30:49Z andresource_keyx402.ottoai.services/protocol-revenue-leaders.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-30 15:30 UTC (this listing has 3 or more settled purchases, so it is bought at most once every 30 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /protocol-revenue-leaders": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/protocol-revenue-leaders": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /protocol-revenue-leaders": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /protocol-revenue-leaders": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-24 12:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xfed21ee7…c101Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x663a…eb24 · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction. - 2026-09-18 06:00 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xfdb8779f…c457Dispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x2577…150d · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/mega-reportGET
On 2026-09-29 21:31 UTC, vet402 signed a payment and the paid request answered HTTP 400. This row is not counted against the seller (not sorted: no charge). The next purchase by vet402 is not before 2026-10-05 21:31 UTC, with no booked time. After that it depends on the daily budget and the order of demand.
- Latest attempt
- 2026-09-29 21:31 UTC
- Result
- Refused, and no payment was taken
- Whose side
- not sorted: no charge
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 13:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 13:40 UTC (within 120 hours of the last).What vet402 saw: vet402 signed the payment and the paid request got a 4xx other than 402, with no settlement receipt and no transaction on the row. No money moved, and vet402 cannot rule out that its own request was the problem (held_reason unsettled_4xx), so this page does not count the row as the seller's fault. Since 2026-09-16 23:25:55 UTC vet402 sends the request body the seller's 402 declares (an empty JSON body when it declares none), and since 2026-09-27 23:27:16 UTC it adds the query parameters the seller's 402 declares on Base.Last result about the seller: delivered on 2026-09-02 07:01 UTC. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.05 USDC · payTo 0x0e84…b808. Input sent: body none, query empty. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.05 USDC · payTo 0x0e84…b808 · nonce 0x5ca9…4d2d · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: This page does not count it as the seller's fault. If the request was meant to succeed, declare the input in the listing (body or query) with example values that work as written.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=45: the row withattempted_at2026-09-29T21:31:53Z andresource_keyx402.ottoai.services/mega-report.After a fixNext purchase by vet402: The regular sweep can pick this listing again since 2026-10-05 21:31 UTC (a listing is bought at most once every 6 days). When it does depends on the daily budget and the order of demand, so there is no booked date.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /mega-report": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "50000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/mega-report": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "50000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /mega-report": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "50000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /mega-report": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "50000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-22 18:00 UTC · No record of the input vet402 sent · not sorted: vet402 unproven
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP — · tx 0x540c42d7…4badDispute this purchaseWhat vet402 recorded
This purchase is from before vet402 recorded the body and the query it sent on each paid request (the query on Base since 2026-09-27 23:27:16 UTC), so it cannot show that it sent the input the listing declares. This page does not count the row as the seller's fault.The 402 terms vet402 paid: exact · 0.05 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.05 USDC · payTo 0x0e84…b808 · nonce 0x1b21…4c00 · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.Not shown for this row: vet402 has no record of the input it sent; vet402 stopped waiting after 20 seconds with no HTTP answer, and a transfer for this purchase is confirmed on-chain. - 2026-09-13 12:08 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.05 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.05 USDC · payTo 0x0e84…b808 · nonce 0x4c81…c8f7 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-02 07:01 UTC · delivered · no failure (delivered)
settled(vet402 re-read the transfer on-chain in that chain's pinned settlement asset) · HTTP 200 · tx 0xdba12d1a…191eDispute this purchaseWhat vet402 recorded
Paid; vet402 confirmed the transfer on-chain and the paid request answered HTTP 200.The 402 terms vet402 paid: exact · 0.05 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.05 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 200 · Content-Type application/json; charset=utf-8 · PAYMENT-RESPONSE: success true, names a transaction.
- x402.ottoai.services/domain-reportGET
On 2026-09-27 12:02 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-27 12:02 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 22:40 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.02 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.02 USDC · payTo 0x0e84…b808 · nonce 0x8f29…997a · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=47: the row withattempted_at2026-09-27T12:02:36Z andresource_keyx402.ottoai.services/domain-report.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /domain-report": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "20000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/domain-report": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "20000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /domain-report": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "20000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /domain-report": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "20000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-16 00:01 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.02 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.02 USDC · payTo 0x0e84…b808 · nonce 0x1b89…c638 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-09 07:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.02 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.02 USDC · payTo 0x0e84…b808 · nonce 0x5d12…a96f · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/equity-smart-moneyGET
On 2026-09-26 18:02 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-26 18:02 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 16:40 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.006 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.006 USDC · payTo 0x0e84…b808 · nonce 0x12f7…3999 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=48: the row withattempted_at2026-09-26T18:02:19Z andresource_keyx402.ottoai.services/equity-smart-money.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /equity-smart-money": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "6000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/equity-smart-money": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "6000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /equity-smart-money": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "6000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /equity-smart-money": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "6000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-14 00:01 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.006 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.006 USDC · payTo 0x0e84…b808 · nonce 0x1d9a…df57 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded. - 2026-09-03 19:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.006 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.006 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/token-priceGET
On 2026-09-26 18:00 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-26 18:00 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 16:40 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xd492…6c04 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=48: the row withattempted_at2026-09-26T18:00:54Z andresource_keyx402.ottoai.services/token-price.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-price": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/token-price": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-price": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /token-price": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-20 12:09 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xa422…c96b · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-14 06:00 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x5577…0e1d · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.
- x402.ottoai.services/insider-tradesGET
On 2026-09-26 12:02 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-26 12:02 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 02:31 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 02:31 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x8173…eeb3 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=48: the row withattempted_at2026-09-26T12:02:18Z andresource_keyx402.ottoai.services/insider-trades.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /insider-trades": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/insider-trades": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /insider-trades": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /insider-trades": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-12 12:08 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x5301…12b4 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-04 12:08 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xf4c7…6b09 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/dns-lookupGET
On 2026-09-26 00:01 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-26 00:01 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 02:31 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 02:31 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body none, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xa0ca…6ccb · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=49: the row withattempted_at2026-09-26T00:01:05Z andresource_keyx402.ottoai.services/dns-lookup.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /dns-lookup": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/dns-lookup": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /dns-lookup": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /dns-lookup": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-19 18:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xcd07…62ff · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-13 06:00 UTC · vet402's wallet was out of USDC · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))Dispute this purchaseWhat vet402 recorded
Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x6b61…b847 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.
- x402.ottoai.services/pm-searchGET
On 2026-09-17 18:02 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-17 18:02 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 02:31 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 02:31 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x0b4d…6c0d · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=57: the row withattempted_at2026-09-17T18:02:13Z andresource_keyx402.ottoai.services/pm-search.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pm-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/pm-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pm-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /pm-search": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-11 12:09 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x4b85…297b · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-03 01:01 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/equity-intelGET
On 2026-09-17 15:28 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-17 15:28 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 14:31 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 14:31 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0x3c7b…b15c · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=57: the row withattempted_at2026-09-17T15:28:53Z andresource_keyx402.ottoai.services/equity-intel.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /equity-intel": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/equity-intel": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /equity-intel": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "3000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /equity-intel": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "3000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-11 12:09 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce 0xb420…83ee · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-03 07:01 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.003 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.003 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/generate-memePOST
On 2026-09-17 15:27 UTC, vet402 signed a payment and the paid request got no HTTP answer. This row is not counted against the seller (not sorted: vet402 unproven). The regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-17 15:27 UTC
- Result
- No record of the input vet402 sent
- Whose side
- not sorted: vet402 unproven
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): fail (no_402) at 2026-11-10 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 22:40 UTC (within 120 hours of the last).What vet402 saw: This purchase is from before vet402 recorded the body and the query it sent on each paid request (the query on Base since 2026-09-27 23:27:16 UTC), so it cannot show that it sent the input the listing declares. This page does not count the row as the seller's fault.Last result about the seller: none among the attempts shown. The latest attempt is not sorted. There has been no attempt since.The 402 terms vet402 signed: exact · 0.15 USDC · payTo 0x0e84…b808. Input sent: body declared, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.15 USDC · payTo 0x0e84…b808 · nonce 0xa7ec…a69b · validBefore not recorded.Answer to the paid request: no answer: no HTTP status and no PAYMENT-RESPONSE within 20 seconds, when vet402 stopped waiting.What to fix: This page does not count it as the seller's fault.Not shown for this row: vet402 has no record of the input it sent; vet402 stopped waiting after 20 seconds (the listing's maxTimeoutSeconds is 300).Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP — · no txIn export.csv?days=57: the row withattempted_at2026-09-17T15:27:51Z andresource_keyx402.ottoai.services/generate-meme.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "POST /generate-meme": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "150000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const POST = withX402( handler, { "/generate-meme": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "150000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "POST /generate-meme": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "150000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "POST /generate-meme": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "150000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-10 12:09 UTC · vet402 did not send the declared request body · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
Before 2026-09-16 23:25:55 UTC, vet402 sent an empty JSON body on paid POST requests, even when the listing declares a body. The seller refused it with 400, 415 or 422, and the payment did not settle (a payment that settled is under "Charged, then refused an input vet402 had not sent").The 402 terms vet402 signed: exact · 0.15 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.15 USDC · payTo 0x0e84…b808 · nonce 0x06e6…3a7f · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared request body. - 2026-09-02 07:02 UTC · vet402 did not send the declared request body · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
Before 2026-09-16 23:25:55 UTC, vet402 sent an empty JSON body on paid POST requests, even when the listing declares a body. The seller refused it with 400, 415 or 422, and the payment did not settle (a payment that settled is under "Charged, then refused an input vet402 had not sent").The 402 terms vet402 signed: exact · 0.15 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.15 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared request body.
- x402.ottoai.services/pools-trendingGET
On 2026-09-17 00:01 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-17 00:01 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 16:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 16:40 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xa9f1…3f60 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=58: the row withattempted_at2026-09-17T00:01:56Z andresource_keyx402.ottoai.services/pools-trending.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pools-trending": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/pools-trending": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /pools-trending": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "<...>", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /pools-trending": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "<...>", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-10 19:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0xe5e6…f95a · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-04 12:07 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.001 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.001 USDC · payTo 0x0e84…b808 · nonce 0x103b…f761 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/web-extractGET
On 2026-09-16 18:00 UTC, vet402 signed a payment and the paid request answered HTTP 400. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-16 18:00 UTC
- Result
- vet402 did not send the declared query
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-12 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-17 04:40 UTC (within 120 hours of the last).What vet402 saw: vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0x260c…9ea6 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)In export.csv?days=58: the row withattempted_at2026-09-16T18:00:40Z andresource_keyx402.ottoai.services/web-extract.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-extract": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/web-extract": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-extract": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /web-extract": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "5000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-10 01:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0xaaf7…2e17 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-03 12:07 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/web-searchGET
On 2026-09-15 18:00 UTC, vet402 signed a payment and the paid request answered HTTP 402. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-15 18:00 UTC
- Result
- vet402's wallet was out of USDC
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 04:40 UTC (within 120 hours of the last).What vet402 saw: Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.009 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.009 USDC · payTo 0x0e84…b808 · nonce 0xf89c…0761 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))In export.csv?days=59: the row withattempted_at2026-09-15T18:00:49Z andresource_keyx402.ottoai.services/web-search.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "9000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/web-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "9000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /web-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "9000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /web-search": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "9000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-09 12:09 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.009 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.009 USDC · payTo 0x0e84…b808 · nonce 0xfe22…0d20 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-02 12:08 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.009 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.009 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/token-alphaGET
On 2026-09-15 18:00 UTC, vet402 signed a payment and the paid request answered HTTP 402. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-15 18:00 UTC
- Result
- vet402's wallet was out of USDC
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 22:40 UTC (within 120 hours of the last).What vet402 saw: Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0xbd85…72b1 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))In export.csv?days=59: the row withattempted_at2026-09-15T18:00:32Z andresource_keyx402.ottoai.services/token-alpha.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-alpha": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/token-alpha": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /token-alpha": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /token-alpha": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "5000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-09 12:08 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0x2974…2381 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-02 07:01 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/tweet-searchGET
On 2026-09-15 06:00 UTC, vet402 signed a payment and the paid request answered HTTP 402. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-15 06:00 UTC
- Result
- vet402's wallet was out of USDC
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-11 04:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-16 04:40 UTC (within 120 hours of the last).What vet402 saw: Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0x48d4…27b8 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))In export.csv?days=60: the row withattempted_at2026-09-15T06:00:57Z andresource_keyx402.ottoai.services/tweet-search.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tweet-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/tweet-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /tweet-search": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "5000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /tweet-search": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "5000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-08 19:01 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce 0x3adb…e0f9 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-02 12:07 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.005 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.005 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
- x402.ottoai.services/weatherGET
On 2026-09-15 06:00 UTC, vet402 signed a payment and the paid request answered HTTP 402. This failure is on vet402's side, not the seller's. Nothing is needed from the seller, and the regular sweep does not pick this listing for now, because the last 3 paid attempts here did not settle.
- Latest attempt
- 2026-09-15 06:00 UTC
- Result
- vet402's wallet was out of USDC
- Whose side
- vet402's side
Decision API now: · the full answerLatest L0 check (the 402 to an unpaid request): pass at 2026-11-10 22:40 UTC. Probes run oldest first, so there is no booked time. The next one usually comes by 2026-11-15 22:40 UTC (within 120 hours of the last).What vet402 saw: Between 2026-09-13 00:00 and 2026-09-15 23:49 UTC, vet402's Base payer wallet had run out of USDC. The seller refused a payment that had nothing behind it (402 or 5xx).Last result about the seller: none among the attempts shown. The latest attempt failed on vet402's side. There has been no attempt since.The 402 terms vet402 signed: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x17d2…0df8 · validBefore not recorded.Answer to the paid request: HTTP 402 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.What to fix: Nothing for the seller to fix.This failure was on vet402's side, not the seller's.Recorded (L1 attempt, vet402 signed a payment, not settled on-chain):settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 402 · no tx · held aspayer_unfunded(a 402 or 5xx while vet402's Base wallet was out of USDC (2026-09-13 to 2026-09-15))In export.csv?days=60: the row withattempted_at2026-09-15T06:00:46Z andresource_keyx402.ottoai.services/weather.After a fixNext purchase by vet402: Not scheduled: the last 3 paid attempts here did not settle, so the regular sweep does not pick this listing until that changes.Email me when this result changesDispute this purchaseA dispute does not start a purchase. The signed dispute route runs one fresh L0 check, an unpaid request.Fix code for Express, Next.js, Hono and FastAPI
Paste one snippet for the stack you run. vet402 fills payTo, the atomic amount, the CAIP-2 network, and the path from this listing. A value the listing does not have stays <...>.
Express
import { paymentMiddleware, x402ResourceServer } from "@x402/express" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /weather": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )Next.js (app router)
import { withX402, x402ResourceServer } from "@x402/next" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" import { NextRequest, NextResponse } from "next/server" const server = new x402ResourceServer(new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" })).register("eip155:8453", new ExactEvmScheme()) const handler = async (request: NextRequest) => { return NextResponse.json({ ok: true }) } export const GET = withX402( handler, { "/weather": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, )Hono
import { paymentMiddleware, x402ResourceServer } from "@x402/hono" import { ExactEvmScheme } from "@x402/evm/exact/server" import { HTTPFacilitatorClient } from "@x402/core/server" const facilitatorClient = new HTTPFacilitatorClient({ url: "https://x402.org/facilitator" }) const server = new x402ResourceServer(facilitatorClient).register("eip155:8453", new ExactEvmScheme()) app.use( paymentMiddleware( { "GET /weather": { accepts: { scheme: "exact", payTo: "<...>", price: { amount: "2000", asset: "<...>" }, network: "eip155:8453", }, }, }, server, ), )FastAPI
from fastapi import FastAPI from x402 import x402ResourceServer from x402.http import HTTPFacilitatorClient from x402.http.middleware.fastapi import payment_middleware from x402.mechanisms.evm.exact import ExactEvmServerScheme app = FastAPI() facilitator = HTTPFacilitatorClient() server = x402ResourceServer(facilitator) server.register("eip155:8453", ExactEvmServerScheme()) routes = { "GET /weather": { "accepts": { "scheme": "exact", "payTo": "<...>", "price": {"amount": "2000", "asset": "<...>"}, "network": "eip155:8453", }, }, } @app.middleware("http") async def x402_middleware(request, call_next): return await payment_middleware(routes, server)(request, call_next)Earlier attempts- 2026-09-08 19:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce 0x5c0a…4fd9 · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query. - 2026-09-02 07:00 UTC · vet402 did not send the declared query · vet402's side
settle_failed(vet402 signed a payment and got no settlement receipt back) · HTTP 400 · no tx · held asunsettled_4xx(the paid request got a 4xx with no settlement receipt and no transaction)Dispute this purchaseWhat vet402 recorded
vet402 did not send the query the listing declares. Before 2026-09-27 23:27:16 UTC, vet402 did not add the query parameters the seller's 402 declares to paid requests on Base, and this listing declares them (example values, or required names). The seller refused the request with 400 or 422. The same miss covers a signed paid request with no record of the query sent on XRPL before 2026-09-21 06:00:30 UTC, on Solana before 2026-10-01 12:00:20 UTC, on Arc, Celo, Stellar and BNB Chain before 2026-10-19 04:05:17 UTC, and on Arbitrum One and Avalanche C-Chain before 2026-11-02 04:55:29 UTC. A row at or after that time on its chain is not this miss.The 402 terms vet402 signed: exact · 0.002 USDC · payTo 0x0e84…b808. Input sent: body not recorded, query not recorded. The listing's maxTimeoutSeconds is 300. vet402 waits 20 seconds for the paid answer.Signed payment: scheme exact · 0.002 USDC · payTo 0x0e84…b808 · nonce not recorded · validBefore not recorded.Answer to the paid request: HTTP 400 · Content-Type application/json; charset=utf-8 · no PAYMENT-RESPONSE recorded.In export.csv this row's held_reason is unsettled_4xx (the paid request got a 4xx with no settlement receipt and no transaction). This page names the cause the row shows: vet402 did not send the declared query.
2.How to read this
Each listing shows its latest Base attempt and up to four earlier Base attempts. Result and Whose side follow that Base attempt. A purchase on another chain is listed under Other chains, with the chain name, time, status, HTTP status, and a transaction link when one was recorded. The record page shows that purchase in the Payment chain column. A row where vet402 signed a payment and sent the paid request is an L1 result: “Recorded (L1 paid purchase)” when the payment settled on-chain, and “signed, not settled on-chain” when it did not. A row where vet402 did not sign is marked “not bought” and is not an L1 result. The listing's record page also shows the L0 state (“Published state”), which checks that an unpaid request gets a valid 402, so a listing can pass L0 and still fail here. Whose side puts a failure on the seller's side when the row shows vet402 was not at fault: it signed on the listing's terms, its wallet held the price, it sent the declared input, and the seller answered explicitly or had its declared time. Even then, one such failure is “not sorted: one failure so far”: a failure goes on the seller's side only when the same listing has one on two different days (UTC), and those rows are marked “attribution under review” while that review runs. The review has no set date. A row that cannot show all of that is “not sorted”, and so is a held row (held_reason in the export), a failure where no payment was taken (“no charge”), and a payment that settled before the seller refused an input vet402 had not sent. “Signed payment” and “Answer to the paid request” show what the row recorded, and nothing else: the answer's body and header values are not published. The maxTimeoutSeconds on a row is the listing's value today; a declared price or address on a not-bought row is the value recorded at the time of the attempt. The transaction link opens the settlement on Basescan when the purchase is on Base. “Decision API now” is what the decision API (GET /api/v1/resources/{id}/decision?role=payer, no key) answers for the listing when you open this page; your browser asks it for the first 2 listings, and for the others when you ask. It reads the same sorting as this page: a failure counts against the seller only when this page puts it on the seller's side. A paid attempt that took payment and did not deliver is a WARN, and two or more of them on the seller's side since the last delivery are the only way a failed purchase makes it a BLOCK; a listing whose failures this page leaves not sorted gets at most a WARN from them. An L0 check that is unverified (not probed yet, or not measurable) is a WARN, not a BLOCK. The codes that decided the answer come first, each with the meaning from the reason-code table (reason codes). “After a fix” gives the earliest date vet402's regular sweep can buy the listing again, where the rules let it be worked out, and the links to be told of a change or to dispute a row. Listings removed from the Bazaar, and listings whose catalog network is not Base, are not on this page. The fix-first page groups the same results across sellers (methodology).
3.Think a row is wrong?
Use “Dispute this purchase” on the row: it opens Dispute this record on the listing's record page with the purchase time filled in. The time filled in is the latest Base attempt when that listing has a Base purchase. Say what you saw instead. The row is not deleted on dispute; a correction is published with the same weight.