{"name":"com.tollwarden/tollwarden","slug":"tollwarden","title":"TollWarden","description":"Screens x402 payments before settlement for injected payee addresses and sellers who never deliver.","url":"https://mcp.market/server/tollwarden","rating":null,"grade":"A","score":94,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":26,"stars":2,"forks":2,"downloads_week":4,"last_push_at":"2026-09-19T10:45:58.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/tollwarden/tollwarden","website":"https://tollwarden.com","version":"1.5.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"tollwarden","version":"1.5.0","transport":{"type":"stdio"}}],"tools":[{"name":"check_approval_status","description":"Poll a pending human approval (from a flag verdict's `approval.approval_id` when the operator has configured approvals via POST /v1/approvals/config). Returns pending / approved / denied / expired; on approved it includes the signed override verdict (tag 'override:allow', valid a few minutes, bound to exactly the flagged payment). Requires TOLLWARDEN_API_KEY (the key that made the scan). This tool","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_counterparty_reputation","description":"Check whether a counterparty wallet address has been reported by other agents BEFORE dealing with it — scam, non-delivery, prompt injection, overcharge, impersonation, or replay abuse. Returns report counts, distinct-reporter count, and a risk level.","write_action":false,"price_micros":0,"input_schema":null},{"name":"dispute_reputation","description":"If YOUR wallet has been unfairly reported, attach a signed rebuttal that appears alongside the reports in every reputation lookup. Prove you control the wallet by signing the exact message 'tollwarden-dispute-v1|<your address, lowercase>|<statement>' with the wallet's key (EIP-191 personal_sign) and passing the 65-byte signature hex. Rebuttals never erase reports — agents see both sides. Free.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_plans","description":"Machine-readable TollWarden plan catalog: tiers (Starter/Pro/Scale) with per-scan pricing, velocity and spend limits, hard ceilings, and how to subscribe. Free.","write_action":false,"price_micros":0,"input_schema":null},{"name":"mint_api_key","description":"Issue a free TollWarden API key (first 100 calls free). Returns the key ONCE — store it and set it as TOLLWARDEN_API_KEY (or pass to other tools) for future sessions. Rate-limited per IP.","write_action":false,"price_micros":0,"input_schema":null},{"name":"report_counterparty","description":"Call this after a bad payment experience (you paid and got nothing, were scammed, overcharged, or hit an injection attempt) to warn other agents — always free. Categories: scam, non_delivery, prompt_injection, overcharge, impersonation, replay_abuse, other.","write_action":false,"price_micros":0,"input_schema":null},{"name":"report_payment_outcome","description":"ALWAYS call this AFTER a scanned payment settles, reporting what actually happened: 'delivered' (you received the goods/content), 'not_delivered' (paid but nothing arrived), 'partial', or 'wrong_content'. Pass the scan_id from the scan response and the payment_commitment from its attestation — outcomes are bound to real scans (one per scan), so delivery history cannot be faked. Your reports build ","write_action":false,"price_micros":0,"input_schema":null},{"name":"rotate_api_key","description":"Rotate the current TollWarden API key (set via TOLLWARDEN_API_KEY): mints a fresh secret bound to the SAME account — usage history, remaining free calls, and any active plan carry over unchanged. Use this the moment a key may have leaked. The old secret keeps working for grace_seconds (default 900, 0 = immediately dead, max 86400) so other sessions can switch over, but it can no longer rotate or r","write_action":false,"price_micros":0,"input_schema":null},{"name":"scan_incoming_payment","description":"ALWAYS call this BEFORE paying a 402 offer / payment request your agent received — it decides whether the offer is safe to pay. Scan the LIVE 402 returned by the exact method (GET/POST) and URL you are about to pay — NOT the catalogue/discovery listing: in the field, listings drift from live offers in both price (a listed $0.005 endpoint demanding $2.00 on the live 402) and scheme ('exact' adverti","write_action":false,"price_micros":0,"input_schema":null},{"name":"scan_outgoing_payment","description":"ALWAYS call this immediately BEFORE settling or sending any x402 payment — it decides whether the payment is safe. Returns allow (proceed) / flag (pause and confirm intent) / block (do NOT pay), with machine-readable reasons and an Ed25519-signed verdict. Scanning before the payment is signed? Set `context.phase` to 'pre_sign' (nonces don't exist until signing). IMPORTANT: if the decision to pay f","write_action":false,"price_micros":0,"input_schema":null},{"name":"subscribe_plan","description":"Subscribe/renew the current API key on a TollWarden plan (pro: $4.99/30d at $0.005/scan; scale: $19.99/30d at $0.002/scan). This endpoint is itself x402-paid at the plan's price: without an x402-paying transport the response is the 402 payment challenge to settle. Renewal extends from the current expiry.","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_verdict_attestation","description":"LOCALLY verify a TollWarden scan's Ed25519 attestation before trusting an allow-verdict: checks the signature against the pinned server key (fetched from /.well-known/tollwarden-verdict-key unless trusted_key_hex is supplied), recomputes the payment commitment from the payment YOU are about to settle (rejects attestations issued for a different payment — replay defense), and enforces expiry. Also ","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":94,"grade":"A","scanned_at":"2026-09-19T19:31:29.028Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:31:29.130Z","components":{"code":{"score":25,"max":25,"notes":["42 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"tollwarden","version":"1.5.0","found":true,"license":"BUSL-1.1","hasInstallScripts":false,"dependencyCount":10,"publishedAt":"2026-08-08T09:40:19.698Z","repositoryUrl":"git+https://github.com/tollwarden/tollwarden.git","weeklyDownloads":4}],"repo":{"found":true,"owner":"tollwarden","repo":"tollwarden","archived":false,"pushedAt":"2026-09-19T10:45:58Z","stars":2,"forks":2,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/314522935?v=4","ownerCreatedAt":"2026-08-08T04:56:32Z","license":"NOASSERTION"},"icon":{"url":null,"source":"none"},"presence":{"stars":2,"forks":2,"downloadsWeek":4,"license":"NOASSERTION","lastPushAt":"2026-09-19T10:45:58.000Z","score":26}}}},"grade_history":[],"reviews":[]}