App Account

App Accounts are application-specific delegated accounts that enable private, composable interactions with any protocol on Ethereum. Each app account is deterministically derived for a specific application, allowing protocols to maintain persistent state while keeping your activity completely unlinkable across different DApps.
It creates an isolated execution environment controlled by your master account via zk-SNARK proofs.
For key derivation, see Keys and Security.
Example
Goal: Swap 1 ETH for USDC without revealing your identity or other positions.
Flow:
- You have a private note:
Note(asset: ETH, amount: 1, owner: stealthAddress) - Generate operation: "Spend this note, swap ETH→USDC on Uniswap via my Uniswap App Account"
- Master Account verifies proof, transfers 1 ETH to your Uniswap App Account
- Uniswap App Account calls swap(), receives ~3000 USDC
- App Account returns 3000 USDC to Master Account
- Master Account creates new note:
Note(asset: USDC, amount: 3000, owner: new_stealthAddress)
