Overview of Accounts | Algorand Developer Portal

Overview of Accounts

An Algorand Account is a fundamental entity on the Algorand blockchain, representing an individual user or entity capable of holding assets, authorizing transactions, and participating in blockchain activities. Accounts on the Algorand blockchain serve several purposes, including managing balances of Algos, interacting with smart contracts, and holding Algorand Standard Assets.

An Algorand account is the foundation of user interaction on the Algorand blockchain. It starts with the creation of a cryptographic key pair:

The public key is transformed into a user-friendly Algorand address — a 58-character string you use for transactions and other blockchain interactions. For convenience, the private key can also be represented as a 25-word mnemonic, which serves as a human-readable backup for restoring account access. Refer to Keys and Signing to understand on how transformation happened from public key to algorand address.

An address is just an identifier, while an account represents the full state and capabilities on the blockchain. An address is always associated with one account, but an account can have multiple addresses through rekeying.

Account Types:

Algorand accounts fall into two broad categories: Standard Accounts and Smart Contract Accounts.

Standard Accounts

Accounts are entities on the Algorand blockchain associated with specific on-chain data, like a balance. Standard accounts are controlled by a private key, allowing users to sign transactions and interact with the blockchain. After generating a private key and corresponding address, sending Algos to the address on Algorand will initialize its state on the Algorand blockchain.

Single Signature Accounts

Single Signature Accounts are the most basic and widely used account type in Algorand, controlled by a single private key. Transactions from these accounts are authorized through a signature generated by the private key, which is stored in the transaction’s sig field as a base64-encoded string. When a transaction is signed, it forms a SignedTransaction object containing the transaction details and the generated signature. These accounts can be created as standalone key pairs, typically represented by a 25-word mnemonic, or managed through the Key Management Daemon, where multiple accounts can be derived from a master key.

Figure: Initializing an Account

Attributes

Minimum Balance

Every account on Algorand must have a minimum balance of 100,000 microAlgos. If a transaction is sent that would result in a balance lower than the minimum, the transaction will fail. The minimum balance increases with each asset holding the account whether the asset was created or owned by the account and with each application, the account created or opted in. Destroying a created asset, opting out/closing out an owned asset, destroying a created app, or opting out of an opted-in app decreases the minimum balance accordingly.

Costs and Constraints More about assets, applications, and changes to the minimum balance requirement

Account Status

The Algorand blockchain uses a decentralized Byzantine Agreement protocol that leverages pure proof of stake (Pure POS). By default, Algorand accounts are set to offline, meaning they do not contribute to the consensus process. An online account participates in Algorand consensus. For an account to go online, it must generate a participation key and send a special key registration transaction. With the addition of staking rewards into the protocol as of v4.0, Algorand consensus participants can set their account as eligible for rewards by including a 2 Algo fee when registering participation keys online. Read more about Registering an account online.

Other Attributes

Other attributes of account are as follows: Additional metadata and properties associated with accounts:

Asset & Application Management
Account Status & Participation
Balances & Rewards
Metadata
Box Storage

Multisignature Accounts

Multisignature accounts in Algorand are structured as an ordered set of addresses with a defined threshold and version, allowing them to perform transactions and participate in consensus like standard accounts. Each multisig account requires a specified number of signatures to authorize a transaction, with the threshold determining how many signatures are needed. Multisignature accounts cannot be nested within other multisig accounts.

Multisignature Accounts More details about multisignature accounts

Smart Contract Accounts

Smart Contract Accounts do not have private keys; instead, they are controlled by on-chain logic. They can hold assets and execute transactions based on pre-defined conditions.

Smart Signature Accounts (Contract Accounts):

Smart Signature Accounts are Algorand accounts controlled by TEAL logic instead of private keys. Each unique compiled smart signature program corresponds to a single Algorand address, enabling it to function as an independent account when funded. These accounts authorize transactions based on predefined TEAL logic rather than user signatures, allowing them to hold Algos and Algorand Standard Assets. Since they are stateless, they do not maintain on-chain data between transactions, making them ideal for lightweight, logic-based transaction approvals. However, it’s recommended to use smart signatures only when absolutely required as smart signatures require the logic to be supplied for every transaction.

Application Accounts (Smart Contracts):

Application accounts are automatically created for every smart contract (application) deployed on the Algorand blockchain. Each application has a unique account, with its address derived from the application ID. These accounts can hold Algos and Algorand Standard Assets (ASAs) and can also send transactions (inner transactions) as part of smart contract logic.

Special Accounts

Two accounts carry special meaning on the Algorand blockchain: the FeeSink and the RewardsPool. The FeeSink is where all transaction fees are sent. The FeeSink can only be spent on the RewardsPool account. The RewardsPool was first used to distribute rewards to balance-holding accounts. Currently, this account is not used.

In addition, the ZeroAddress AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ is an address that represents a blank byte array. It is used when you leave an address field blank in a transaction.

Check the fee sink and reward pool addresses in Network section to know more.

Wallets

In the context of Algorand developer tools, wallets refer to wallets generated and managed by the Key Management Daemon process. A wallet stores a collection of keys. kmd stores collections of wallets and allows users to perform operations using the keys stored within these wallets. Every wallet is associated with a master key, represented as a 25-word mnemonic, from which all accounts in that wallet are derived. This allows the wallet owner only to need to remember a single passphrase for all of their accounts. Wallets are stored encrypted on disk.

Wallet-derived (kmd)

HD Wallets

Hierarchical Deterministic wallets, following the ARC-0052 standard, provide an advanced method for key management. HD wallets derive keys deterministically from a single master seed, ensuring consistent addresses across different implementations. Using the Ed25519 algorithm for key generation and signing, they support BIP-44 derivation paths. It allows private key and mnemonic-based account generation, enabling deterministic recovery, automated address creation, and compatibility with Algorand’s address formats.

Wallets

In Algorand, a wallet is a system for generating, storing, and managing private keys that control accounts.

Wallet-derived (kmd) Create accounts using kmd