Skip to main content
Glama
NullClear — Web3 Security & Tx Decoder

NullClear — Web3 Security & Tx Decoder

Official

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

@nullclear/shared

packages/shared

Core constants (Base Mainnet 8453, Sepolia 84532), ERC-8004 ABIs, x402 V2 types, EIP-3009 & KYA EIP-712 schemas.

@nullclear/worker-arbiter

packages/worker-arbiter

Cloudflare Worker Hono app handling deferred escrow clearing (/v1/clear), Sybil-resistant trust scores (/v1/score), KYA mandates (/v1/kya), and machine discovery honeypots (/llms.txt, /.well-known/*, /openapi.json).

@nullclear/x402-arbiter

packages/x402-arbiter

Agent SDK providing createNullClearFetch with automatic HTTP 402 interception, EIP-3009 authorization signing, and Zod/JSON schema protection.

@nullclear/mcp

packages/mcp-server

Model Context Protocol server exposing nullclear_check_reputation, nullclear_escrow_x402_call, and nullclear_verify_kya_mandate tools to autonomous agents.

@nullclear/e2e-simulator

packages/e2e-simulator

Self-contained local simulator validating honest sellers, hallucination voids, 500 crash voids, and Sybil wash-trade detection.


Protocol Guarantees

  1. 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.

  2. 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_RISK flag is raised.

  3. 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.

  4. 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, and maxStalenessSeconds). 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 install

Build All Packages

pnpm build

Typecheck

pnpm typecheck

Run Tests

pnpm test

Run Live Autonomous E2E Simulator

pnpm demo

Available Tools

13 tools
decode_calldata_or_failed_txA
Read-onlyIdempotent
Inspect

[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).

NameRequiredDescriptionDefault
chainNoEVM chain ('base' or 'eth', default 'base')base
inputYesRaw hex calldata/revert error (0x...) OR 66-char transaction hash (0x...)

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_proxyA
Read-onlyIdempotent
Inspect

[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.

NameRequiredDescriptionDefault
chainNoTarget EVM chain ('base' or 'eth')base
addressYesSmart contract address (0x...) on Base or Ethereum0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_reputationA
Read-onlyIdempotent
Inspect

Inspect an AI agent's trust score (0-100), clearing reliability, Sybil wash-trade penalty flags, and corporate KYA backing on Base

NameRequiredDescriptionDefault
agentIdYesThe ERC-8004 agent token ID or registered identifier (e.g. '124595')
chainIdNoBase chain ID (8453 for Mainnet, 84532 for Sepolia)

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_oracleA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
pairYesTrading pair symbol (e.g. 'ETH/USDC', 'BTC/USDC', 'SOL/USDC')ETH/USDC

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_apisA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
queryNoTopic or keyword search (e.g. 'oracle', 'security', 'token', 'wallet', 'price')
categoryNoCategory filter (e.g. 'oracle', 'security', 'data', 'ai')
minUptimeNoMinimum rolling uptime score percentage (0-100, default 95)
maxLatencyMsNoMaximum acceptable edge round-trip latency in ms (default 2000)
verifiedOnlyNoOnly return verified x402 endpoints (default true)

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

NameRequiredDescriptionDefault
methodNoGET
fallbacksNoOrdered fallback candidates for autonomous multi-seller failover routing (max 3)
targetUrlYesUpstream API endpoint demanding x402 payment
invariantsNoDeep value invariants (numeric bounds, regex, forbidden substrings, timestamp freshness)
jsonSchemaNoJSON Schema draft-07 contract that response must strictly satisfy
spendPolicyNoOutbound spend firewall limits (maxPerCallAtomic, maxDailyWalletAtomic)
minTrustScoreNoMinimum acceptable trust score for seller (0-100, default 50)
sellerAgentIdNoSeller's agent ID for reputation check and Sybil wash-trade gating
rejectRefusalsNoReject canonical LLM refusal strings (default: true)
requiredFieldsNoDot-notation field paths that must exist in response (e.g. ['data.price'])
buyerPrivateKeyNoOptional buyer private key (defaults to Sponsored Free Tier, then NULLCLEAR_PRIVATE_KEY)

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_fetchB
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
urlYesTarget HTTPS URL to fetch and verify through NullClear Auto-Guard
bodyNoOptional JSON string body for POST requests
methodNoGET

TDQS

B3.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_auditA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
tokenAddressYesBase ERC-20 token contract address (e.g. '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' for USDC)0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_mandateB
Read-onlyIdempotent
Inspect

Verify an agent's Know Your Agent (KYA) corporate liability mandate, active validity, and whether a proposed transaction amount is within corporate limits

NameRequiredDescriptionDefault
agentIdYesThe ERC-8004 agent token ID
chainIdNoBase chain ID (default 8453)
transactionAmountUsdYesAmount in USD intended to spend in the transaction

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_scoreA
Read-onlyIdempotent
Inspect

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).

NameRequiredDescriptionDefault
chainIdNoBase chain ID (default 8453)
walletAddressYes0x wallet address or ERC-8004 agent ID to inspect

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_markdownB
Read-onlyIdempotent
Inspect

[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.

NameRequiredDescriptionDefault
urlYesPublic HTTPS URL or documentation page to convert into clean Markdown

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_forensicsB
Read-onlyIdempotent
Inspect

[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).

NameRequiredDescriptionDefault
chainNoTarget blockchain ('base', 'eth', or 'solana'). Auto-heals if deployed on alternate chain.base
addressYesToken or smart contract address (0x... for Base/ETH or base58 mint for Solana)0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

TDQS

B3.3/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_preflightA
Read-onlyIdempotent
Inspect

[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').

NameRequiredDescriptionDefault
toYesTarget contract 0x address
dataNoHex calldata (0x...)0x
fromNoSender 0x address for simulation
chainNoTarget EVM chain ('base' or 'eth', default 'base')base
valueNoHex or wei value to send (default '0x0')0x0

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 12 tool updatesv1.3.2
    • Addeddecode_calldata_or_failed_tx
    • Addedinspect_contract_abi_and_proxy
    • Changednullclear_check_reputation1 field changed
      • changedInput schema / properties / agentId / description
        Previous value: -"The ERC-8004 agent token ID or registered identifier"New value: +"The ERC-8004 agent token ID or registered identifier (e.g. '124595')"
    • Addednullclear_crypto_market_oracle
    • Addednullclear_discover_verified_x402_apis
    • Changednullclear_escrow_x402_call5 fields changed
      • changedInput schema / properties / buyerPrivateKey / description
        Previous 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)"
      • addedInput schema / properties / fallbacks
        Added 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"
        +}
      • addedInput schema / properties / invariants
        Added 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"
        +}
      • addedInput schema / properties / rejectRefusals
        Added value: +{
        +  "default": true,
        +  "description": "Reject canonical LLM refusal strings (default: true)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / spendPolicy
        Added 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"
        +}
    • Addednullclear_safe_fetch
    • Addednullclear_token_security_audit
    • Addednullclear_wallet_risk_score
    • Addedread_url_clean_markdown
    • Addedscan_token_forensics
    • Addedsimulate_transaction_preflight
  2. 3 tool updates
    • First observednullclear_check_reputation
    • First observednullclear_escrow_x402_call
    • First observednullclear_verify_kya_mandate

TDQS

B3.4/5.0

Scored across 13 tools

Disambiguation2/5

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.

Naming Consistency3/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers