Study 2 — x402.direct Paid Search Pre-Settlement Failure
Result
Classification: pre_settlement_paid_path_failure
On 22 August 2026 Atinamos attempted an independent verification of the x402.direct paid Service Directory Search endpoint.
The live service exposed a real payment requirement, but the authorised paid-path request returned HTTP 500. A subsequent read-only Base chain check showed that no 0.001 USDC settlement occurred.
This is one timestamped observation of one invocation. It is not a claim that x402.direct always fails.
What the seller was offering
At the time of this study, x402.direct described /api/search as its paid agent search endpoint: a full-text search across indexed x402 services, with results ranked using text relevance and trust score. The advertised price was $0.001 per query on Base.
Seller source: x402.direct API documentation
The documented purchase flow said that after payment verification the server would return search results. In buyer terms, the useful product was therefore a ranked result set for the requested service query.
Claim Atinamos tested
For a paid query for weather api, the service should accept the advertised x402 payment path and return usable search results for that query.
Service tested
- Provider: x402.direct
- Service: Service Directory Search
- Method: GET
- Query used:
weather api - Requested result limit: 3
- x402 version: 1
- Network: Base
- Payment scheme: exact
- Advertised price: 0.001 USDC
What Atinamos tested against the offer
The intended output assertions were designed around the seller's paid-search proposition: after successful payment, a machine buyer should receive structured search results for the requested query.
The recipe expected a response containing search-result structure including a query/result context and a non-empty results collection.
However, the run never reached output validation. The authorised paid-path request returned HTTP 500 before settlement or successful fulfilment, so Atinamos did not claim anything about the quality, relevance or ranking of search results that were never received.
Payment-contract anomaly
The live x402 challenge returned a payTo value containing a trailing newline.
Atinamos retained the raw representation and normalised only surrounding whitespace before constructing the legacy x402 v1 X-PAYMENT authorization.
The installed payment client then successfully created the authorization.
This is important because the verifier did not silently discard the defect: the original machine-contract anomaly remains part of the evidence record.
Paid-path outcome
Observed sequence:
- HTTP 402 payment challenge received.
- Contract anomaly recorded.
- Legacy payment authorization successfully constructed.
- Authorised request sent.
- Seller returned HTTP 500 Internal Server Error.
- No successful fulfilment was returned.
- No output assertions could be evaluated.
- Read-only Base USDC balance and transfer-log checks found no 0.001 USDC settlement to the advertised recipient.
Therefore this is not a “seller took payment and failed to deliver” claim. The evidence supports a narrower result: the paid search service did not reach the advertised post-payment result stage in this invocation.
Documentation/live-contract mismatch
At the time of the test, the public documentation and live payment challenge used different payment-header naming. The live x402 v1 challenge explicitly required X-PAYMENT, and the client generated that header.
This inconsistency is evidence about the machine-facing contract/documentation observed at the time. It does not establish the cause of the HTTP 500.
Why this matters
A buyer system that records only discovery or the existence of a payment challenge could incorrectly treat the service as ready to buy.
The seller proposition was a paid query that returns ranked service-search results. In this observation, the transaction never reached that useful result.
Atinamos distinguishes:
seller offer → payment contract → authorization created → authorised request sent → settlement → fulfilment → output validation
In this observation, the chain stopped before settlement and before the advertised search output was returned.
What this does not prove
This single run does not prove that:
- x402.direct generally fails;
- the provider is unsafe or untrustworthy;
- the HTTP 500 was caused by the malformed
payTofield; - a later invocation would produce the same result;
- the search results themselves are poor, because no paid result was returned to evaluate.
A buyer may decide to reject, retry later, require a fresh verification or proceed despite the evidence. That decision belongs to the buyer's policy, not to Atinamos.
Machine-readable evidence
GET /v1/trust?endpoint=https://x402.direct/api/search
The registry surfaces this observation as a pre-settlement paid-path failure and leaves the procurement decision to the buyer.