Hindsight docs
Hindsight is a pool for confidential USDC payments on Solana. Deposits and withdrawals are public, like any token transfer. Everything between them is not: inside the pool, a payment is a note whose amount is a 32-byte Pedersen commitment on chain, and the amount itself reaches only the payee and the pool's auditor, sealed in X-Wing envelopes (X25519 + ML-KEM-768). A chain archive recorded today stays unreadable after Q-Day, when quantum computers can break today's elliptic-curve encryption.
How a payment moves
- The payer deposits USDC into the pool from a wallet. The deposit amount is public; it becomes part of the payer's confidential balance.
- The payer sends. The app commits to the amount, proves in the browser that it and the payer's remaining balance are both in range, seals one envelope to the payee and one to the auditor, and sends one Solana transaction. The chain keeps the commitment and a hash of the two envelopes.
- The auditor attests. The pool's auditor opens its own envelope, checks it against the commitment and attests the note on chain.
- The payee accepts. The payee's app opens the payee envelope, checks the opening against the commitment, and accepts the note into the payee's confidential balance. A note whose envelope doesn't open is returned to its sender.
- The payee withdraws when they want USDC in their wallet. The withdrawal amount is public; the remaining balance is not.
Who uses Hindsight
| Role | What they do | Start here |
|---|---|---|
| Payer (an employer, a buyer, a treasury) | Deposits USDC, sends confidential payments, runs payroll batches | Paying, Payroll |
| Payee (an employee, a supplier) | Registers a key, accepts payments, withdraws | Receiving |
| Auditor (one per pool) | Opens and checks every note, attests, exports records, issues disclosures | Auditors |
| Integrator (a payroll platform, an app) | Builds on the SDK and the public API | SDK, API |
What you need
- A Solana wallet in your browser that supports Wallet Standard and signs v1 transactions (one confidential transfer is a single v1 transaction of about 4,024 bytes). The app lists the wallets it finds and marks any that can't sign v1 transactions yet. USB hardware wallets are not used.
- A little SOL for transaction fees and account rent. Note rent is refunded to the sender when the payee accepts.
- USDC to deposit.
Open the app to connect a wallet, or read on: Get started.