Skip to main content

Addresses on Aztec

Addresses on Aztec work differently from traditional blockchains. This page explains how they're created and why they enable powerful privacy features.

Every Account is a Smart Contract

On Ethereum, you have two types of accounts: externally owned accounts (EOAs) controlled by private keys, and smart contract accounts. On Aztec, every account is a smart contract. This is called "native account abstraction."

This design means your account can have custom rules for:

  • Authentication - How you prove ownership (single key, multisig, biometrics)
  • Recovery - How you regain access if you lose your keys
  • Permissions - What actions are allowed and when

Deterministic Addresses

One of Aztec's unique features is that addresses can be calculated before the account contract is deployed. Your address is derived from:

  1. Your public keys - The cryptographic keys associated with your account
  2. Contract information - The code and parameters of your account contract

This has practical benefits:

  • Receive funds first - Someone can send you tokens before your account even exists
  • Predictable addresses - You know your address as soon as you generate your keys
  • Flexible deployment - Deploy your account only when you need to send transactions

The Complete Address

An Aztec address is derived from a "complete address," which bundles together all the information needed to interact with an account:

  • All your public keys (for encryption and privacy features)
  • The partial address (contract deployment information)

The address itself is a hash of this complete address. To send someone a private transaction, you need their complete address - not just the address hash - because you need their public keys to encrypt data for them.

Privacy Considerations

Aztec addresses are designed with privacy in mind:

  • Addresses don't reveal activity - Unlike Ethereum where all transactions associated with an address are visible on chain, Aztec's privacy features keep your transaction history hidden
  • Multiple accounts are easy - Create as many accounts as you need for different purposes

How This Differs from Ethereum

AspectEthereumAztec
Account typesEOAs and smart contractsOnly smart contracts (native account abstraction)
Address derivationFrom public key (EOA) or CREATE/CREATE2 (contracts)Deterministically from complete address (keys + contract code)
Custom auth logicRequires smart contract wallet (e.g. ERC-4337)Built in - every account defines its own auth
Sending to someoneJust need their addressNeed their complete address (includes public keys for encryption)

For developers

Learn how to work with accounts programmatically in the Accounts documentation.