# Exercise the customer workflow without money

Run `npm run build`, then `npm run demo:customer` from the reviewed checkout.

The existing service build starts on loopback. Both facilitator settlement and inference are loopback stubs. The issuer key is generated for the test and discarded with the process. No production signing key, payment authorization, account, or onchain transaction is used.

The run exercises:

1. A2A discovery card.
2. MCP tool inventory.
3. Unpaid A2A request and payment-required state.
4. Explicitly simulated payment and inference through the built service.
5. A2A completed result and task retrieval.
6. Independent signature, exact-object and scope checks; mutated material fails.
7. REST retrieval of the same result without a second simulated settlement or examination.

The process now waits for the child service to stop and records a JSON receipt. `docs/examples/customer-workflow.simulated.json` is one executed run, not a real payment or production issuance. It is not evidence of an outside paying customer or smart-account facilitator compatibility.

The demonstration intentionally supplies the test issuer public key to its verifier. It proves cryptographic and object checks, not independent institutional admission of the test issuer. A production receiving party must apply its own separately admitted issuer policy.
