EarnProof credentials are signed claim payloads generated from qualifying Stellar payment activity.

Creation

  1. Worker authenticates with a Stellar wallet.
  2. Backend indexes incoming payments.
  3. Backend stores exact payment amounts as authenticated ciphertext.
  4. Worker classifies qualifying income payments.
  5. Worker selects a proof type and condition.
  6. Backend evaluates the condition.
  7. Backend creates a canonical credential payload.
  8. Backend signs the credential with the configured credential signing secret.
  9. Backend returns a proof ID, signed credential, and public verification URL.
  10. If enabled, backend contract anchoring registers the proof commitment on Soroban through the deployed proof registry.

Credential Shape

Verification

The verifier checks:
  • schema version,
  • signature,
  • expiration,
  • revocation,
  • issuer metadata,
  • optional on-chain commitment status,
  • disclosed claim result.

Expiration

Every proof must include an expiration. Expired proofs remain historically visible but should not be treated as currently valid.

Revocation

Proofs can be revoked by the worker or authorized issuer flow. Revocation should update backend status immediately and update Soroban status when the proof has an on-chain commitment. Public verification checks Soroban status for anchored proofs when contract anchoring is configured.

Portability

Future versions should support portable credentials that can be verified outside the EarnProof web application using SDK helpers and formal protocol schemas.