EarnProof is an open-source protocol for proving income and payment facts without exposing complete wallet history, exact earnings, total balance, unrelated transactions, or other sensitive financial activity. A worker can connect a Stellar wallet, select qualifying incoming payments, choose a proof type, and generate a signed credential such as:
This wallet received at least 1,000 USDC per month for the last three months.
A verifier can check the claim without seeing the worker’s full financial history.

How It Works

Architecture EarnProof combines a web application, backend API, signed credentials, and Soroban contracts.
  1. A worker connects Freighter on Stellar testnet.
  2. The backend authenticates the wallet through a signed challenge.
  3. The backend indexes incoming Stellar payments.
  4. The worker classifies qualifying income payments.
  5. The backend evaluates a proof condition and signs a credential.
  6. The worker shares a verification link or QR code.
  7. A verifier checks signature, expiration, revocation, issuer status, and disclosed claim.

Key Features

  • Selective disclosure — prove a claim without revealing unrelated transactions.
  • Stellar-native payments — start with public testnet payment activity.
  • Signed credentials — use deterministic payloads and cryptographic signatures.
  • Revocation support — invalidate shared proofs after issuance.
  • Soroban trust layer — use issuer and proof registries without storing private income data on-chain.
  • Open-source architecture — separate frontend, backend, contracts, SDK, docs, and specification repositories.

MVP Scope

The first implementation targets:

Documentation

Getting Started

  • Getting Started — run the local stack and understand the repository layout
  • Roadmap — delivery order and future protocol direction

Architecture

Guides

Contracts

API Reference

  • Endpoints — current and planned HTTP endpoints
  • Types — request, response, and credential types
  • Errors — common error states