01
Privyields
Confidential Qualified Yield Market
A Zama-powered yield marketplace where a user proves they are qualified, allocates confidential cUSDC, receives encrypted rewards, and decrypts only their own results.
- ZK proves eligibility
- FHE protects allocation and reward amounts
- User-controlled disclosure at the end of the flow
02
Problem
Qualified yield access exposes too much
Private-market and qualified-investor workflows often expose wealth signals, position sizes, and portfolio movements to every operational system in the path.
- Eligibility checks reveal more than they need
- Allocation size becomes public operational data
- Reward history can expose strategy behavior
03
Solution
Separate eligibility from private capital movement
Privyields keeps qualification as a one-time proof and then routes deposits, principal, rewards, and final balance checks through encrypted cUSDC handles.
- Asset-threshold proof without publishing the asset amount
- Encrypted deposit into a selected product vault
- Reward and balance decrypt only after user signature
04
Experience
A guided demo instead of a dense dashboard
The frontend is now a step-by-step wizard: intro, wallet, qualification, product selection, mint, wrap, allocation, yield, claim, and final cUSDC balance decrypt.
- One task per screen
- Visible progress and debug events
- Final proof that the claimed reward reached the confidential balance
05
Architecture
Five on-chain building blocks
The demo composes a public mock USDC, a Zama ERC-7984 cUSDC wrapper, a Groth16 qualification registry, a permissionless product market, and a confidential yield vault.
- MockUSDC funds fresh demo wallets
- ConfidentialUSDC stores encrypted balances
- ConfidentialYieldVault stores encrypted principal and rewards
06
Market
Public products, private allocation
Any connected wallet can issue a product entry. Qualified users then browse public product metadata, while each user's allocation amount remains encrypted.
- Permissionless product issuance
- Qualification before product selection
- Ready for tier-gated product sets
07
Live Flow
From proof to confidential claim
A user generates a Groth16 asset-threshold proof, mints mock USDC, wraps it into cUSDC, encrypts a deposit, accrues a reward, decrypts the reward handle, and claims cUSDC.
- Sepolia wallet signs every live step
- Zama Relayer SDK encrypts deposit input
- User decrypt reveals only the user's own reward
08
Balance
MetaMask cannot show confidential cUSDC
cUSDC balances are encrypted handles, not public ERC-20 balanceOf values. The final page decrypts the user's own cUSDC balance and browser-recorded history after wallet signatures.
- MetaMask shows ETH and mock USDC
- The dApp decrypts current balance with Zama user decrypt
- History handles can be batch decrypted with one signature
09
Demo Scope
Built for Sepolia and recorded demos
The current deployment runs a production Next.js app behind Caddy at privyields.xyz, wired to Sepolia contracts and Zama's Sepolia FHE configuration.
- Production Next.js build, not npm dev
- Config page shows deployed contract addresses
- Frontend-only redeploy is available for UI updates
10
Boundaries
Clear demo assumptions
The proof system, confidential token flow, and encrypted accounting are real demo code. The credential process, public APR publishing, mock USDC funding, and yield strategy custody remain intentionally simplified.
- Self-serve demo actions for judge wallets
- Production needs issuer attestations and publisher roles
- Custody controls and monitoring are future work