USDC Payment Verifier on Base (x402 Proof of Payment)
Pricing
Pay per event
USDC Payment Verifier on Base (x402 Proof of Payment)
Verify that a USDC payment on Base really happened before your agent delivers: tx status, recipient, sender, minimum amount and confirmations checked against the official Circle USDC contract, with a clear verdict. Also reads USDC balances. Read-only. Unknown tx = not charged.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Novarithm
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Security
Limited permissionsShare
Before your AI agent delivers a file, an answer or a service, check that the USDC payment it was promised really landed. Give a transaction hash and what you expect; get a clear verdict.
What it does
-
Verify a payment (
payments): reads the transaction on Base (or Base Sepolia) from public RPC nodes, decodes theTransferevents of the official Circle USDC contract, and checks:- the transaction succeeded,
- USDC went to the expected recipient (
to) and, optionally, from the expected payer (from), - the amount is at least
min_amount, - it has at least
min_confirmations.
Verdicts:
valid,mismatch,failed_tx,no_usdc_transfer,insufficient_confirmations,pending. The output also lists every USDC transfer in the transaction, the block time and the method used (transfer, ortransferWithAuthorization/ EIP-3009, the call x402 facilitators use to settle). -
Read a balance (
balances): the current USDC balance of an address.
Read-only: no wallet, no key, no funds held, nothing is ever sent.
Pricing (pay per event)
| Event | Price | Charged when |
|---|---|---|
verify-usdc-payment | $0.002 | one known transaction checked (any verdict) |
usdc-balance | $0.001 | one balance read |
Unknown transaction hash, invalid input or RPC outage: never charged. No start fee.
Example
Input:
{"payments": [{"tx_hash": "0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80", "to": "0x17cd53c04d707ef0dd615ef56c633f02915a7905", "min_amount": 0.05}]}
Output (shortened, real values):
{"endpoint": "verify_usdc_payment", "ok": true, "result": {"verdict": "valid", "matched_amount": 0.05, "settlement_method": "transferWithAuthorization (EIP-3009, x402-style)", "checks": {"tx_succeeded": true, "recipient_matches": true, "amount_ok": true, "confirmations_ok": true}}, "charged_event": "verify-usdc-payment"}
Limits (honest)
- Base mainnet and Base Sepolia only; USDC only (no ETH or other tokens).
- Relies on public RPC nodes (rate limits possible; outages are not charged).
- A
validverdict says the payment matches; it says nothing about who the payer is (combine with a sanctions screening of the address if needed).
Sources
- Base public RPC (mainnet.base.org, sepolia.base.org), dRPC public fallback.
- Circle USDC contract addresses: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (Base), 0x036CbD53842c5426634e7929541eC2318f3dCF7e (Base Sepolia).

