Privacy Pool components
Runtime responsibilities
| Component | Code location | Responsibility |
|---|---|---|
| Soroban contract | stellar-privacy-layer-contracts/contract/src/lib.rs | PrivacyPoolsContract, transact, storage, proof verification, token transfers, audit event emission |
| Circuits | stellar-privacy-layer-contracts/circuits | Transaction(20,2,2,1,1), deposit/withdraw constraints, commitment/nullifier logic, public signals |
| Client SDK | stellar-privacy-layer-contracts/client-sdk | PrivacyPoolSDK, stealth addresses, coin generation, witness preparation, proof generation, Soroban serialization |
| Wallet | Integrator wallet connection | Message signing for private address derivation and Soroban transaction signing |
| Stellar/Soroban ledger | Stellar network | Contract state, token movement, events, and transaction metadata |
Transaction model
The contract exposes one public transaction entrypoint:deposit, withdraw, transfer, and mixed transactions are protocol-level shapes represented by transact inputs. They are not separate Soroban methods in the current contract.
Documentation
Soroban Contract
Contract entrypoint, verification sequence, state writes, token transfers, and event emission.
Cryptography
Commitments, nullifiers, stealth addresses, ECDH recovery, and SDK cryptographic helpers.
Client SDK
Application-side SDK responsibilities and integration boundary.
On-Chain State
Commitments, nullifiers, root history, leaf ephemeral keys, token balance, and public getters.
Audit Events
AuditEncodedDigest event shape and the handoff to the off-chain audit pipeline.