← Documentation

EVIDIQ Assay

A signature is irreversible, and hex is unreadable. Assay turns calldata, an EIP-712 payload, or an unsigned transaction into a plain-language statement of what it will do — unwrapping multicall and execute wrappers to reach the call that actually matters — and flags the parts worth refusing.

Live on OKX.AI

EVIDIQ Assay

Agent #9727

OKX.AI listing

https://www.okx.ai/agents/9727

Hire this agent directly from the marketplace.

Open

MCP endpoint

https://mcp.evidiq.dev/assay/mcp

Streamable HTTP, x402-gated. Free tools answer without payment.

Quickstart

Connect the Streamable HTTP MCP endpoint, then preflight for free before paying.

claude mcp add --transport http evidiq-assay https://mcp.evidiq.dev/assay/mcp

Or probe the public pricing discovery endpoint:

curl -s https://mcp.evidiq.dev/assay/x402

Prefer a Skill file? Fetch the agent-readable EVIDIQ Assay Skill:

curl -s https://mcp.evidiq.dev/assay/skill.md

What Assay is for

Before an agent signs

Read the intent while refusing is still free — after signing there is nothing to decide.

Wrapped calls

multicall and execute hide the real call; Assay decodes the inner one, not the wrapper.

Allowance traps

Unlimited approvals, setApprovalForAll, Permit and Permit2 grants, and what the spender already holds.

Net effect, not intent

Pinned-block simulation reports asset deltas per address, so the outcome is checked rather than assumed.

Who you are dealing with

Bytecode screening for proxies, owner privileges, mint, pause, blacklist, and fee setters — or no code at all.

Proof for a counterparty

attest_intent signs the digest, so both sides can show the check covered exactly these bytes.

Ten MCP tools

Five free tools cover discovery, preflight, and offline verification. Five paid tools handle decoding, allowance analysis, simulation, counterparty screening, and attestation.

Paid analysis

Free preflight and verification

What it accepts

Raw calldata, an EIP-712 typed-data JSON document, an unsigned transaction JSON, or a plain message. The kind is detected rather than declared, and validate_payload reports which kind it read before you pay. A payload it cannot parse is never scored as safe.

# calldata: approve(spender, 2^256-1)
0x095ea7b3000000000000000000000000<spender>ffffffff…ffff

Recommended workflow

Settlement happens before a paid tool runs, so a malformed argument is still a paid call. Preflight for free first.

  1. Call assay_capabilities for the rule and selector set versions, chains, and prices.
  2. Call validate_payload — it returns the detected kind and counts by severity for free.
  3. Decode with decode_transaction; for an approval, add assess_approval.
  4. Check the net effect with simulate_transaction, and the target with screen_counterparty.
  5. If a counterparty needs proof, call attest_intent and hand over the report.
  6. Verify offline with verify_assay_report, and re-fetch with get_artifact while its TTL lasts.

What a report proves, and what it does not

A report proves that these exact bytes, under this selector set and rule set version, decode to this intent and produced these findings. Anyone can re-run it and compare digests. It does not prove a transaction is safe to sign: simulation reflects one pinned block, some rules are explicitly heuristic and marked as such, and an unknown selector is reported as unknown rather than assumed harmless. Credentials are refused outright — a private key or mnemonic in the input is an error, and nothing is stored, attested, or anchored.

{
  "engine": "EVIDIQ-Assay/1.0",
  "selectorSetVersion": "1.0.0",
  "chain": "eip155:196",
  "intent": "Approve <spender> to move an unlimited amount of <token>",
  "findings": [
    { "rule": "UNLIMITED_APPROVAL", "severity": "high", "heuristic": false }
  ],
  "integrity": { "algorithm": "SHA-256", "digest": "...", "signature": "0x...", "signer": "0x..." }
}

x402 pricing

ToolAtomicUSDT0Access
decode_transaction50000.005x402-paid
assess_approval100000.01x402-paid
simulate_transaction150000.015x402-paid
screen_counterparty200000.02x402-paid
attest_intent300000.03x402-paid
assay_capabilities0FreeAlways ungated
validate_payload0FreeAlways ungated
estimate_cost0FreeAlways ungated
verify_assay_report0FreeAlways ungated
get_artifact0FreeAlways ungated

Payments use x402 v2 exact scheme with USDT0 (6 decimals) on X Layer (eip155:196). Verification and settlement run through the official OKX Onchain OS Payment SDK (@okxweb3/x402-core and @okxweb3/x402-evm). The OKX facilitator verifies each authorization and settles it on X Layer before any decoding runs.

Settled on X Layer

A live decode_transaction call paid 0.005 USDT0 (5000 atomic) on approve calldata carrying a max-uint amount, and returned the decoded intent with the unlimited-allowance finding. The receipt is status 0x1 and the transaction was broadcast by an OKX facilitator relayer rather than an Assay-held key — the on-chain evidence that settlement ran through the official SDK.

0x804a7454d75fefbbdfe43a365ec494d52e02700f18ebc3a85c75e8223b66d4ee

Licensing

EVIDIQ owns and licenses its original Assay code under MIT. Third-party dependencies keep their own open-source licenses, preserved in THIRD_PARTY_NOTICES.md.

Assay reads what an agent is about to sign. For the counterparty agent itself, use EVIDIQ Core; for the endpoint serving it, use EVIDIQ Sentinel; to keep a tamper-evident record of what was signed, use EVIDIQ Vault. Nothing here is financial advice, and no report is a guarantee of safety.

← Back to docs