Skip to main content
Scope: the STELLARSIGHT facilitator, the Bazaar catalog and the agent-facing surfaces, as deployed on stellar:testnet today. Written before mainnet on purpose — a threat model produced after launch documents decisions instead of informing them. This is v0.1. It states what is defended today, with the test that proves it, and what is not, without dressing the gaps up as future work that is somehow already handled. The Tranche 2 deliverable turns this document into a running system: the same surfaces, with alerts firing against live thresholds (MONITORING.md).

Assets worth attacking

Trust boundaries

  1. Seller → facilitator. Discovery metadata is attacker-controlled. Clients echo the resource block back inside the payment payload, so every field crossing this boundary is hostile input.
  2. Buyer → facilitator. The payment payload is attacker-controlled; cryptographic validity is delegated to @x402/stellar, never reimplemented here.
  3. Facilitator → Stellar. The only party that can move funds is the buyer, via their own signature. The facilitator is non-custodial: it sponsors fees and submits.
  4. Catalog → agent. Everything the catalog returns will be read by an LLM-driven agent. Text in a listing is untrusted content, not instructions.

Threats, controls, and the test that proves each

Non-custodial by construction

The facilitator holds no user funds and has no deposit or withdrawal path. Every settlement is a direct SEP-41 transfer from the buyer’s account to the seller’s, authorized by the buyer’s own signature over the full invocation. A compromised facilitator can refuse to serve, and can waste its own sponsored fees. It cannot redirect a payment, alter an amount, or move funds it was not authorized to move.

Residual risk, stated plainly

  • Bus factor 1. One maintainer. Mitigated by Apache-2.0 licensing end to end, public CI anyone can run, and the Tranche 3 handoff deliverable (named maintainer, runbooks).
  • No external audit yet. Scheduled through the SCF Audit Bank in Tranche 3; the audit fee is excluded from the budget per the rules.
  • Testnet only. No real funds are at risk today. Mainnet is gated behind the audit remediation and the monitoring in MONITORING.md being live.
  • Single shared write token. Adequate for a demo catalog, inadequate for a public index with third-party sellers. Tranche 1 replaces it with per-seller payTo binding.

Review

Revisit at each tranche boundary, and whenever the x402 spec moves (it went 2.21 → 2.22 during development). Findings from the Tranche 3 security review land here with their remediation, tracked as public issues.