Call any x402 endpoint WITHOUT paying and get back what its own 402 challenge says: the re
Call any x402 endpoint WITHOUT paying and get back what its own 402 challenge says: the real price, asset, network, payTo address, scheme, timeout, and the request schema when the merchant publishes one. Directory listings are written once and go stale; this is the merchant's own current statement of the terms you are about to accept. It also distinguishes the cases a directory cannot: a resource that answers 402 properly, one that is listed as paid but answers WITHOUT payment, one that is listed but gone, and one that simply fails. No payment header is ever sent, so this cannot settle anything, and unknown endpoints are probed with GET — never a write verb with a guessed body.
Provider
animica.dev · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x5D17c40FD6b119dc6006C4Ab3C20a917FCaB2aCD",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "5799",
"maxTimeoutSeconds": 60
},
{
"scheme": "exact",
"network": "animica:1",
"payTo": "anim1zqpsmegc0qcvzjfukm89xs0zeu3eqyyyel7kelehuszvwfarqypky2gr946ga",
"asset": "ANM",
"amount": "68878682293",
"maxTimeoutSeconds": 60
}
]Output schema
{
"animica": {
"catalog": "https://animica.dev/.well-known/x402",
"content_type": "application/json",
"currency": "USDC",
"description": "Call any x402 endpoint WITHOUT paying and get back what its own 402 challenge says: the real price, asset, network, payTo address, scheme, timeout, and the request schema when the merchant publishes one. Directory listings are written once and go stale; this is the merchant's own current statement of the terms you are about to accept. It also distinguishes the cases a directory cannot: a resource that answers 402 properly, one that is listed as paid but answers WITHOUT payment, one that is listed but gone, and one that simply fails. No payment header is ever sent, so this cannot settle anything, and unknown endpoints are probed with GET — never a write verb with a guessed body.",
"documentation": "https://animica.dev/x402#product-mesh_probe",
"name": "x402 Mesh — verify one endpoint before you pay it",
"openapi": "https://animica.dev/x402/openapi.json",
"price": "0.005799",
"product": "mesh_probe",
"provider": "Animica",
"terms": {
"amount_atomic": "5799",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"chain_id": 8453,
"network": "eip155:8453",
"pay_to": "0x5D17c40FD6b119dc6006C4Ab3C20a917FCaB2aCD",
"scheme": "exact"
},
"x402_version": 2
},
"bazaar": {
"discoverable": true,
"info": {
"input": {
"body": {
"resource": "https://animica.dev/x402/qrng/draw"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"body": {
"properties": {
"fresh": {
"description": "ignore any cached probe and call it again now (default false)",
"type": "boolean"
},
"method": {
"description": "HTTP verb to probe with. Omit and GET is tried first, then POST with an empty body — a write verb is never guessed at an unknown endpoint",
"type": "string"
},
"resource": {
"description": "absolute http(s) URL of the x402 endpoint to verify",
"type": "string"
}
},
"required": [
"resource"
],
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
},
"discovery": {
"discoverable": true,
"info": {
"input": {
"bodyFields": {
"fresh": {
"description": "ignore any cached probe and call it again now (default false)",
"required": false,
"type": "boolean"
},
"method": {
"description": "HTTP verb to probe with. Omit and GET is tried first, then POST with an empty body — a write verb is never guessed at an unknown endpoint",
"required": false,
"type": "string"
},
"resource": {
"description": "absolute http(s) URL of the x402 endpoint to verify",
"required": true,
"type": "string"
}
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"description": "outcome (paywalled|open|dead|error|blocked), http_status, method, price {atomic, usd, asset, network, pay_to, scheme, max_timeout_seconds}, call_spec, accepts[], latency_ms, probed_at, cached",
"type": "json"
}
}
}
}Use it
curl
curl "https://animica.dev/x402/mesh/probe" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://animica.dev/x402/mesh/probe");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://animica.dev/x402/mesh/probe")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7530.json, and this resource appears in /discovery/resources and /discovery/search.