Introduction
Documentation

PoolPass

PoolPass lets an investor subscribe to a gated real-world-asset pool on Stellar by proving they belong to an issuer’s accredited set, without revealing who they are, how much they hold, or who else is on the list. The proof is a 256-byte Groth16 proof, verified natively on chain.

Who it is for

  • Investors who want to subscribe to a regulated pool without handing an issuer their identity and net worth.
  • Issuers who must gate a pool to accredited participants while keeping their investor list private and preserving an audit trail.
  • Regulators and auditors who need a verifiable record that every subscriber was authorized, without a public roster.

What it does, and does not, do

  • It proves Merkle membership in a committed accredited set, a range bound on the amount, and a per-epoch nullifier.
  • It does not hide the subscription amount, the amount is a public input by design.
  • It does not hide the timing of a subscription or the on-chain wallet that submits it.
  • It does not yet run a multi-issuer pool factory; one verified demo pool runs the full loop today.

Testnet and Testnet USDC

Everything here runs on Stellar testnet, protocol 27. Settlement uses Testnet USDC (a 7-decimal test asset on Stellar testnet), a custom 7-decimal token deployed for this build, not Circle USDC. No real money moves. After the first mention we call it Testnet USDC or tUSDC. Mainnet Circle USDC integration is on the roadmap.

The one idea

Prove you qualify. Reveal nothing. The issuer knows everything about its own investors; the public ledger sees only a nullifier and a commitment.

The deployed PoolPass contract is CBVARDGOKLVCJ7ZAHETHH7GZIP35FQDQBTGK4J4PLLBXKRHU6SM7K2FV.