The four checks
-
Registration. Read
tokenURI(agentId)from the ERC-8004 IdentityRegistry on the agent’s chain and fetch the registration document. It should be valid JSON listing at least one service endpoint. See ERC-8004 explained for the registry addresses and document format. - Reachability. Request each listed endpoint. The host should resolve, the TLS certificate should be valid, and the server should return an HTTP response. Any status code counts as “the host answered”; it does not yet mean the endpoint is usable.
-
x402 challenge. Call the paid endpoint with no
payment header. A payable endpoint replies
402with anacceptsarray. Each entry should carry ascheme, anetwork, anasset, apayToaddress and a price. Check that the address is a well-formed 0x address and the price is a plausible per-call amount. The cycle is described in x402 explained. -
Settled test payment. Sign one of the offers with
a wallet holding a small amount, retry, and confirm that the
payment settles on-chain to the advertised
payToand that the server then returns a substantive response. This is the only step that demonstrates the full path works. Use a small amount and a dedicated wallet.
Free per-agent lookup
Our public agent-detail endpoint summarises the observable signals for one indexed agent — host reachability and HTTP status, TLS validity, advertised x402 support, and whether any on-chain payment has been received — with no payment and no authentication:
GET https://api.onchainagentintel.io/v1/public/agent/{chain}/{agent_id}
Use base or
ethereum as the chain and the
numeric agentId. The response reflects our most recent probe, not
the present moment. The full catalog, including which endpoints are
free and which are paid, is in
agent.json; the schema is in the
OpenAPI document.
Common failure signs
- The registration document is missing, malformed, or points at a host that no longer resolves.
- The host answers but the paid path returns 401 or 403 (an auth wall) or 405 (wrong method) instead of 402.
- The 402 body has no
acceptsentries, or none with a validpayTo. - The challenge is valid but uses a payment format or protocol version a stock client cannot parse. Our interop field test documents this on a small sample.
- Payment settles but no usable response follows.
We measured how agents fall off along this path in the payability funnel dataset and the endpoint probe write-up; read their method notes for exact stage definitions and caveats.
What these checks don’t prove
Reachable and payable describes plumbing at one moment in time. It does not show that the agent’s work is correct, that its owner is trustworthy, or that it will behave the same tomorrow. Combine it with ownership and reputation evidence, as in how to verify an ERC-8004 agent, and keep first payments small.
FAQ
How do I check if an ERC-8004 agent is reachable?
Read the agent’s tokenURI from the IdentityRegistry, fetch the registration document, and request each service endpoint it lists. An endpoint is reachable if the host resolves, the TLS handshake succeeds, and it returns an HTTP response. Reachability is a point-in-time observation: it says nothing about whether the agent will still answer later or will accept payment.
How do I check if an ERC-8004 agent can accept an x402 payment?
Call its paid endpoint without a payment header. A payable x402 endpoint answers HTTP 402 with a machine-readable list of payment options that includes a payTo address, a token, and a price. Missing options, an auth wall (401/403), or a method mismatch (405) are signs the endpoint cannot be paid by a generic x402 client. Only a test payment that settles on-chain and returns a response proves the full path.
Is advertising x402 support in the registration the same as being payable?
No. Registrations are self-declared and unverified. An agent can claim payment support while its endpoint is down, returns no 402 challenge, or uses a payment format a stock client cannot parse. Our published payability funnel treats these as separate stages for that reason.
Is there a free way to look up an agent’s reachability signals?
Yes. The public agent-detail endpoint returns a neutral summary for one agent, including host reachability, advertised x402 support, and whether any on-chain payment has been received. It is free and needs no authentication. Fill in the chain (base or ethereum) and the numeric agentId.
Does a reachable, payable agent deliver good work?
Not necessarily. These checks cover plumbing, not quality or honesty. Reputation feedback, ownership, and a small paid trial are separate evidence. Treat every check as one signal, and pay small amounts first.