Pre-payment x402 readiness

Check x402 readiness before an agent pays.

Ontario Protocol checks observable endpoint behavior: HTTP 402 challenges, manifest metadata, price and network declarations, discovery fields, and public report history.

It provides readiness signals, not a safety guarantee. Agents should still enforce budget, wallet, timeout, and policy controls before signing any payment.

No private keys Observable evidence only Agents still enforce spend policy

Agent preflight

verify_before_pay
HTTP 402
ok
Manifest
fresh
Price
policy
Report
public
Agent decision review before payment

Readiness check

Submit an endpoint URL and get a structured readiness report.

Want your endpoint in /discover? Start with free listing payload validation (no payment; no storage): POST /api/x402/list-service/validate.

# 1. Verify whether an endpoint is x402/Bazaar ready (free)
curl -X POST https://ontarioprotocol.com/api/verify/x402-readiness \
  -H "Content-Type: application/json" \
  -d '{"target_url":"https://example.com/api/paid-endpoint"}'

# 2. Load the agent trust policy (free)
curl https://ontarioprotocol.com/.well-known/x402-trust.json

# 3. Discover endpoints with grade=ready (free)
curl "https://ontarioprotocol.com/discover?grade=ready"

# 4. Discover everything Ontario exposes (free)
curl https://ontarioprotocol.com/.well-known/x402.json

# 5. Try the free demo — same response shape as the paid endpoint
curl -X POST https://ontarioprotocol.com/api/demo/agent-trust-scan \
  -H "Content-Type: application/json" \
  -d '{"target_url":"https://example.com"}'

# 6. Probe the paid endpoint without paying — get back HTTP 402
curl -i -X POST https://ontarioprotocol.com/api/x402/agent-trust-scan \
  -H "Content-Type: application/json" \
  -d '{"agent_id":"my-agent","target_url":"https://example.com"}'

# Response:
HTTP/1.1 402 Payment Required
PAYMENT-REQUIRED: <base64-encoded PaymentRequired JSON>
WWW-Authenticate: x402

# 7. Sign + retry with PAYMENT-SIGNATURE header (using x402 client SDK).
# 8. Get back: HTTP 200 + structured trust report + on-chain tx hash.

Machine-checkable trust, before spend

A cautious agent should not believe a landing page. Ontario exposes a decision contract it can parse: fresh readiness evidence, strict can-pay policy, sandbox rehearsal, and public report integrity.

01

Fresh endpoint evidence

Verifier output includes grade, score, warnings, remediation, report URL, and the exact endpoint origin.

02

Strict payment gate

Can-pay evaluates network, price ceiling, manifest evidence, and policy before a wallet payload is signed.

03

Public audit trail

Reports, service profiles, signing key metadata, and treasury links give agents evidence they can cite later.

# Public agent invitation
curl https://ontarioprotocol.com/.well-known/agent-invite.json

# Contract summary
{
  "default_posture": "verify_before_pay",
  "minimum_agent_threshold": {
    "grade": "ready",
    "readiness_score_gte": 85,
    "network": "base",
    "accepts_entries": "present"
  },
  "decision_gate": "/api/agent/can-pay",
  "sandbox": "/sandbox/demo"
}

x402 verification answer graph

Direct, crawlable answers for the searches developers and agents use when they need to verify, discover, and integrate paid AI-agent endpoints.

x402 Readiness Checker →

Check whether a paid AI-agent endpoint is ready for x402 discovery, integration, and payment.

x402 Verifier →

Verify x402 paid endpoints before an autonomous agent signs a payment.

x402 Manifest Validator →

Validate /.well-known/x402.json service metadata for paid AI-agent endpoints.

HTTP 402 Payment Validator →

Validate that a paid API returns a real HTTP 402 payment-required challenge.

AI Agent Payment Preflight →

Ask whether an AI agent should pay an x402 endpoint before spending funds.

Coinbase Bazaar Readiness →

Prepare an x402 service for Bazaar-style discovery and agent marketplace listings.

Paid AI-Agent Endpoint Discovery →

Discover verified x402 paid endpoints that agents can evaluate before payment.

x402 Service Certification →

Understand Ontario Verified and Ontario Certified x402 endpoint status.

MCP x402 Marketplace →

Expose paid x402 endpoints as MCP tools with machine-readable price and trust metadata.

x402 OpenAPI Validator →

Check whether a paid endpoint publishes OpenAPI metadata agents can use.

x402 Service Listing →

List a third-party x402-paid endpoint so agents can discover it with readiness evidence.

Verify Endpoint Before Agent Pays →

Check a paid API endpoint before an autonomous agent signs an x402 payment.

x402 Payment Verification API →

Use Ontario's API surfaces to verify x402 readiness and payment policy before spending.

Agent Can-Pay API →

Return allow, review, or deny before an agent pays an x402 endpoint.

Agent Payment Firewall →

Use readiness evidence and can-pay policy as a firewall before autonomous agent payments.

x402 Paid API Directory →

Discover x402-paid APIs with readiness evidence, report history, and machine-readable metadata.

x402 GitHub Action →

Run x402 readiness checks in CI before publishing or listing paid agent endpoints.

Full index: /answers/ · JSON for agents: /api/geo/answers

Agent spend guardrails

Ontario should help agents decide whether a payment is safe. It should not silently authorize broad real-world shopping.

Digital API payments first

Public x402 surfaces focus on paid HTTP endpoints, readiness evidence, and agent can-pay policy.

Physical purchases need review

Real-world goods should require allowlists, category limits, spend ceilings, and human approval before checkout.

Fail closed by default

Missing manifests, price mismatch, stale reports, or unsupported networks should produce review or deny decisions.

Evidence beats claims

Agents should inspect report IDs, signed integrity metadata, discovery profiles, and settlement health before paying.

First-party x402 services

Agent Trust Scan 0.01 USDC

Submit an agent's card URL or A2A endpoint, receive a structured trust report (security signals, identity claims, declared capabilities). Returns JSON.

Method
POST
Endpoint
https://ontarioprotocol.com/api/x402/agent-trust-scan
Asset
USDC on base
Pay to
0xa2d72aBF2C5e939fdDCA4156B74dE482e03CA3ec
Agent Reputation Lookup 0.001 USDC

Look up an agent's accumulated reputation (sourced from on-chain EAS attestations on Base + recent scan history).

Method
GET
Endpoint
https://ontarioprotocol.com/api/x402/reputation/<agent_id>
Asset
USDC on base
Pay to
0xa2d72aBF2C5e939fdDCA4156B74dE482e03CA3ec
Submit Agent Listing 0.10 USDC

Submit an AI agent for inclusion in the Ontario Protocol directory. Pays 0.10 USDC up front to deter spam.

Method
POST
Endpoint
https://ontarioprotocol.com/api/x402/list-agent
Asset
USDC on base
Pay to
0xa2d72aBF2C5e939fdDCA4156B74dE482e03CA3ec
List a Third-Party x402 Service 0.50 USDC

Register your own x402-paid endpoint so AI agents discover it through Ontario Protocol's `/discover`. 0.50 USDC listing fee.

Method
POST
Endpoint
https://ontarioprotocol.com/api/x402/list-service
Asset
USDC on base
Pay to
0xa2d72aBF2C5e939fdDCA4156B74dE482e03CA3ec

Live stats

Real numbers, sourced from /api/health. Refreshes on page load.

402 responses served
Successful settlements
Paid calls completed
Total services listed

Counters reset on each Cloud Run revision; cumulative settlements are in /treasury.

Recent on-chain activity

Last 5 settled x402 calls, pulled live from /api/treasury/ledger.

  1. Loading…

List your own x402 service

One paid call gets your endpoint into Ontario's discovery feed and the agent listing manifests. If you route third-party settlement through Ontario's optional proxy facilitator, the default marketplace take rate is 1.5% (150 bps, configurable). Track every cent on /treasury.

Start with free payload validation (no payment; does not store a listing): POST /api/x402/list-service/validate. Full submission docs: /listings#submit-service and /docs#list-service.

# Pay 0.50 USDC and register a service
curl -X POST https://ontarioprotocol.com/api/x402/list-service \
  -H "Content-Type: application/json" \
  -H "PAYMENT-SIGNATURE: <base64 PaymentPayload>" \
  -d '{
    "name":"My Cool API",
    "description":"What it does",
    "endpoint":"https://example.com/api/data",
    "method":"GET",
    "price_atomic":1000,
    "price_usdc":"0.001",
    "category":"data",
    "owner_url":"https://example.com",
    "owner_contact":"ops@example.com"
  }'

Why x402 (the short version)