ORRANGE / Introduction

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 updates

Instead 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

DetailIn a STRK20 pool transferIn a plain ERC-20 transfer
SenderHidden by the pool’s shared anonymity setPublic
RecipientHidden — notes are encryptedPublic
AmountHidden inside the encrypted notePublic
TokenHidden inside the encrypted notePublic
Transaction timingObservable — pool activity is on-chainPublic
Honest limits. STRK20 provides pool-level privacy — sender, recipient, amount, and token stay hidden inside the shared anonymity set. It does not hide broader network activity such as transaction timing, and it does not make you “100% anonymous” or “untraceable”. ORRANGE never claims otherwise.

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.