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:
- Your public keys - The cryptographic keys associated with your account
- 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
| Aspect | Ethereum | Aztec |
|---|---|---|
| Account types | EOAs and smart contracts | Only smart contracts (native account abstraction) |
| Address derivation | From public key (EOA) or CREATE/CREATE2 (contracts) | Deterministically from complete address (keys + contract code) |
| Custom auth logic | Requires smart contract wallet (e.g. ERC-4337) | Built in - every account defines its own auth |
| Sending to someone | Just need their address | Need their complete address (includes public keys for encryption) |
Learn how to work with accounts programmatically in the Accounts documentation.