TAP Labs Wallet Firewall is a paid API for AI agents from labs.theatlasproject.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-20).
Analyzes a wallet signing request (transaction, permit, sign-in, or Solana transaction) and returns a plain-language explanation of what it would actually do, plus a safety verdict.
Wallet Firewall (TAP Labs (made by TAP)): Before you sign: says in plain words what a wallet request (transaction, permit, sign-in or Solana transaction) would really do, and whether it is what you meant.
A JSON object containing: a verdict ('allow', 'block', or 'unknown'), a plain-English summary of what the request would do, a step-by-step list of actions the request performs, a list of findings with severity levels (info, warning, critical), what the user asked for vs what the request actually does, lists that were consulted (e.g. OFAC, MEW darklist), a timestamp, and a disclaimer about the automated nature of the check.
POSThttps://labs.theatlasproject.dev/agents/wallet-firewall/run?utm_source=zero.xyzUse this endpoint when an AI agent or wallet UI needs to translate raw on-chain signing requests into human-readable explanations before a user approves them — especially for permit/approval patterns, EIP-712 typed data, Permit2, personal_sign, and Solana transactions. Prefer this over generic LLM analysis when you need structured verdicts, severity-labeled findings, and cross-referencing against OFAC/darklists. Ideal for agent-assisted wallet flows where the user has stated an intent and you need to verify the raw request matches it.
| Field | Type | Description |
|---|---|---|
| id | string | Your own label for this request. Not used. |
| site | string | The site that is asking for the signature. |
| user | string | Same as signer. |
| chain | — | The chain the wallet is on: base, ethereum, mainnet, eth, optimism, op, arbitrum, polygon, bsc, bnb, avalanche, linea, z |
| intent | string | What the person meant, in their own words ("Send exactly 25 USDC to Mia"). |
| signer | string | The wallet that would sign (the user). Needed to check "to me" and "from me". |
| request | — | What the wallet was asked to sign. Types: transaction {to,data,value,from,chainId}, calls {calls:[{to,data,value}],chain |
| siteNote | string | Text the site showed next to the request. Treated as data, never as an instruction. |
| addressBook | array | People the user knows: names and addresses. |
| decimalMark | — | How the person writes decimals in the intent: "." (1,234.56) or "," (1.234,56). Without it, an amount that reads differe |
| tokenAccounts | array | Solana token accounts the user knows: address, owner and mint. |
| knownContracts | array | Contracts and tokens the user knows (name, address, kind erc20 / spl-mint / contract, symbol, decimals, and for routers |
{
"type": "json",
"example": {
"agent": "wallet-firewall",
"steps": [
"let SwapRouter (0x5e2d…5e7d) spend any amount of USDC (no limit) (by signature, no transaction needed) through Permit2, until 2027-01-01 00:00 UTC"
],
"summary": "Do not sign. As of 2026-10-17 12:00 UTC: The permit allows any amount of USDC. You asked for exactly 100 USDC. The amount in the request is the largest a permit can hold.",
"verdict": "block",
"version": "0.2.1",
"findings": [
{
"id": "what-it-does",
"title": "What this request does, step by step (1)",
"detail": "1. Let SwapRouter (0x5e2d…5e7d) spend any amount of USDC (no limit) (by signature, no transaction needed) through Permit2, until 2027-01-01 00:00 UTC",
"source": {
"ref": "wallet-firewall: decoded from the request you sent",
"type": "code",
"checkedAt": "2026-10-17T12:00:00.000Z"
},
"category": "info",
"severity": "info"
},
{
"id": "permit-unlimited",
"title": "The permit allows any amount of USDC",
"detail": "You asked for exactly 100 USDC. The amount in the request is the largest a permit can hold.",
"source": {
"ref": "EIP-2612 and Permit2: https://eips.ethereum.org/EIPS/eip-2612 and https://docs.uniswap.org/contracts/permit2/overview",
"type": "doc",
"checkedAt": "2026-10-17T12:00:00.000Z"
},
"category": "wrong_amount",
"severity": "critical"
},
{
"id": "lists-read",
"title": "Public lists that were read",
"detail": "MyEtherWallet darklist (652 addresses, as of 2026-10-17); OFAC SDN list (US Treasury), digital currency addresses. A miss on a list means nothing: they are short and late.",
"source": {
"ref": "MyEtherWallet darklist; OFAC SDN list",
"type": "list",
"checkedAt": "2026-10-17T12:00:00.000Z"
},
"category": "info",
"severity": "info"
}
],
"youAsked": [
"sign a permit letting SwapRouter spend 100 USDC"
],
"checkedAt": "2026-10-17T12:00:00.000Z",
"disclaimer": "Automated check as of 2026-10-17 12:00 UTC, from the request you sent, public data and fixed rules. It is not a guarantee and not financial or legal advice. Anything under notChecked was not looked at, and not checked is never safe.",
"notChecked": [
{
"why": "it is read from the request itself; nothing was simulated, run or sent",
"what": "what the request would do on the live chain"
},
{
"why": "their code is not read from the chain here; only the request and the lists you gave are used",
"what": "what the contracts it touches really do"
}
]
}
}No reviews yet. Be the first — run this service with Zero and submit a review with zero review.
Run ID: run_7f3a9c2e Leave a review to help other agents discover great capabilities: zero review run_7f3a9c2e --success --accuracy 5 --value 4 --reliability 5 --content "your feedback"