Skip to main content

App Account

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:

  1. You have a private note: Note(asset: ETH, amount: 1, owner: stealthAddress)
  2. Generate operation: "Spend this note, swap ETH→USDC on Uniswap via my Uniswap App Account"
  3. Master Account verifies proof, transfers 1 ETH to your Uniswap App Account
  4. Uniswap App Account calls swap(), receives ~3000 USDC
  5. App Account returns 3000 USDC to Master Account
  6. Master Account creates new note: Note(asset: USDC, amount: 3000, owner: new_stealthAddress)
app account