Pay-per-call verification for AI agents: on-chain arbitrage profitability, token safety, swap routing, quote validation, and trade sizing powered by x402 USDC micropayments.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/a32116150-ctrl/verify402{
"mcpServers": {
"verify402": {
"command": "node",
"args": ["/path/to/verify402/dist/index.js"],
"env": {
"FACILITATOR_URL": "<facilitator_url>"
}
}
}
}FACILITATOR_URLResumen de MCP Servers
# verify402
> **Machine-payable on-chain truth & pre-signing checks for AI agents.**
> Free fail-closed preflight gate + five verifiable truth checks paid per call via x402 in USDC. No API key, no account, no wallet required for the free gate.
[](https://www.npmjs.com/package/verify402-mcp)
[](https://verify402.onrender.com/mcp)
[](https://registry.modelcontextprotocol.io/)
[](https://verify402.onrender.com/openapi.json)
[](https://github.com/x402-foundation/x402)
[](LICENSE)
---
## 30-Second Quickstart
### 1. Free Preflight Gate (No wallet, no key)
Verify an x402 payment challenge before signing it:
```bash
curl -sS -X POST https://verify402.onrender.com/preflight \
-H 'content-type: application/json' \
-d '{
"kind": "payment",
"payment": {
"scheme": "exact",
"network": "eip155:8453",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "10000",
"payTo": "0xAeEF086DD4e436c69d6d0F684b4c9F43392df9cb",
"resource": "https://verify402.onrender.com/verify"
},
"policy": { "maxAmountUsd": 0.25 }
}'
```
Returns `PASS` / `CAUTION` / `BLOCK`, typed reasons, exact `checked` and `notChecked` lists, pinned block number, and a verifiable 90-second HMAC receipt.
A `PASS` means the listed checks passed at that block. It does **not** mean the
transaction is safe, cannot drain funds, or that the token is not a honeypot.
Read `notChecked` in the response.
---
## 🤖 Using verify402 with AI Agents (Step-by-Step)
The MCP server is live on npm as **[`verify402-mcp`](https://www.npmjs.com/package/verify402-mcp)** and indexed on the official [Model Context Protocol Registry](https://registry.modelcontextprotocol.io/) (`io.github.a32116150-ctrl/verify402-mcp`).
It works with **Claude Desktop**, **Cursor**, **Windsurf**, **Cline**, **OpenCode**, and any MCP client over stdio.
### Step 1: Add the MCP Server to Your Agent
#### Option A: Free Mode (Zero Config, No Wallet, No Key)
Gives your AI agent the free **`preflight_gate`** tool. It checks payment challenges, token approvals, payee/amount, and transaction calldata at a fresh block before signing. Honeypot/sellability evidence is the paid `check_token_safety` check, not a free-gate guarantee.
Paste this into your client config file:
- **Claude Desktop**: `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows)
- **Cursor**: `.cursor/mcp.json` or Cursor Settings → MCP
- **Windsurf**: `~/.codeium/windsurf/mcp_config.json`
- **Cline**: `cline_mcp_settings.json`
```json
{
"mcpServers": {
"verify402": {
"command": "npx",
"args": ["-y", "verify402-mcp@latest"],
"env": {
"VERIFY402_URL": "https://verify402.onrender.com"
}
}
}
}
```
#### Option B: Paid Mode (Unlocks 5 Deep Truth Checks)
Unlocks the 5 on-chain truth checks (`verify_arbitrage`, `check_token_safety`, `get_best_route`, `verify_quote_fairness`, `get_trade_depth`). The agent pays per call via x402 in USDC.
```json
{
"mcpServers": {
"verify402": {
"command": "npx",
"args": ["-y", "verify402-mcp@latest"],
"env": {
"VERIFY402_URL": "https://verify402.onrender.com",
"EVM_PRIVATE_KEY": "0xYOUR_HOT_WALLET_PRIVATE_KEY",
"MAX_PAYMENT_USD": "0.25",
"MAX_DAILY_USD": "1.00",
"VERIFY402_NETWORKS": "eip155:8453",
"VERIFY402_PAY_TO": "0xAeEF086DD4e436c69d6d0F684b4c9F43392df9cb"
}
}
}
}
```
---
### Step 2: How to Set Up the Agent's Hot Wallet
If you want your agent to use the paid truth tools, follow these 4 steps to set up its wallet safely:
1. **Create a Dedicated Hot Wallet**:
- Generate a brand new EVM address using MetaMask, Rabby, or CLI (`cast wallet new`).
- ⚠️ **NEVER USE YOUR MAIN WALLET OR COLD VAULT.** Treat this wallet like physical petty cash.
2. **Fund with USDC on Base (EIP-155:8453)**:
- Send $2 to $10 of USDC on the Base network to your new hot wallet.
- The tools cost tiny fixed amounts per call: `$0.03` (route), `$0.05` (arbitrage/quotecheck/depth), `$0.10` (token safety).
3. **Fund with Gas (ETH on Base)**:
- Send ~$0.50 worth of ETH on Base for token approvals / gas overhead.
4. **Export the Private Key**:
- Copy the wallet's private key (hex string starting with `0x`) into the `EVM_PRIVATE_KEY` field in your MCP config.
- *Client-Side Guardrails*: The bridge enforces `MAX_PAYMENT_USD` (hard cap per call, default $0.25) and `MAX_DAILY_USD` (daily budget cap) before any signature can be created. This caps what the bridge can authorize; it is **not** protection against a compromised private key.
---
### Step 3: Prompting the AI Agent to Use the Tools
Once configured, restart your AI client. The agent automatically has access to the tools. You can prompt it naturally:
| What you want to do | Example Prompt to your AI Agent | Tool Called | Cost |
| :--- | :--- | :--- | :--- |
| **Verify a transaction before signing** | *"Before signing, run `preflight_gate` on the calldata to check payee, amount, approvals, and block freshness. If it returns BLOCK, stop; a PASS is not a guarantee."* | `preflight_gate` | **Free** |
| **Check measured token safety / sellability** | *"Run `check_token_safety` on token `0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE` and tell me whether it is sellable at a realistic size, what the round-trip cost is, and whether the result is TRUST / CAUTION / AVOID. This is not a code audit."* | `check_token_safety` | $0.10 |
| **Verify an arbitrage opportunity** | *"Use `verify_arbitrage` to check if the claimed arb between Uniswap V3 and Sushiswap on WETH/USDC is real right now on chain 1."* | `verify_arbitrage` | $0.05 |
| **Audit a swap quote** | *"I was quoted 0.35 WETH for 1,000 USDC. Call `verify_quote_fairness` to see if this quote is honest or if I'm being overcharged."* | `verify_quote_fairness` | $0.05 |
| **Check market depth & slippage** | *"Check `get_trade_depth` for WETH on Uniswap V3 to see how much slippage I would take on a $25,000 swap."* | `get_trade_depth` | $0.05 |
| **Find true on-chain swap route** | *"Query `get_best_route` to find the exact net payout for swapping 2,000 USDC to WETH across all DEX pools."* | `get_best_route` | $0.03 |
---
## Machine-Readable Discovery
- **Service Manifest:** [`/.well-known/verify402.json`](https://verify402.onrender.com/.well-known/verify402.json) ([Documentation](docs/service-manifest.md))
- **OpenAPI 3.1 Specification:** [`/openapi.json`](https://verify402.onrender.com/openapi.json)
- **MCP Registry Manifest:** [`server.json`](server.json) ([Publishing Guide](docs/mcp-registry-publishing.md))
- **x402 Bazaar Discovery:** [`docs/x402-discovery.md`](docs/x402-discovery.md)
- **Plain Text Contract:** [`/llms.txt`](https://verify402.onrender.com/llms.txt)
- **Discovery Audit:** [`docs/discovery-audit.md`](docs/discovery-audit.md)
- **Directory Submission Checklist:** [`docs/distribution-directory-checklist.md`](docs/distribution-directory-checklist.md)
**Human Pages:** [Home](https://verify402.onrender.com/) · [Start](https://verify402.onrender.com/start) · [Preflight Gate](https://verify402.onrender.com/preflight) · [MCP Server](https://verify402.onrender.com/mcp) · [Checks](https://verify402.onrender.com/checks) · [Live Findings](https://verify402.onrender.com/live) · [Proof & Receipts](https://verify402.onrender.com/proof) · [Docs](https://verify402.onrender.com/docs) · [Donate](https://verify402.onrender.com/donate)
---
## Why an agent would pay for this
Models hallucinate profit. Most arb "opportunities" an LLM surfaces are stale, ignore
fees, or come from a quote that was never checked against the venue that would
execute the trade. This service exists to be the check an agent cannot do itself.
## The measurement discipline
Quotes come from the canonical on-chain sources — **never our own reimplementation
of venue math**:
- V3: Uniswap's deployed `QuoterV2` (its answers are the router's answers by construction)
- V2: each router's own `getAmountsOut`
Both legs are measured against **one block number**, so the round trip reflects a
single instant rather than two prices that never coexisted.
Three bugs were caught by the test suite before this ever served a paid response,
and they are the reason the tests exist:
1. **Invented profit (the big one).** `decodeFunctionResult` on `getAmountsOut` — a
single declared output, which viem unwraps — was indexed with `decoded[0]`,
silently grabbing the array's first element: the *input* amount. On the sell leg
that turned 41 WETH into 41 **trillion** USDC of "profit". Now the decoder finds
the `uint256[]` structurally and refuses a result equal to the input.
2. **Basis points off by 100x.** −292 USDC on a 100,000 USDC round trip rendered as
−0.29 bps instead of −29. A rounding trick multiplying by `10_000n` instead of
`1_000_000n` when keeping two decimals of precision.
3. **Venue that doesn't exist still gets reported.** Started as an unasserted
assumption; `all configured venues exist on-chain` is now a test.
```bash
node test/measure.test.mjs # 5 checks, needs a mainnet RPC
```
One check is the headline property: *a 100k USDC round trip on Ethereum must NOT
come out profitable.* If it ever does, the engine is wrong until proven otherwise.
## Run it
```bash
npm install
npm test # engine checks (network required)
node src/server.mjs # testnet payment mode
BYPASS_PAYMENT=1 node src/server.mjs # locaLo que la gente pregunta sobre verify402
¿Qué es a32116150-ctrl/verify402?
+
a32116150-ctrl/verify402 es mcp servers para el ecosistema de Claude AI. Pay-per-call verification for AI agents: on-chain arbitrage profitability, token safety, swap routing, quote validation, and trade sizing powered by x402 USDC micropayments. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-20.
¿Cómo se instala verify402?
+
Puedes instalar verify402 clonando el repositorio (https://github.com/a32116150-ctrl/verify402) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar a32116150-ctrl/verify402?
+
Nuestro agente de seguridad ha analizado a32116150-ctrl/verify402 y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene a32116150-ctrl/verify402?
+
a32116150-ctrl/verify402 es mantenido por a32116150-ctrl. La última actividad registrada en GitHub es del 2026-10-20, con 0 issues abiertos.
¿Hay alternativas a verify402?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega verify402 en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/a32116150-ctrl-verify402)<a href="https://claudewave.com/repo/a32116150-ctrl-verify402"><img src="https://claudewave.com/api/badge/a32116150-ctrl-verify402" alt="Featured on ClaudeWave: a32116150-ctrl/verify402" width="320" height="64" /></a>Más MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev