Skip to main content
Glama

Omni x402 Prover: Pay-Per-Proof Formal Verification Server

Python License: MIT Zero External Dependencies Coinbase x402 Bazaar Network

Omni x402 Prover is a production-grade, zero-external-dependency Python 3.10+ x402 Pay-Per-Proof HTTP + Model Context Protocol (MCP) Server designed for Coinbase x402 Bazaar (cdp.coinbase.com / x402bazaar.org).

It enables autonomous AI agents, smart contracts, and Web3 developers to execute automated, high-assurance formal cryptographic invariant verification (Z3 SMT solver and bounded algebraic solver) by paying micropayments in Base USDC per proof call.


Key Highlights

  • Zero External Dependencies: Operates exclusively using Python 3.10+ standard library (http.server, urllib.request, ast, hashlib, dataclasses, json).

  • 100% Non-Custodial: Never accepts, handles, or stores private keys. Micropayments settle directly on Base to your configured cold wallet or multisig via EIP-3009 authorizations.

  • Replay-Proof Security: Thread-safe ReplayNonceStore guarantees that consumed payment authorizations and digests cannot be replayed twice.

  • Dual Verification Engines: Seamlessly leverages asi_engine.verifiers (SMT-LIB2 / Z3-Solver) on the Hermes VM, with pure-Python bounded algebraic fallbacks for headless/standalone deployments.

  • Dual Interfaces: Exposes both a standard REST/HTTP server (ThreadingHTTPServer) and a JSON-RPC 2.0 stdio MCP server compatible with Coinbase Payments MCP.


Related MCP server: wham-engine

Monetized Verification Endpoints & Pricing

All payments are settled in Base USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, 6 decimals):

Route / Tool

Pricing (Atomic)

Pricing (USDC)

Target Verification Domain

/x402/verify-vault-and-roundingx402_verify_vault_rounding

20000

$0.02 USDC

ERC-4626, Euler v2, Meteora share rounding asymmetries & zero-share donation attacks

/x402/verify-polymarket-basketx402_verify_polymarket_basket

20000

$0.02 USDC

Polymarket NegRisk / CTF conditional token solvency & Dutch-book net edge verification

/x402/verify-zk-and-bitvecx402_verify_zk_or_bitvec

30000

$0.03 USDC

ZK circuit witness uniqueness (SP1, RISC Zero, Circom) or BitVector integer cast truncation

/x402/verify-differential-specx402_verify_differential_spec

50000

$0.05 USDC

Differential consensus equivalence between two implementations (C vs Rust, Reth vs Geth)

/.well-known/x402-bazaar.jsonx402_bazaar_catalog

0 (Free)

Free

Semantic catalog discovery manifest for automated Coinbase x402 Bazaar indexing


Architecture & Payment Flow

+------------------------+             +------------------------+
| Autonomous AI Agent    |             | Omni x402 Prover       |
| (or MCP Client)        |             | (HTTP / MCP Server)    |
+------------------------+             +------------------------+
            |                                       |
            | 1. POST /x402/* (without payment)     |
            |-------------------------------------->|
            |                                       | Checks payment header
            | 2. HTTP 402 Payment Required          | (missing)
            |<--------------------------------------|
            |    {x402Version: 1, accepts: [...]}   |
            |                                       |
            | 3. Signs EIP-3009 transfer authorization (Base USDC)
            |                                       |
            | 4. POST /x402/*                       |
            |    Header: X-PAYMENT: <base64_auth>   |
            |-------------------------------------->|
            |                                       | 1. Replay check (nonce store)
            |                                       | 2. Facilitator verify & settle
            |                                       | 3. Record nonce atomically
            |                                       | 4. Run Z3 formal verification
            | 5. HTTP 200 OK                        |
            |    Header: X-PAYMENT-RESPONSE: <rcpt> |
            |<--------------------------------------|
            |    Body: {verified: true/false, ...}  |
            v                                       v

Configuration & Environment Variables

All parameters are configured via environment variables (X402Config.from_env()). No personal secrets or private keys are ever stored or handled:

# EVM Recipient Address on Base (Base USDC recipient)
export X402_PAY_TO_ADDRESS="0xc8dc4ecb93c4c665Fad07E1261F5f7D60e3C6E0F"

# Target Network (base or base-sepolia)
export X402_NETWORK="base"

# Base Mainnet USDC Contract Address (6 decimals)
export X402_ASSET_ADDRESS="0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"

# Facilitator URL for verification and on-chain settlement
# Production Base default: PayAI Network Facilitator
export X402_FACILITATOR_URL="https://facilitator.payai.network"

# Optional: Coinbase CDP Facilitator JWT token (if using Coinbase CDP facilitator)
# export X402_FACILITATOR_BEARER_TOKEN="your_cdp_jwt_token_here"

# Set to 1 for offline testing/demo mode without on-chain settlement
export X402_MOCK_FACILITATOR=0

# Maximum payment authorization window (seconds)
export X402_MAX_TIMEOUT_SECONDS=60

# Pricing in atomic units (6 decimals: 20000 = \$0.02 USDC)
export X402_PRICE_VAULT_ATOMIC=20000
export X402_PRICE_POLYMARKET_ATOMIC=20000
export X402_PRICE_ZK_BITVEC_ATOMIC=30000
export X402_PRICE_DIFFERENTIAL_ATOMIC=50000

Running the Servers

1. HTTP Server (REST + OpenAPI 3.1.0 + x402 Bazaar)

Live Base Mainnet USDC Settlement (Default)

In production, omni-x402-prover connects directly to the Base Mainnet facilitator (https://facilitator.payai.network) to settle real Base USDC micropayments directly to your non-custodial EVM wallet (0xc8dc4ecb93c4c665Fad07E1261F5f7D60e3C6E0F):

python3 -m omni_x402_prover.http_server --host 127.0.0.1 --port 8402 --facilitator https://facilitator.payai.network

Alternative: Coinbase CDP Facilitator

If utilizing the Coinbase Developer Platform Facilitator with JWT authentication:

export X402_FACILITATOR_URL="https://api.developer.coinbase.com/x402"
export X402_FACILITATOR_BEARER_TOKEN="your_cdp_jwt_token_here"
python3 -m omni_x402_prover.http_server --host 127.0.0.1 --port 8402

Offline Demo / Local Testing Mode

To run an offline mock facilitator without on-chain settlement:

python3 -m omni_x402_prover.http_server --host 127.0.0.1 --port 8402 --mock-facilitator
# or via environment variable:
X402_MOCK_FACILITATOR=1 python3 -m omni_x402_prover.http_server

Endpoints available:

  • GET /health -> Server status, Z3 engine status, network parameters.

  • GET /openapi.json -> Full OpenAPI 3.1.0 specification with x-x402 monetization metadata.

  • GET /.well-known/x402-bazaar.json -> Coinbase x402 Bazaar discovery catalog.

  • POST /x402/verify-vault-and-rounding -> Paid vault formal verification ($0.02 USDC).

  • POST /x402/verify-polymarket-basket -> Paid Polymarket solvency verification ($0.02 USDC).

  • POST /x402/verify-zk-and-bitvec -> Paid ZK / BitVector verification ($0.03 USDC).

  • POST /x402/verify-differential-spec -> Paid differential consensus verification ($0.05 USDC).

2. Model Context Protocol (MCP) Server (stdio)

The MCP server connects via standard input/output (stdio) and integrates seamlessly with Claude Desktop, Cursor, and Coinbase Payments MCP:

# Live on-chain Base settlement:
python3 -m omni_x402_prover.mcp_server

# Offline mock testing mode:
python3 -m omni_x402_prover.mcp_server --mock-facilitator

In your claude_desktop_config.json or MCP settings:

{
  "mcpServers": {
    "omni-x402-prover": {
      "command": "python3",
      "args": ["-m", "omni_x402_prover.mcp_server"],
      "env": {
        "X402_PAY_TO_ADDRESS": "0xc8dc4ecb93c4c665Fad07E1261F5f7D60e3C6E0F",
        "X402_NETWORK": "base",
        "X402_ASSET_ADDRESS": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "X402_FACILITATOR_URL": "https://facilitator.payai.network"
      }
    }
  }
}

Live Exposure & Registry Indexing

Quick Public HTTPS with Cloudflare Quick Tunnel

Expose your local server to the public internet with a single command:

cloudflared tunnel --url http://127.0.0.1:8402

Cloudflare will assign an ephemeral https://<random-id>.trycloudflare.com URL that forwards traffic seamlessly with automatic SSL termination.

Registering on x402scan (x402scan.com/resources/register)

  1. Go to x402scan.com/resources/register.

  2. Enter your public server URL (e.g. https://prover.yourdomain.com).

  3. Point OpenAPI registration to https://prover.yourdomain.com/openapi.json.

  4. x402scan automatically parses the OpenAPI 3.1.0 spec, validates the 4 /x402/* routes and pricing metadata, and publishes the resource to the live registry.

Indexing on Coinbase x402 Bazaar

  1. Ensure curl -s https://prover.yourdomain.com/.well-known/x402-bazaar.json returns valid JSON.

  2. Submit your base URL to Coinbase Developer Platform (CDP) x402 Bazaar.

  3. Autonomous agents querying Bazaar discover your verifier capabilities and pay via Base USDC.

Standalone Listing: Smithery, Glama, and mcp.so

omni-x402-prover is packaged for 1-click standalone listing:

  • smithery.yaml: Full configuration schema and stdio startup function.

  • mcp.json: Standard MCP client manifest.

  • Dockerfile: Containerized deployment with Python 3.12 and Z3 solver.

  • pyproject.toml: Fully pip-installable with console scripts omni-x402-http and omni-x402-mcp.


Production Deployment Recipe: Hermes VM + Cloudflare Tunnel + systemd

Step 1: Install systemd Service

On your Hermes VM, create /etc/systemd/system/omni-x402-prover.service:

[Unit]
Description=Omni x402 Prover Pay-Per-Proof HTTP Server
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/omni-money-suite/omni-x402-prover
EnvironmentFile=/opt/omni-money-suite/omni-x402-prover/.env
ExecStart=/usr/bin/python3 -m omni_x402_prover.http_server --host 127.0.0.1 --port 8402 --facilitator https://facilitator.payai.network
Restart=always
RestartSec=5
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

Enable and start the service:

sudo systemctl daemon-reload
sudo systemctl enable omni-x402-prover
sudo systemctl start omni-x402-prover
sudo systemctl status omni-x402-prover

Step 2: Cloudflare Tunnel Production Setup

# 1. Install cloudflared
curl -fsSL https://pkg.cloudflare.com/cloudflared-ascii.repo | sudo tee /etc/yum.repos.d/cloudflared.repo
sudo apt-get install cloudflared || sudo yum install cloudflared

# 2. Authenticate and create named tunnel
cloudflared tunnel login
cloudflared tunnel create omni-x402

# 3. Configure routing (~/.cloudflared/config.yml)
# tunnel: <TUNNEL_UUID>
# credentials-file: /home/ubuntu/.cloudflared/<TUNNEL_UUID>.json
# ingress:
#   - hostname: prover.yourdomain.com
#     service: http://127.0.0.1:8402
#   - service: http_status:404

# 4. Route DNS and run tunnel as a service
cloudflared tunnel route dns omni-x402 prover.yourdomain.com
sudo cloudflared service install
sudo systemctl start cloudflared

Registering on Coinbase x402 Bazaar

Once your server is live at https://prover.yourdomain.com:

  1. Verify Bazaar Manifest: Ensure curl -s https://prover.yourdomain.com/.well-known/x402-bazaar.json returns valid JSON conforming to the x402 v1 specification.

  2. Submit to Coinbase Developer Platform (CDP): Navigate to Coinbase Developer Platform or x402bazaar.org.

  3. Index Endpoints: Provide your base URL https://prover.yourdomain.com. The bazaar crawler will automatically detect the 4 paid endpoints, verification capabilities, input schemas, and price per call ($0.02 to $0.05 USDC).

  4. Autonomous Agent Consumption: Autonomous agents querying the x402 Bazaar can now discover omni-x402-prover, pay via Base USDC micropayments, and receive verifiable formal proofs!


Running Test Suite

Omni x402 Prover includes a comprehensive test suite covering protocol compliance, replay protection, facilitator settlement, and live loopback HTTP server calls:

python3 -m unittest discover -s tests -v

Available Tools

5 tools
x402_bazaar_catalogA

Free discovery tool: returns the Coinbase x402 Bazaar semantic catalog, available verification endpoints, pricing in Base USDC, and schema definitions.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It adds useful context by stating the tool is free and listing what it returns, which implies a read-only discovery operation, but it does not explicitly disclose side effects, authentication requirements, rate limits, response size, or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence that identifies the tool as free discovery and enumerates the returned artifacts without unnecessary wording. Every phrase contributes to explaining what the tool is and what it provides.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only catalog with no output schema, the description names the key returned artifacts and states that it is free. It could be slightly more complete about response structure or size, but it gives enough information to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so there are no parameter meanings for the description to clarify. The baseline for zero parameters is 4, and the description does not need to compensate for any schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('returns') and resource (the Coinbase x402 Bazaar semantic catalog, available verification endpoints, pricing in Base USDC, and schema definitions). It labels itself a discovery tool, which helps distinguish it from the sibling verify_* tools, but it does not explicitly name or contrast those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Free discovery tool' implies it is used to discover endpoints, pricing, and schemas rather than to perform verification, and the sibling names suggest that verification belongs to the other tools. However, it provides no explicit when-to-use, when-not-to-use, or named alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_verify_differential_specB

Paid tool (50000 Base USDC atomic): Formal differential consensus equivalence verification between code_a and code_b across boundary grids.

NameRequiredDescriptionDefault
seedNo
code_aYesReference implementation source code
code_bYesCandidate implementation source code
arg_namesYesFunction argument names
domain_boundsNo
paymentHeaderNox402 Base64 or JSON payment authorization string (if not in _meta.x402Payment)
fuzz_iterationsNo
unsigned_bit_widthNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does deliver one genuinely important fact: the tool is paid at 50000 Base USDC atomic units, which is critical pre-invocation context. It omits the rest of the safety/behavior profile — what a failed equivalence means, whether payment is consumed on failure, how fuzzing affects runtime, and what payment mechanism the paymentHeader feeds into.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the price front-loaded and the operation stated second — no filler or repetition. The density is appropriate, though the terse phrasing makes 'consensus' and 'boundary grids' harder to parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is an 8-parameter, paid, computationally heavy verification tool with no annotations and no output schema, so the description must explain the verdict semantics and payment flow itself. It supplies neither, leaving the agent unable to predict the return value, failure behavior, or how the required code_a/code_b comparison is actually executed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, which sits at the baseline threshold. The description names code_a and code_b and the 'boundary grids' concept that maps onto domain_bounds, adding a little meaning beyond the schema's terse property descriptions, but seed, fuzz_iterations, unsigned_bit_width, and paymentHeader get no explanation of effects on verification rigor or cost.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation — 'formal differential consensus equivalence verification between code_a and code_b across boundary grids' — which is far more informative than the bare tool name and tells the agent it compares two implementations for semantic equivalence. It does not, however, distinguish this from the sibling x402_verify_vault_rounding / x402_verify_polymarket_basket / x402_verify_zk_or_bitvec verifiers, so the agent must infer the domain from the parameter names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use statement, no condition that selects this tool over the sibling verifiers, and no statement of prerequisites beyond the parenthetical price. The agent can infer that it is used when comparing a reference and candidate implementation, but nothing in the text confirms or excludes any scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_verify_polymarket_basketB

Paid tool (20000 Base USDC atomic): Formal verification of Polymarket NegRisk / Conditional Token solvency and Dutch-book net edge.

NameRequiredDescriptionDefault
fee_bpsNo
num_outcomesNo
paymentHeaderNox402 Base64 or JSON payment authorization string (if not in _meta.x402Payment)
payout_per_shareNo
outcome_ask_pricesYesBest ask prices across all basket outcomes
convert_no_subset_sizeNo
custom_conversion_formulaNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the price of 20000 Base USDC atomic, and the verification framing implies a computational/read-only operation, but it does not explicitly state read-only status, side effects, permissions, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted wording. Payment cost and domain purpose are both stated immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid tool with seven parameters, no annotations, no output schema, and low schema description coverage, the description is too thin. It identifies the domain but leaves out usage guidance, parameter meaning, and behavioral details an agent would need to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 29%, so the description should compensate for the undocumented parameters, but it provides no explanation of fee_bps, payout_per_share, convert_no_subset_size, or custom_conversion_formula. The domain terms loosely relate to the basket inputs but do not add practical parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verification domain: Polymarket NegRisk / Conditional Token solvency and Dutch-book net edge. That distinguishes it from sibling verification tools such as vault rounding or ZK/bitvec verification, although it phrases the action as a noun phrase rather than an explicit verb.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states that the tool is paid but gives no guidance on when to use it versus the sibling verification tools. It does not mention prerequisites, when-not-to-use cases, or how the required basket inputs should be prepared.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_verify_vault_roundingC

Paid tool (20000 Base USDC atomic): Formal Z3 verification of ERC-4626 / Euler / Meteora vault share rounding, donation attacks, and zero-share inflation vulnerabilities.

NameRequiredDescriptionDefault
max_assetsNo
max_sharesNo
paymentHeaderNox402 Base64 or JSON payment authorization string (if not in _meta.x402Payment)
redeem_fn_codeYesPython snippet or AST defining preview_redeem(shares, total_assets, total_shares)
deposit_fn_codeYesPython snippet or AST defining preview_deposit(deposit, total_assets, total_shares)
check_zero_share_mintNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden, and it does add one valuable fact: this is a paid tool costing 20000 Base USDC atomic units, plus that verification is formal (Z3). It omits critical behavior – whether payment failure blocks execution, whether the operation is read-only, how long verification takes, and whether the tool ever mutates anything.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the cost front-loaded and the subject matter immediately following. No filler or redundant restatement of the name, though it is arguably too terse for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paid formal-verification tool with no output schema and no annotations, the definition leaves the agent uncertain about the shape of the result (verdict? counterexample?), payment-failure behavior, and the semantics of the bound parameters. The price disclosure and named vulnerability classes cover the essentials of what the tool does but not enough to call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 50%: max_assets, max_shares, and check_zero_share_mint have no schema descriptions, and the description does not explain that they act as search bounds or that check_zero_share_mint toggles the zero-share inflation check it names. Only the zero-share vulnerability mention loosely hints at one undocumented parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Formal Z3 verification of vault share rounding') and scopes it to ERC-4626 / Euler / Meteora plus class of vulnerability (donation attacks, zero-share inflation). That makes it clearly distinguishable from the sibling verifiers (polymarket basket, zk_or_bitvec, differential_spec) by topic, though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus the other x402_verify_* tools, no prerequisites beyond price, and no guidance on the required Python/AST inputs being valid preview_deposit/preview_redeem definitions. The agent must infer usage entirely from the topic sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

x402_verify_zk_or_bitvecC

Paid tool (30000 Base USDC atomic): Formal Z3 verification of ZK circuit witness uniqueness (soundness) or BitVector integer cast truncation.

NameRequiredDescriptionDefault
exprNoExpression for bitvec check (e.g. 'a + b')
modeNo
output_varNo
witness_varsNo
paymentHeaderNox402 Base64 or JSON payment authorization string (if not in _meta.x402Payment)
preconditionsNo
public_inputsNo
var_bitwidthsNoDictionary of variable bitwidths (e.g. {'a': 8, 'b': 8})
target_bitwidthNo
constraints_exprsNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden. It does disclose the paid nature and exact price (30000 Base USDC atomic), which is valuable, but says nothing about what a verification result looks like, what happens when verification fails, how payment is rejected, or runtime/duration expectations. No output schema exists to fill that gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the price front-loaded and no filler, though the heavy parentheticals compress the two modes into something harder to parse than a short bulleted structure would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter tool with 30% schema coverage, nested objects, no annotations, and no output schema, one sentence cannot be sufficient. An agent has no way to know which parameters are required per mode, what the return value contains, or what payment failure looks like.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 30% across 10 parameters. The description hints that witness_vars/public_inputs/preconditions/constraints_exprs belong to zk mode and expr/var_bitwidths/target_bitwidth belong to bitvec mode, but never states this mapping, and leaves output_var and paymentHeader wholly unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Formal Z3 verification') and names the two distinct capabilities (ZK circuit witness uniqueness/soundness vs BitVector integer cast truncation), which lets an agent tell it apart from the rounding/differential siblings. Lacks an explicit cross-reference to siblings, so not a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to pick this tool over x402_verify_vault_rounding or x402_verify_differential_spec, nor any guidance on how to choose between the two modes. The mode enum exists in the schema but the description never says which parameter set belongs to which mode.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv1.0.0
    • First observedx402_bazaar_catalog
    • First observedx402_verify_differential_spec
    • First observedx402_verify_polymarket_basket
    • First observedx402_verify_vault_rounding
    • First observedx402_verify_zk_or_bitvec

TDQS

B3.3/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a clearly distinct resource: one free catalog/discovery call and four paid verifiers scoped to non-overlapping domains (vault rounding, Polymarket NegRisk solvency, ZK/BitVector, differential consensus). An agent can pick the right verifier from the domain keywords alone, and the free/paid split is explicit in the descriptions.

Naming Consistency4/5

All five names share the `x402_` prefix and four use the `verify_<target>` pattern, giving a predictable structure. The lone deviation is `x402_bazaar_catalog`, which is a noun-style discovery name rather than a verb_action, but it is still readable and its role is obvious.

Tool Count5/5

Five tools is tightly scoped for a specialized formal-prover service: one discovery entrypoint plus four verifiers, each covering a distinct class of proof obligation. No tool appears redundant or padded.

Completeness4/5

The surface covers discovery plus verification for the four advertised vulnerability classes and pricing is exposed via the catalog. Minor gaps exist: there is no tool to poll status or retrieve results/history of a submitted proof, and no generic 'verify arbitrary spec' escape hatch, which agents would need for long-running Z3 jobs.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to access crypto prices, DeFi yields, Polymarket data, Base chain info, and security scans with pay-per-call via USDC on Base mainnet.
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    Provides AI agents with 200 deterministic micro-services covering code auditing, 3D/robotics, media processing, cryptography, blockchain settlement, AI safety, networking, and math, with automatic x402 USDC micropayments.
    200
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI assistants and autonomous agents to intercept arithmetic and algebraic hallucinations via exact rational verification, seal multi-step reasoning chains with SHA-256 Merkle commitments, and optionally bridge deep verification to a remote sovereign enclave. It also supports BFT epistemic consensus across multi-agent proposals and tamper-evident session sealing.
    9
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to run a free fail-closed preflight gate on x402 payment challenges and transactions before signing, plus five USDC-paid on-chain truth checks covering arbitrage profitability, token safety, swap routing, quote validation, and trade sizing. Each check returns a verdict with pinned-block evidence and a verifiable receipt.
    Apache 2.0