# V3 x402 no-payment harness

This harness is deterministic, secret-free, and read-only. It does not connect
a wallet, request a signature, submit a payment, call a facilitator, settle a
transfer, broadcast a transaction, or deploy anything.

From a clean clone:

```sh
cd pr7
npm ci
npm run test:v3-no-payment
```

The locked dependency graph is `pr7/package-lock.json`. The harness covers:

- release-closed behavior with no environment variables;
- exact-value V3 release gating;
- schema-validated V3 discovery;
- both free V3 handlers in truthful data-source-unconfigured mode;
- both priced V3 handlers' unpaid x402 v2 challenges;
- `PAYMENT-REQUIRED`, `X-Request-Id`, body/header equality, network, asset,
  amount, and payee;
- receipt-status invalid, unconfigured, and positive in-memory HTTP fixtures;
- the 132-route disposition matrix, all 88 canonical public identities, and
  the evidence proof that the production `97` aggregate combines 88 Base
  identities with nine Solana network entries rather than naming 97 distinct
  endpoint paths;
- static V2/V3 import isolation and the retained V2 middleware matcher.

The flag used only inside the test process is:

```text
VAULTFIRE_X402_V3_RELEASE=read-only-fail-closed-v1
```

It enables only the local allowlisted handlers. It does not enable settlement.
