# STRK20 by Example > Learn Starknet Privacy (STRK20) with runnable examples - privacy pools, notes and nullifiers, viewing keys, the Starknet Wallet API, anonymizer contracts, and wallet-builder SDK flows. Every page is available as raw Markdown at the .md URLs below; the full site in one file is at https://strk20.starknet.io/docs/llms-full.txt. ## Concepts - [What is STRK20?](https://strk20.starknet.io/docs/what-is-strk20.md) - An introduction to Starknet Privacy - confidential token transfers on a public chain - [Builder Privacy Overview](https://strk20.starknet.io/docs/builder-privacy-overview.md) - Choose the right STRK20 integration path: Starknet Wallet API, anonymizer contracts, building privacy wallets, shadow accounts, or prover infrastructure. - [Deployed Contract Addresses](https://strk20.starknet.io/docs/contract-addresses.md) - Current Starknet Mainnet and Sepolia addresses for the STRK20 privacy pool, shadow accounts, and deployed anonymizer contracts - [Notes & Nullifiers](https://strk20.starknet.io/docs/notes-and-nullifiers.md) - The UTXO note model - how private balances are stored, spent and protected from double-spending - [Viewing Keys & Backups](https://strk20.starknet.io/docs/viewing-keys.md) - What a STRK20 viewing key does, why every account needs a backup, and how to export it from Ready or Xverse - [Channels & Note Discovery](https://strk20.starknet.io/docs/channels-and-subchannels.md) - Directional channels, per-token subchannels and the scan algorithm recipients use to find their notes - [Actions, Phases & Proofs](https://strk20.starknet.io/docs/actions-and-proofs.md) - The phased action model, the per-token balance invariant, and how transactions are proven with Stwo - [Compliance & Auditing](https://strk20.starknet.io/docs/compliance.md) - Selective disclosure via an auditor-escrowed viewing key, fund tracing, and known privacy limits ## Get Started : Build Private Applications - [Overview](https://strk20.starknet.io/docs/overview.md) - A concise builder overview for choosing the right STRK20 integration route - [Anonymizer Contract Anatomy](https://strk20.starknet.io/docs/helpers/privacy-invoke.md) - The privacy_invoke pattern - how the pool calls external contracts and credits open notes - [Swap Helper](https://strk20.starknet.io/docs/helpers/swap-helper.md) - A DEX swap anonymizer contract - trade privately through any AMM using the balance-delta idiom - [Vesu Lending Helper](https://strk20.starknet.io/docs/helpers/vesu-lending-helper.md) - Earn lending yield privately - the official reference helper for Vesu ERC-4626 vaults - [Escrow](https://strk20.starknet.io/docs/helpers/escrow.md) - A deferred-delivery escrow anonymizer contract - send privately to someone who has not registered yet - [Starknet Wallet API](https://strk20.starknet.io/docs/starknet-wallet-api/overview.md) - The standard route for private dapps on Starknet: ask a privacy-enabled wallet to shield, transfer, and withdraw via starknet.js. - [starknet-start](https://strk20.starknet.io/docs/starknet-wallet-api/starknet-start-hook.md) - Use the starknet-start useStrk20 React hooks as a convenience wrapper over the Starknet Wallet API. - [starknet.js](https://strk20.starknet.io/docs/starknet-wallet-api/starknet-js.md) - Call the Starknet Wallet API directly with starknet.js WalletAccountV6 for non-React apps or finer control. - [Shadow Accounts](https://strk20.starknet.io/docs/starknet-wallet-api/shadow-accounts.md) - Use persistent, pseudonymous per-dapp accounts through the Starknet Wallet API - [Private DeFi End to End](https://strk20.starknet.io/docs/starknet-wallet-api/private-defi.md) - Connect an anonymizer contract to a dapp through the Starknet Wallet API using open notes and calldata placeholders - [AVNU Private Swaps](https://strk20.starknet.io/docs/starknet-wallet-api/avnu-private-swaps.md) - Add private swaps to a dapp with the AVNU SDK, without writing or deploying an anonymizer contract ## Build Privacy Wallets - [Getting Started](https://strk20.starknet.io/docs/sdk/getting-started.md) - Build privacy wallets on Starknet with the low-level STRK20 SDK and createPrivateTransfers - [Register](https://strk20.starknet.io/docs/sdk/register.md) - Register your viewing key in the privacy pool with the builder or autoRegister - [Deposit](https://strk20.starknet.io/docs/sdk/deposit.md) - Approve the pool, then deposit public ERC-20 tokens into a private note - [Transfer](https://strk20.starknet.io/docs/sdk/transfer.md) - Spend private notes and transfer an amount to a recipient, with change back to you - [Deposit + Transfer](https://strk20.starknet.io/docs/sdk/deposit-transfer-surplus.md) - Deposit and transfer in one transaction, with surplusTo directing the remainder - [Withdraw](https://strk20.starknet.io/docs/sdk/withdraw.md) - Withdraw private notes back to a public Starknet address as ERC-20 tokens - [Multi-Operation Batches](https://strk20.starknet.io/docs/sdk/multi-op-batch.md) - Chain several operations on one token and several tokens in a single transaction - [Shadow Accounts](https://strk20.starknet.io/docs/sdk/shadow-accounts.md) - Build and invoke deterministic per-dapp shadow accounts with the Starknet Privacy SDK - [Channels & Setup Requirements](https://strk20.starknet.io/docs/sdk/setup-requirements.md) - Check what setup a recipient needs with discoverRequirement and open channels explicitly - [Discovering Notes](https://strk20.starknet.io/docs/sdk/note-discovery.md) - Scan your channels for unspent notes with discoverNotes and discoverChannels - [Discovery Providers](https://strk20.starknet.io/docs/sdk/discovery-providers.md) - IndexerDiscoveryProvider is the discovery backend the SDK exports; ContractDiscoveryProvider exists in source but is not yet reachable - [Proving Configuration](https://strk20.starknet.io/docs/sdk/proving-config.md) - Configure ProvingServiceProofProvider, pick provingBlockId, and submit proofs correctly ## Agent Tooling - [Agent Skill](https://strk20.starknet.io/docs/agent-skill.md) - Give your coding agent working knowledge of STRK20 - concepts, Wallet API, anonymizer contracts, and the Privacy SDK