NullClear — Web3 Security & Tx Decoder
OfficialNullClear Arbiter MCP server lets agents check counterparty trust, safely pay for x402 APIs via schema escrow, and verify corporate KYA mandates.
Check an AI agent's 0-100 trust score, clearing reliability, Sybil/wash-trade flags, and KYA backing by agent ID on Base.
Execute x402-gated API calls through deferred non-custodial schema escrow, settling only when the response satisfies your JSON Schema/required fields and seller meets minimum trust; otherwise $0 is spent.
Verify an agent's KYA corporate liability mandate, active validity, and whether a proposed USD transaction amount is within corporate limits.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
NullClear (nullclear.dev / nullclear.com)
Autonomous Non-Custodial Clearing & Reputation Protocol for x402 AI Agents
NullClear eliminates payment risk in Agent-to-Agent (A2A) commerce. In standard HTTP 402 Payment Required flows, buyers are forced to pay before seeing whether an upstream agent hallucinates, crashes, or returns malformed data. NullClear introduces deferred non-custodial schema escrow: the buyer signs an EIP-3009 TransferWithAuthorization, the arbiter cryptographically validates the upstream agent's output against the buyer's schema contract, and only settles payment upon 100% verification. If the seller hallucinates or crashes, the authorization is voided and $0 is spent.
Architecture Overview
┌──────────────────────────────────────────┐
│ BUYER AGENT │
│ (@nullclear/x402-arbiter client/fetch) │
└─────────────────────┬────────────────────┘
│
1. Target request │ (Intercepted 402)
2. EIP-3009 signed│ & Schema defined
▼
┌──────────────────────────────────────────┐
│ NULLCLEAR ARBITER │
│ (Cloudflare Worker + Hono) │
│ - Sybil & Wash-Trade Engine │
│ - Deterministic JSON Schema Validator │
│ - EIP-712 Receipt Attestation │
└─────────────┬──────────────┬─────────────┘
│ │
3. Proxy Request │ │ 4. If Valid: Settle
with Escrow │ │ If Invalid: VOID ($0)
▼ ▼
┌──────────────────┐ ┌───────────────────┐
│ SELLER AGENT │ │ EIP-3009 SETTLE │
│ (HTTP 402 API) │ │ (USDC on Base) │
└──────────────────┘ └───────────────────┘Related MCP server: revettr
Monorepo Packages
Package | Path | Description |
| Core constants (Base Mainnet 8453, Sepolia 84532), ERC-8004 ABIs, x402 V2 types, EIP-3009 & KYA EIP-712 schemas. | |
| Cloudflare Worker Hono app handling deferred escrow clearing ( | |
| Agent SDK providing | |
| Model Context Protocol server exposing | |
| Self-contained local simulator validating honest sellers, hallucination voids, 500 crash voids, and Sybil wash-trade detection. |
Protocol Guarantees
Non-Custodial Deferred Settlement: Buyer authorizations are held in escrow by the arbiter and only executed via EIP-3009 if the seller fulfills the schema contract. If the seller returns invalid schema or error codes, settlement is discarded.
Sybil & Wash-Trade Detection: Analyzes counterparty concentration graph. If $>60%$ of transaction volume comes from a single buyer address across $\ge 3$ transactions, a wash-trading penalty is applied and the
HIGH_COUNTERPARTY_CONCENTRATION_WASH_RISKflag is raised.KYA (Know Your Agent) Corporate Liability Mandates: Cryptographically ties an on-chain agent wallet to a legally registered corporate entity with defined liability coverage and per-transaction limits.
Machine Discovery & Self-Describing Agents: Complete
llms.txt,/.well-known/agent.json,/.well-known/x402.json,/.well-known/mcp.json, and OpenAPI 3.1.0 specifications.
What's New in v1.1.0
🛡️ Deep Deterministic Value Invariants: Extend basic JSON schema validation with field-level semantic invariants (
gt,gte,lt,lte,eq,neq,minLength,maxLength,pattern,notContains, andmaxStalenessSeconds). Stale data or numeric drift triggers instant authorization voiding ($0 charged).🛑 Canonical LLM Refusal Guard: Automatically inspects text and JSON responses for common LLM refusal boilerplate (
"as an ai language model","i cannot fulfill this request","i am unable to assist", rate limits, and server error strings), treating refusal as non-delivery.🔀 Autonomous Multi-Seller Failover Routing: Callers can provide ordered fallback candidates (
fallbacks: [{ targetUrl, sellerAgentId, paymentSignatureHeader }]). If the primary seller crashes or fails validation, the Arbiter voids the primary authorization and automatically routes to the secondary candidate without roundtripping back to the client agent.🔒 Outbound Spend Firewall & Anti-Abuse Guards: Protect buyer agent wallets with per-call caps (
maxPerCallAtomic) and daily rolling spend policies (maxDailyWalletAtomic). Rejects self-clearing wash-loops (buyer address === seller address) and enforces minimum on-chain settlement floors.
Quickstart
Prerequisites
Node.js $\ge 20$
pnpm $\ge 9$
Install Dependencies
pnpm installBuild All Packages
pnpm buildTypecheck
pnpm typecheckRun Tests
pnpm testRun Live Autonomous E2E Simulator
pnpm demoAvailable Tools
13 toolsdecode_calldata_or_failed_txARead-onlyIdempotentInspect
[ZERO API KEY REQUIRED] Universal Calldata, Custom Revert Error & Failed Transaction Post-Mortem Decoder. Accepts raw hex calldata/revert bytes (0x...) OR a 66-char transaction hash (0x...), replays reverted transactions at their exact block, decodes 4-byte signatures & parameters, and flags malicious approvals (approve / permit / setApprovalForAll).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | EVM chain ('base' or 'eth', default 'base') | base |
| input | Yes | Raw hex calldata/revert error (0x...) OR 66-char transaction hash (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive, and open-world profile. The description adds useful behavioral context beyond that: it replays reverted transactions at the exact block, decodes 4-byte signatures and parameters, and flags malicious approvals. It still omits error handling and rate-limit behavior, but the added context is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence with the most important context ('ZERO API KEY REQUIRED') first and no extraneous content. It is dense and slightly run-on, but every clause contributes to understanding what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately signals what comes back: decoded 4-byte signatures and parameters plus malicious-approval flags. Combined with annotations covering the safety profile, an agent has enough to call the tool correctly, though return-error behavior and exact response shape remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters, including the 'base'/'eth' enum for chain. The description restates the input forms (hex calldata or 66-char tx hash) but adds no new syntax, format, or constraint details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it decodes raw calldata, custom revert errors, and failed transactions, and it explicitly lists what it can accept (hex calldata or a 66-char tx hash). It does not, however, differentiate itself from nearby tools such as simulate_transaction_preflight or inspect_contract_abi_and_proxy, so sibling routing is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when the tool is applicable by describing the accepted inputs and the post-mortem replay capability. It does not state when to prefer this over simulate_transaction_preflight or another sibling, nor does it mention exclusions or prerequisites beyond 'zero API key required'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_contract_abi_and_proxyARead-onlyIdempotentInspect
[ZERO API KEY REQUIRED] Resolves EIP-1967, EIP-1822, and EIP-1167 proxy implementation addresses via eth_getStorageAt and extracts decoded 4-byte PUSH4 function selectors and dangerous opcodes (SELFDESTRUCT / DELEGATECALL) directly from on-chain bytecode without an Etherscan or Basescan API key.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Target EVM chain ('base' or 'eth') | base |
| address | Yes | Smart contract address (0x...) on Base or Ethereum | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive/openWorld, so the bar is lower; the description still adds non-obvious behavioral context — it works without any API key by reading storage slots and raw bytecode directly, and reports dangerous opcodes. It omits rate limits, RPC failure behavior, and partial-result semantics, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the key differentiator and then the specific capabilities; nothing is redundant. It is dense with technical jargon (eth_getStorageAt, PUSH4) that leans toward implementation detail rather than agent guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description partially compensates by naming the three result categories: implementation addresses, decoded 4-byte selectors, and dangerous opcode flags. It does not describe the response shape or how multiple proxy standards are reported, leaving a modest gap for a two-param analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (chain enum, address) are fully documented in the schema. The description adds no syntax, default, or format detail beyond what the schema already conveys, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: resolving EIP-1967/1822/1167 proxy implementations and extracting PUSH4 selectors and dangerous opcodes from on-chain bytecode. The mechanism (eth_getStorageAt) and named standards make it clearly distinguishable from sibling forensics tools like scan_token_forensics or nullclear_token_security_audit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '[ZERO API KEY REQUIRED]' framing implicitly tells the agent when this tool is preferable to Etherscan/Basescan-dependent alternatives, but there is no explicit when-to-use, when-not-to-use, or named sibling routing. Usage must be inferred from the described capability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_check_reputationARead-onlyIdempotentInspect
Inspect an AI agent's trust score (0-100), clearing reliability, Sybil wash-trade penalty flags, and corporate KYA backing on Base
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ERC-8004 agent token ID or registered identifier (e.g. '124595') | |
| chainId | No | Base chain ID (8453 for Mainnet, 84532 for Sepolia) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds substantive behavior beyond them: the score is a 0-100 scale, the inspection surfaces clearing reliability and Sybil wash-trade penalty flags, and the data lives on Base. It omits rate limits, auth requirements, and failure behavior for unknown agent IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with no filler, and the core resource (trust score) is front-loaded before the secondary facets. Slightly cramped as an enumeration crammed into one clause, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so reasonably by naming the score range and the four data facets an agent will receive. Read-only annotations cover the safety side. Minor gap: it doesn't indicate what happens when an agent is unregistered or how the flags are presented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — agentId (ERC-8004 token ID with an example) and chainId (Base mainnet/Sepolia) are fully documented in the schema. The description's only contribution is the phrase 'on Base', which loosely aligns with the chainId default but adds no new syntax or constraint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Inspect') and resource (an AI agent's trust/reputation profile) and enumerates the facets returned: trust score, clearing reliability, Sybil flags, KYA backing. However, it never distinguishes itself from the sibling nullclear_verify_kya_mandate, whose domain ('corporate KYA backing') it explicitly overlaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — an agent can infer this is the read-only lookup to run before trusting or transacting with an agent, but the description gives no when-to-use trigger, no prerequisites, and no routing versus verify_kya_mandate or escrow_x402_call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_crypto_market_oracleARead-onlyIdempotentInspect
Fetch multi-exchange spread-verified crypto spot prices (ETH/USDC, BTC/USDC, SOL/USDC, BASE/USDC) with cryptographic NullClear invariant receipts. Works out-of-the-box with zero configuration (10 free daily calls included).
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Trading pair symbol (e.g. 'ETH/USDC', 'BTC/USDC', 'SOL/USDC') | ETH/USDC |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond them: it is spread-verified across multiple exchanges, emits cryptographic invariant receipts, needs no configuration, and is capped at 10 free daily calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and resource. The pricing/configuration note in the second sentence is relevant and compact; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does enough by noting the return includes spread-verified prices and cryptographic receipts, and it flags the free-call limit. It is slightly thin on the exact receipt format, but for a low-complexity read tool with full annotations this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'pair' parameter, so the baseline is 3. The description does add one supported value not present in the schema examples (BASE/USDC), but otherwise does not expand on parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Fetch') and resource ('multi-exchange spread-verified crypto spot prices') and enumerates the supported pairs, making the tool's function immediately legible. It does not explicitly contrast itself with the sibling tools (reputation, escrow, token audit, etc.), but the resource is distinct enough that confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this over the sibling NullClear tools, nor any stated conditions or prerequisites beyond 'zero configuration'. The mention of '10 free daily calls' hints at a rate limit but does not tell the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_discover_verified_x402_apisARead-onlyIdempotentInspect
Search the live NullClear Ecosystem Directory for audited, high-uptime x402 & ERC-8004 APIs by topic/keyword, category, minimum uptime, or max latency. Automatically returns the NullClear-protected Zero-Loss Proxy URL ('https://api.nullclear.dev/https://...') for each endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Topic or keyword search (e.g. 'oracle', 'security', 'token', 'wallet', 'price') | |
| category | No | Category filter (e.g. 'oracle', 'security', 'data', 'ai') | |
| minUptime | No | Minimum rolling uptime score percentage (0-100, default 95) | |
| maxLatencyMs | No | Maximum acceptable edge round-trip latency in ms (default 2000) | |
| verifiedOnly | No | Only return verified x402 endpoints (default true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context by stating that a NullClear-protected Zero-Loss Proxy URL is returned for each endpoint, which matters given there is no output schema. It still omits pagination/result-count behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core purpose front-loaded and the return-value detail in the second sentence. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully explains what comes back (per-endpoint Zero-Loss Proxy URLs), and all five parameters are documented in the schema. It stops short of covering result ordering, pagination, or empty-result behavior, but nothing critical to a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% at five parameters, so the schema fully documents query, category, minUptime, maxLatencyMs and verifiedOnly. The description maps loosely onto the first four but adds no syntax, ranking or range detail beyond the schema, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: search the live NullClear Ecosystem Directory for audited x402/ERC-8004 APIs, with the filter dimensions named. It is clearly a discovery/listing tool distinct from operation tools like nullclear_escrow_x402_call, though it never names a sibling to sharpen that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: an agent should reach for this to find endpoints before invoking them. However, there is no explicit when-to-use statement, no when-not, and no pointer to the sibling that actually performs the x402 call, leaving the routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_escrow_x402_callAInspect
Execute an x402-gated HTTP API call through NullClear deferred schema escrow. The arbiter guarantees payment is only settled if upstream returns valid data matching your schema contract. Works out-of-the-box with 10 free daily trial calls before requiring NULLCLEAR_PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| method | No | GET | |
| fallbacks | No | Ordered fallback candidates for autonomous multi-seller failover routing (max 3) | |
| targetUrl | Yes | Upstream API endpoint demanding x402 payment | |
| invariants | No | Deep value invariants (numeric bounds, regex, forbidden substrings, timestamp freshness) | |
| jsonSchema | No | JSON Schema draft-07 contract that response must strictly satisfy | |
| spendPolicy | No | Outbound spend firewall limits (maxPerCallAtomic, maxDailyWalletAtomic) | |
| minTrustScore | No | Minimum acceptable trust score for seller (0-100, default 50) | |
| sellerAgentId | No | Seller's agent ID for reputation check and Sybil wash-trade gating | |
| rejectRefusals | No | Reject canonical LLM refusal strings (default: true) | |
| requiredFields | No | Dot-notation field paths that must exist in response (e.g. ['data.price']) | |
| buyerPrivateKey | No | Optional buyer private key (defaults to Sponsored Free Tier, then NULLCLEAR_PRIVATE_KEY) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds meaningful semantics beyond that: payment is only settled if upstream returns data matching the schema contract, plus the free-tier/auth fallback chain (Sponsored Free Tier -> NULLCLEAR_PRIVATE_KEY). It omits what happens on invariant failure (refund? error shape?), which is the biggest remaining behavioral question.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action first, the guarantee second, and the operational precondition last. No filler and nothing redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter, nested-object, open-world payment tool with no output schema, the description covers the money-safety guarantee but says nothing about the return payload (success/failure shape, settlement receipt, validation error details) or the multi-seller fallback behavior. Adequate to start, thin for an agent that must interpret results and handle failures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 91%, so the schema already documents nearly every parameter including nested invariants and spendPolicy fields. The description adds only the abstract notion of a 'schema contract' and says nothing about fallbacks, invariants, trust score, or spend limits beyond what the schema states. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: executing an x402-gated HTTP call via deferred schema escrow, with the settlement guarantee spelled out. It distinguishes itself conceptually from plain fetch tools by naming the payment/escrow mechanism, but never explicitly contrasts with siblings like nullclear_safe_fetch or read_url_clean_markdown.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the key precondition that 10 free daily trial calls are allowed before NULLCLEAR_PRIVATE_KEY is required, which is real usage context. However, it gives no guidance on when to choose this over nullclear_safe_fetch or nullclear_discover_verified_x402_apis, nor when to use fallbacks vs. a single target.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_safe_fetchBRead-onlyIdempotentInspect
Zero-config drop-in URL fetcher with automatic Canonical LLM Refusal Guard, HTTP 5xx crash guard, empty-JSON guard, and cryptographic execution receipt. Protects agents from hallucinated or broken API responses.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target HTTPS URL to fetch and verify through NullClear Auto-Guard | |
| body | No | Optional JSON string body for POST requests | |
| method | No | GET |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, non-destructive, idempotent, open-world). The description does add real behavioral context beyond them: guards for LLM refusals, 5xx crashes, and empty JSON, plus a 'cryptographic execution receipt'. But it never says what a guard trip actually produces (error vs. transformed payload) or how the receipt is surfaced, so the added context is suggestive rather than actionable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core function and followed by the protective behavior. Every clause is doing some work, though the coined guard names are longer than they need to be for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the full burden of explaining what comes back — yet it only alludes to a 'cryptographic execution receipt' without saying how or where it is returned. Failure semantics for the three named guards are also unspecified, which is a meaningful gap for a tool whose entire value proposition is guarding responses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: url and body are documented in-schema, and method is self-documenting via enum+default. The description adds nothing about parameters, and its 'drop-in URL fetcher' framing arguably undersells the POST-with-body capability. With the schema carrying most of the burden, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: it fetches a URL and verifies the response through guards. It is clearly distinguishable from all siblings (reputation, oracle, escrow, audit, KYA, wallet risk), none of which fetch URLs. However, the purpose is wrapped in proprietary jargon ('Canonical LLM Refusal Guard') that obscures rather than sharpens what it actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over a plain HTTP fetch or over any sibling tool, and no stated preconditions or exclusions. 'Zero-config drop-in' implies a replacement for a bare fetcher, but the agent must infer that on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_token_security_auditARead-onlyIdempotentInspect
Audit any Base ERC-20 token address for honeypots, buy/sell taxes, verified bytecode, and x402 compatibility via NullClear Bazaar. Works out-of-the-box with zero configuration (10 free daily calls included).
| Name | Required | Description | Default |
|---|---|---|---|
| tokenAddress | Yes | Base ERC-20 token contract address (e.g. '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' for USDC) | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the description's real contribution is the quota and setup context: 'zero configuration (10 free daily calls included)', which tells the agent about a rate/usage ceiling that is not in any structured field. It stops short of saying what happens when the free quota is exhausted or how errors surface.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the capability and its checks, followed by the setup/quota note. Nothing is padded, though the 'Works out-of-the-box' phrasing is slightly promotional relative to the quota fact it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with no output schema, the description covers the input domain, the checks performed (which doubles as an indication of what comes back), and the quota model. Missing is any hint of the response shape or severity/verdict semantics, which matters for a security audit tool whose value is a pass/fail judgment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter, so the schema already explains the address format and even supplies a USDC example. The description adds only the chain constraint ('Base ERC-20'), which the schema implies anyway — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Audit') and resource ('any Base ERC-20 token address') and enumerates the checks performed: honeypots, buy/sell taxes, verified bytecode, x402 compatibility. It does not, however, distinguish itself from the sibling scan_token_forensics, which sounds like an overlapping capability, so an agent cannot route between them on description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'Audit any Base ERC-20 token address' — the reader infers this is the pre-trade safety check for Base tokens. There is no explicit when-to-use/when-not statement and no named alternative, despite several plausible siblings (scan_token_forensics, nullclear_wallet_risk_score, nullclear_check_reputation).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_verify_kya_mandateBRead-onlyIdempotentInspect
Verify an agent's Know Your Agent (KYA) corporate liability mandate, active validity, and whether a proposed transaction amount is within corporate limits
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | The ERC-8004 agent token ID | |
| chainId | No | Base chain ID (default 8453) | |
| transactionAmountUsd | Yes | Amount in USD intended to spend in the transaction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds the useful scope of what is verified, but says nothing about what a failed/expired mandate does or what the caller receives, leaving behavioral disclosure thin beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler, and the core purpose is front-loaded before the enumerated checks. The comma-chained triple check is dense but each clause carries information, so size is appropriate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should ideally hint at the return (pass/fail, expiry, limit breach reason) so an agent knows how to consume the result; instead it only describes what is inspected. It is adequate but leaves a real gap for a verification tool whose value is in its verdict.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so agentId, chainId (default 8453) and transactionAmountUsd are already documented in the schema. The description only loosely echoes transactionAmountUsd via 'within corporate limits' and adds no format, unit, or chain-selection nuance beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Verify) and a precisely named resource (agent's Know Your Agent corporate liability mandate), then enumerates the three things checked: mandate existence, active validity, and transaction-amount limits. It is clearly distinguishable from check_reputation and escrow_x402_call by resource, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'proposed transaction amount' suggests this is a pre-transaction gate, but the description never states when to call it versus the reputation or escrow siblings, nor any prerequisite (e.g., must the agent ID be registered first). No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nullclear_wallet_risk_scoreARead-onlyIdempotentInspect
Check any wallet or agent address on Base for OFAC sanctions, Sybil wash-trading concentration flags, and ERC-8004 counterparty reputation. Works out-of-the-box with zero configuration (10 free daily calls included).
| Name | Required | Description | Default |
|---|---|---|---|
| chainId | No | Base chain ID (default 8453) | |
| walletAddress | Yes | 0x wallet address or ERC-8004 agent ID to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely new behavioral detail not present in structured fields: zero-configuration operation and a concrete rate limit of 10 free daily calls. It stops short of describing return shape or data-freshness behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences: the capability and the covered risk categories come first, the operational caveat second. No filler, though the parenthetical pricing note is slightly promotional rather than functional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only screening tool with no output schema, the description is largely sufficient: it names the data sources checked and the operational constraints. The remaining gap is routing between this and the sibling reputation/KYA tools, which the description does not resolve.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, and the description's phrase 'any wallet or agent address on Base' merely echoes the walletAddress/chainId semantics without adding format or edge-case detail. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Check) applied to a clear resource (wallet or agent address on Base) and enumerates the three risk categories it inspects (OFAC sanctions, Sybil wash-trading concentration, ERC-8004 counterparty reputation). That is well beyond a tautology, though it does not explicitly distinguish itself from the overlapping nullclear_check_reputation or nullclear_verify_kya_mandate siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (pre-transaction risk screening of a counterparty) and notes zero-config setup, but offers no explicit when-to-use/when-not guidance and never names an alternative among its many risk-oriented siblings. Usage must be inferred rather than read.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_url_clean_markdownBRead-onlyIdempotentInspect
[ZERO API KEY REQUIRED] Converts any public web URL or documentation page into clean, token-efficient Markdown (<400 tokens) with cryptographic SHA-256 provenance and zero HTML clutter.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public HTTPS URL or documentation page to convert into clean Markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description goes further by disclosing the output budget (<400 tokens), the stripping of HTML clutter, SHA-256 provenance, and the key constraint that only public URLs are in scope — the last being a real operational boundary an agent must respect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the core capability front-loaded. The bracketed '[ZERO API KEY REQUIRED]' prefix and words like 'cryptographic' and 'zero HTML clutter' lean promotional rather than informational, which costs it a point but does not bloat the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with rich annotations and full schema coverage, most of what an agent needs is present, including return format and size. However, an open-world fetch tool should say what happens on unreachable, paywalled, or JS-heavy pages and whether output is ever truncated — none of which is addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, so the baseline is 3. The description adds no format, scheme, or length guidance beyond what the schema already states ('Public HTTPS URL or documentation page'), so it does not earn above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb ('Converts') acts on a specific resource ('any public web URL or documentation page') and produces a named output ('clean, token-efficient Markdown'). It is unambiguous on its own, but it makes no attempt to distinguish itself from the sibling nullclear_safe_fetch, which plausibly also retrieves URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states capability but never says when to choose it or when not to. With nullclear_safe_fetch among the siblings, an agent has no stated basis for picking one over the other, and there are no exclusions (private URLs, JS-rendered pages) surfaced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_token_forensicsBRead-onlyIdempotentInspect
[ZERO API KEY REQUIRED] Block-pinned on-chain security, EIP-1967/1822 proxy resolution, instruction-boundary opcode disassembly, honeypot, and buy/sell tax audit for Base, Ethereum (ETH), or Solana tokens. Includes cross-chain self-healing auto-detection and <400-token deterministic provenance receipt (100 free calls/day/IP).
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Target blockchain ('base', 'eth', or 'solana'). Auto-heals if deployed on alternate chain. | base |
| address | Yes | Token or smart contract address (0x... for Base/ETH or base58 mint for Solana) | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive/openWorld), it discloses a 100 calls/day/IP rate limit, zero API key requirement, block-pinned determinism, and cross-chain self-healing auto-detection — all material to invocation. It does not describe failure modes or what happens when the auto-heal picks a different chain than requested.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense sentence with the value proposition front-loaded ('[ZERO API KEY REQUIRED]'), which is good, but it is keyword-stuffed with jargon ('instruction-boundary opcode disassembly', 'deterministic provenance receipt') that crowds out actionable guidance of comparable length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description only hints at the return value ('<400-token deterministic provenance receipt') without explaining its structure or fields. Combined with the missing sibling differentiation, an agent knows roughly what it gets but not how to interpret or route around it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already fully documented in the schema, including the chain enum and address formats. The description reinforces the chain scope but adds no new syntax, defaults, or constraints beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('scan') plus a concrete resource list: EIP-1967/1822 proxy resolution, opcode disassembly, honeypot and buy/sell tax audit across Base/ETH/Solana. An agent can tell what the tool produces, though it never contrasts itself with the overlapping sibling nullclear_token_security_audit or inspect_contract_abi_and_proxy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the supported chains but gives no when-to-use, when-not-to-use, or alternative routing. With a near-duplicate sibling (nullclear_token_security_audit) and proxy-inspection sibling present, the absence of any selection guidance leaves the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_transaction_preflightARead-onlyIdempotentInspect
[ZERO API KEY REQUIRED] Pre-flight EVM transaction simulator. Dry-runs eth_call + eth_estimateGas on Base or Ethereum before signing/broadcasting, decodes any custom revert reason, detects unlimited drainer approvals, and outputs recommendedAgentAction ('EXECUTE_SAFE', 'ABORT_WILL_REVERT', or 'ABORT_DRAINER_APPROVAL').
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target contract 0x address | |
| data | No | Hex calldata (0x...) | 0x |
| from | No | Sender 0x address for simulation | |
| chain | No | Target EVM chain ('base' or 'eth', default 'base') | base |
| value | No | Hex or wei value to send (default '0x0') | 0x0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real context beyond them: zero API key requirement, that it decodes custom revert reasons, and that it returns one of three recommendedAgentAction values. It omits failure modes (RPC errors, unsupported chains, rate limits), which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tightly packed sentence-set that front-loads the key differentiator (ZERO API KEY REQUIRED) and the core action, with no filler. Every clause earns its place by adding a distinct capability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of enumerating the three possible recommendedAgentAction outcomes, which is exactly what an agent needs to branch on. Minor gaps remain around error/inconclusive behavior and chain-specific limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters including the chain enum are fully documented in the schema. The description only gestures at the chain choice ('Base or Ethereum') and adds no syntax or format guidance beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Pre-flight EVM transaction simulator') plus the exact mechanism (eth_call + eth_estimateGas on Base or Ethereum). It is clearly distinguishable from the sibling decode_calldata_or_failed_tx, which handles post-hoc decoding rather than pre-broadcast simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'before signing/broadcasting' gives a clear temporal trigger for when to invoke, and the drainer-approval detection implies the safety-check use case. It stops short of naming an alternative tool or stating exclusions (e.g., what to do when simulation is inconclusive), so it is not a 5.
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.
12 tool updates
v1.3.2- Added
decode_calldata_or_failed_tx - Added
inspect_contract_abi_and_proxy - Changed
nullclear_check_reputation1 field changed- changed
Input schema / properties / agentId / descriptionPrevious value: -"The ERC-8004 agent token ID or registered identifier"New value: +"The ERC-8004 agent token ID or registered identifier (e.g. '124595')"
- Added
nullclear_crypto_market_oracle - Added
nullclear_discover_verified_x402_apis - Changed
nullclear_escrow_x402_call5 fields changed- changed
Input schema / properties / buyerPrivateKey / descriptionPrevious value: -"Optional buyer private key (defaults to BUYER_PRIVATE_KEY environment variable)"New value: +"Optional buyer private key (defaults to Sponsored Free Tier, then NULLCLEAR_PRIVATE_KEY)" - added
Input schema / properties / fallbacksAdded value: +{ + "description": "Ordered fallback candidates for autonomous multi-seller failover routing (max 3)", + "items": { + "properties": { + "headers": { + "type": "object" + }, + "paymentSignatureHeader": { + "type": "string" + }, + "sellerAgentId": { + "type": "string" + }, + "targetUrl": { + "type": "string" + } + }, + "required": [ + "targetUrl", + "paymentSignatureHeader" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / invariantsAdded value: +{ + "description": "Deep value invariants (numeric bounds, regex, forbidden substrings, timestamp freshness)", + "items": { + "properties": { + "eq": {}, + "gt": { + "type": "number" + }, + "gte": { + "type": "number" + }, + "lt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "maxLength": { + "type": "number" + }, + "maxStalenessSeconds": { + "type": "number" + }, + "minLength": { + "type": "number" + }, + "neq": {}, + "notContains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "path": { + "description": "Dot-notation property path", + "type": "string" + }, + "pattern": { + "type": "string" + } + }, + "required": [ + "path" + ], + "type": "object" + }, + "type": "array" +} - added
Input schema / properties / rejectRefusalsAdded value: +{ + "default": true, + "description": "Reject canonical LLM refusal strings (default: true)", + "type": "boolean" +} - added
Input schema / properties / spendPolicyAdded value: +{ + "description": "Outbound spend firewall limits (maxPerCallAtomic, maxDailyWalletAtomic)", + "properties": { + "maxDailyWalletAtomic": { + "description": "Max rolling daily atomic USDC spend allowed", + "type": "string" + }, + "maxPerCallAtomic": { + "description": "Max atomic USDC spend allowed per call", + "type": "string" + } + }, + "type": "object" +}
- Added
nullclear_safe_fetch - Added
nullclear_token_security_audit - Added
nullclear_wallet_risk_score - Added
read_url_clean_markdown - Added
scan_token_forensics - Added
simulate_transaction_preflight
3 tool updates
- First observed
nullclear_check_reputation - First observed
nullclear_escrow_x402_call - First observed
nullclear_verify_kya_mandate
TDQS
Scored across 13 tools
Several tool pairs overlap: scan_token_forensics and nullclear_token_security_audit both perform token honeypot/tax audits; nullclear_check_reputation and nullclear_wallet_risk_score both assess address reputation/Sybil/KYA signals; nullclear_safe_fetch and read_url_clean_markdown both fetch/clean URLs; decode_calldata_or_failed_tx and simulate_transaction_preflight both decode reverts and flag approvals. The descriptions add detail, but an agent could easily misselect among these overlapping security and fetch tools.
All names use snake_case, but conventions are mixed: about half are prefixed with nullclear_ while the rest are not, and some names start with verbs while others are noun phrases. The names are still readable and descriptive, but the pattern is not predictable.
Thirteen tools is within a healthy range for a Web3 security and agent-transaction toolkit. However, a few redundant pairs suggest some tools could be merged, so the set is slightly over-scoped rather than perfectly curated.
The surface covers token/contract/tx forensics, transaction simulation, wallet/agent reputation, KYA verification, x402 discovery/escrow, and URL/data safety. Minor gaps remain around direct approval revocation or broader chain coverage for non-token tools, but core workflows are well covered.
Maintenance
Related MCP Connectors
Sovereign AI agent economy: oracle-verified tools, escrow, arenas; paid in USDC on Base via x402.
Payment-backed trust scores for AI agents on Base (ERC-8004). $0.01 per check via x402.
Agent-to-agent escrow on Base. Post quests with ETH/USDC bounties and settle on-chain.
AI agent-to-agent SLA agreements on Base with insurance, reputation, and x402 payments.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceOnchain agent-to-agent commerce protocol using x402 and ERC-8004. Enables AI agents to buy/sell services, manage vendor catalogs, and process payments on Base.MIT
- AlicenseAqualityDmaintenanceCounterparty risk scoring for agentic commerce. Scores wallets, domains, IPs, and companies 0-100 before AI agents transact via x402 micropayments on Base13MIT
- FlicenseAqualityNot gradedmaintenanceTrust infrastructure for AI agents on Base. DEX Spread Oracle (live Uniswap V3 prices), on-chain escrow, insurance pool, and collective knowledge base. 7 smart contracts. Pay-per-query via x402 micropayments in USDC.6-
- AlicenseAqualityFmaintenanceTrust scoring, scam detection, and EAS attestations for ERC-8004 + x402 agents on Base.1868 npm1MIT