Security

Security principles

The security posture of 0200project services, stated plainly. The short version: there is very little to attack, because the services hold very little.

No private keys, ever

The service never asks for, receives, or stores private keys or seed phrases. There is no request field where one could be supplied, and no account to attach one to.

Payments are made from the agent's own wallet, under the agent's own control. The server only checks that a payment settled — it never touches the wallet that made it.

Non-custodial architecture

Paid calls settle in USDC on Base through the x402 protocol. Settlement is verified by a facilitator that can confirm a payment but cannot move or redirect funds. The server never holds user assets at any point.

The payment challenge is carried in the open, inside the tool response: exact amount, asset contract, and recipient address. A paying agent can inspect all of it before deciding to pay.

Minimal data collection

There are no accounts, no cookies, and no analytics. Client IPs are held transiently in memory, only for rate limiting and free-tier metering, and there is no database — nowhere for data to accumulate, nothing to breach retroactively.

Deterministic processing

There is no model in the response path. Every response is produced by deterministic decode of public chain data, so the same input always yields the same output and any response can be independently reproduced and audited.

The full source is public at github.com/0200project/base-tx-explain and self-hostable. You can run your own instance and compare its output against ours.

Infrastructure

The service is stateless: a fresh MCP server is created per request, and there are no sessions to hijack. All traffic is served over TLS.

Risk-flag blocklists are consumed read-only from public sources (ScamSniffer and MyEtherWallet), refreshed twice daily. The service never writes to them.

Honest limits

Risk flags report evidence that was found; a failed lookup never produces a flag. By the same token, the absence of a known_drainer flag is not a safety guarantee — a bad actor may simply not be on any public blocklist yet.

The tool reports what a transaction did, not whether it was a good idea. It is not financial advice.

Reporting a vulnerability

If you believe you have found a security issue in any 0200project service, open a private security advisory on GitHub with the details — what you found, where, and how to reproduce it. Advisories stay private between you and the maintainers until a fix is out. We read every report and will acknowledge yours promptly.