What is STRK20?
Starknet\u2019s native, Umbra-style privacy pool for shielded private payments.
STRK20 lets you hold and transfer assets on Starknet without revealing who paid whom, how much, or which token. A normal transfer on Starknet is public: anyone can read the sender, recipient, amount, and asset. STRK20 moves those details into an encrypted note inside a shared privacy pool.
How a private transfer works
sender builds a shielded note
│
▼
encrypted note → STRK20 pool (public ledger, encrypted payloads)
│
▼
recipient’s wallet runs discovery (viewing key)
│
▼
wallet finds + decrypts the note → private balance updatesInstead of a public transfer, the sender creates a note — an encrypted payload committing to an amount and a token — and inserts it into the STRK20 pool. The recipient’s wallet later performs discovery: using its viewing key, it finds and decrypts the notes addressed to it. No third party can connect a sender to a recipient or learn the amount.
Key concepts
- Shielded balances — balances live as a set of encrypted notes in the pool, not as a public ERC-20 ledger entry.
- Private transfers — a shielded note is spent and one or more new notes are created for the recipient (and a self-remainder, if any).
- Encrypted notes — each note payload is encrypted so only the intended recipient can read the amount and token.
- Viewing keys — a key pair used to locate and decrypt notes. Registration is one-time and immutable per the protocol. The connected privacy wallet owns the viewing key; the dapp never sees it.
- Wallet-side discovery — the wallet scans the pool with the viewing key and reconstructs your private balance. The dapp reads balances from the wallet — it never reconstructs notes itself.
- Prover + discovery infrastructure — a proving service generates validity proofs for pool actions, and a discovery service indexes notes/channels so wallets can find them.
What is hidden vs. what remains observable
| Detail | In a STRK20 pool transfer | In a plain ERC-20 transfer |
|---|---|---|
| Sender | Hidden by the pool’s shared anonymity set | Public |
| Recipient | Hidden — notes are encrypted | Public |
| Amount | Hidden inside the encrypted note | Public |
| Token | Hidden inside the encrypted note | Public |
| Transaction timing | Observable — pool activity is on-chain | Public |
Why it matters here
ORRANGE sits on top of this protocol. You interact with STRK20 through a privacy-enabled wallet and the Starknet Wallet API; the pool, prover, and discovery are provided by the existing STRK20 infrastructure. See STRK20 Integration for exactly which pieces ORRANGE owns and which it composes.
