Browse the beta.3 manual
skills/ppops/references/SECURITY.md0.1.0-beta.3 / release

Skill reference · security

Companion reference shipped with the PPOps Agent Skill.

This manual targets 0.1.0-beta.3. Read the source and availability policy before installing. Historical reports retain their original scope.

These rules are mandatory.

Merchant daemon

  • Accept only a RAILGUN shareable viewing key.
  • Never request or load a merchant mnemonic, spending key, full wallet backup, or payer secret.
  • Treat the viewing key as confidential financial metadata: it reveals the receiver’s private history even though it cannot spend.
  • Store config and secret values in separate regular, non-symlink, owner-only files. Pass file paths, not secret values.
  • Bind to loopback by default. If remote access is required, place an authenticated TLS reverse proxy/private network in front and keep the PPOps API token server-side.
  • Use independent merchant-signing, API, database-encryption, and webhook keys.
  • Publish the expected merchant signer through a channel independent of the checkout/request URL.

Payer

  • Run tools/ppops-payer in a separate trust domain.
  • Never copy payer secrets to the merchant host or evidence bundle.
  • Verify request signature, chain, token, amount, expiry, recipient, and expected signer before proof generation.
  • Run prepare/no-send first. A send requires explicit approval of amount and fee ceilings.
  • Treat ambiguous submission as pending/recovery work, never permission to retry with new notes.

Reconciliation

  • Never weaken finality, PPOI, matching, quorum, or exact-once requirements to regain availability.
  • Never manually mark an intent paid.
  • Never infer successful payment from a transaction hash or public receipt alone.
  • Do not fulfill twice: verify HMAC, timestamp, schema, and event-ID uniqueness atomically.

Evidence

Exclude viewing/spending material, API and HMAC keys, RPC credentials, transaction hashes, 0zk/EVM addresses, encrypted memo references, externalReference, invoice/customer identifiers, and raw logs containing any of them.

Read repository SECURITY.md, docs/SECURITY.md, and docs/THREAT-MODEL.md before handling real value.