EarnProof should remain testnet-only until security review is complete.

Contract Scripts

The contracts repo includes PowerShell deployment automation:
The script installs wasm32v1-none if needed, builds release WASM artifacts with stellar contract build, deploys the three contracts, initializes them, approves schema version 1, registers the backend issuer, and writes a deployment manifest with contract IDs and WASM hashes. Validate the generated manifest before using it in backend or frontend environments:

Deployment Order

  1. Deploy protocol config contract.
  2. Deploy issuer registry contract.
  3. Deploy proof registry contract.
  4. Initialize contracts.
  5. Approve schema version 1.
  6. Register the initial EarnProof issuer.
  7. Deploy backend with contract IDs.
  8. Deploy frontend with backend URL.

Contract Manifest

The live testnet manifest is checked into the contracts repository at:

Backend Environment

For the current testnet deployment:
The backend proof service signs credentials, serves public verification, and can optionally anchor proof commitments, revoke anchored proofs, and check public on-chain proof status with the Stellar CLI. Keep CONTRACT_ANCHORING_REQUIRED=false during early testnet runs if proof creation should continue when anchoring fails.

Verification

Before announcing a demo, confirm:
  • frontend loads,
  • backend health passes,
  • payment sync can reach Horizon,
  • contracts are initialized,
  • deployment manifest contains real contract IDs and real WASM hashes,
  • backend contract anchoring returns an anchored result or a clearly logged best-effort failure,
  • verification endpoint returns safe public responses.