Live on Base mainnet

Vouch402

x402-metered on-chain risk intelligence for autonomous agents on Base, with a built-in proof-of-fulfillment attestation layer.

X402ServiceFulfillmentfulfilled
address
0x53a79B10…7c6263b0
score
95/100
attestationUid
0xc15b1139…0a9d9909

View on EAS explorer

How it works

Every paid request follows the same verifiable path: no step is hidden or assumed.

  1. Request a quote

    GET /v1/risk-score/:address with no payment returns 402 and the exact x402 payment requirements: price, recipient, asset, and a single-use resourceId.

  2. Pay on-chain

    Send the quoted USDC amount directly to the payTo address. A real, standard ERC-20 transfer: no facilitator, no off-chain step to trust.

  3. Get the score

    Retry with the transaction hash as proof. The server verifies the payment on-chain (amount, recipient, sender, not-already-used) before releasing anything.

  4. Fulfillment is attested

    An EAS attestation recording exactly what was returned is created on-chain automatically, and its UID comes back in the response: resolvable independently, without trusting this page.

  5. Dispute if something's wrong

    POST /v1/disputes against the attestation, signed by the original payer. Filed on-chain, linked to the fulfillment it disputes: a permanent, public record either way.

Live activity

Base mainnet

Real counters from the live deployment: not estimated, not a mockup.

Always shown for mainnet, regardless of the network selector above: testnet activity is development noise, not a meaningful usage signal.

Unique payers
Requests served
Volume (USDC)
Attestations
Disputes

Recent activity

The latest fulfillments and disputes, straight from EAS.

Try it

A real x402 payment, right here: no testnet play-money theater, an actual on-chain USDC transfer verified by the live API.

Runs on Testnet. Switch networks in the navbar above. Testnet is the safe default: no real funds involved.

API reference

Three endpoints. Copy, paste, run.

GET/v1/risk-score/:address

x402-gated risk score for a Base address.

# 1. Ask without payment — get the exact x402 price + resourceId back as a 402
curl https://vouch402.fly.dev/v1/risk-score/0x53a79B109fa77c05B043e73A284a22b57c6263b0

# 2. Pay the quoted USDC amount on-chain, then retry with proof of payment
curl https://vouch402.fly.dev/v1/risk-score/0x53a79B109fa77c05B043e73A284a22b57c6263b0 \
  -H "X-PAYMENT: $(echo -n '{"resourceId":"...","txHash":"0x...","payer":"0x..."}' | base64)"
GET/v1/metrics

Public, unpaid. Real aggregate counters, optionally filtered by network.

curl "https://vouch402.fly.dev/v1/metrics?network=base"
POST/v1/disputes

File a dispute against a fulfillment attestation, signed by the original payer.

curl -X POST https://vouch402.fly.dev/v1/disputes \
  -H "Content-Type: application/json" \
  -d '{
    "refUID": "0x...",
    "reasonCode": 0,
    "details": "The returned score does not reflect on-chain history",
    "signature": "0x..."
  }'