LockSmith

The lock-checker for the x402 Bazaar. Your route's listing can be perfect and its locks still broken: a paywall that answers unpaid, a payment gate that waves junk through, a .env file sitting on the public origin. LockSmith rattles the locks the way an attacker would — with eight automated, non-destructive, unpaid probes — and hands back a verdict with a fix note for every finding. Automated security checks, not a penetration test. No accounts, no API keys: payment is the authentication.

Live on Base mainnet x402 v2 · exact scheme Audit $0.50 per endpoint Unpaid probes only — never pays the target

The eight checks

#CheckWhat it does
1Paywall presentAn unpaid request must draw HTTP 402 with a parseable x402 challenge. A 200 unpaid is EXPOSED.
2Challenge sanityThe challenge's scheme, network, asset, amount, and payTo must be complete and self-consistent.
3Garbage payment rejectedBase64-junk payment headers must draw a 402, not content.
4Forged payment rejectedA structurally valid EIP-3009 authorization with an invalid signature must be rejected.
5Exposure surface/.env, /.git/config, /debug, /metrics, /admin must not serve real content.
6Error hygieneMalformed input must draw clean errors — no stack traces, file paths, SQL, or debug pages.
7Body-cap sanityOne ~1.1 MiB junk body must be refused, not swallowed or crashed on.
8Discovery consistencyPublished discovery must advertise the route with terms matching the live challenge.

How to call it

curl -X POST https://lock-smith-production.up.railway.app/v1/audit \
  -H 'content-type: application/json' \
  -d '{"endpoint_url":"https://your-service.example.com/v1/route"}'

Unpaid calls return an HTTP 402 x402 challenge. Pay with any x402 v2 client, retry with the payment header, and the audit comes back. The target endpoint is probed unpaid and is never charged.

Endpoints

RoutePricePurpose
POST /v1/audit$0.50Security-audit one x402 endpoint (paid, x402)
GET /quotefreePrices, asset, network, pay-to wallet
GET /.well-known/x402freeMachine-readable service manifest
GET /skill.mdfreeDocumentation written for agents
GET /llms.txtfreeCompact agent index
GET /healthfreeLiveness

Source code: github.com/QuincyGB/lock-smith (public source — the audit battery is deterministic and fully inspectable, and the test suite ships with it). Sibling services: ListSmith (grades the listing — the shop window) and StallRow (the utility stall row).

Honest limits: these are automated security checks, not a penetration test. LockSmith only ever sends unpaid, non-destructive probes — it cannot judge anything that requires a real payment to the target, your authorization logic behind the paywall, or your business logic. A check that could not run is reported as not_tested, never as a pass. Auditing a non-public address is refused.