Skip to content

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:

  • A private key, which must be kept secret as it is used to sign transactions and prove ownership of the account.
  • A public key, which acts as the account’s unique identity on the blockchain and is shared publicly as its address.

The public key is transformed into a user-friendly Algorand address — a 58-character string you use for transactions and other blockchain interactions. Refer to Keys and Signing to understand on how this transformation happens.

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.

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.

Initializing an Account
Figure: Initializing an Account

Transactions from these accounts are authorized by 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.

Smart 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.

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.

Logic Signature Accounts are Algorand accounts controlled by TEAL logic instead of private keys. Each unique compiled logic 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. 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 logic signatures sparingly and with great care as there are numerous critical security considerations.

Multisig accounts can be configured to require signatures from multiple keys to approve transactions. The topic is large enough to merit its own page. Please follow the link to learn more.

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.

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 of account are as follows: Additional metadata and properties associated with accounts:

Asset & Application Management

  • assets: List of Algorand Standard Assets (ASAs) held by the account.
  • createdAssets: Assets created by this account.
  • totalAssetsOptedIn: Number of opted-in ASAs.
  • totalCreatedAssets: Number of ASAs created.
  • createdApps: Applications (smart contracts) created by this account.
  • totalAppsOptedIn: Number of opted-in applications.
  • totalCreatedApps: Number of applications created.

Account Status & Participation

  • status: Current status (Offline, Online, etc.).
  • participation: Staking participation data (for consensus nodes).
  • incentiveEligible: Whether the account is eligible for incentives.

Balances & Rewards

  • minBalance: Minimum required balance (microAlgos).
  • pendingRewards: Pending staking rewards. (deprecated)
  • rewards: Total rewards earned. (deprecated)
  • rewardBase?: Base value for reward calculation. (deprecated)

Metadata

  • round: Last seen round.
  • createdAtRound: Round when the account was created.
  • lastHeartbeat: Last heartbeat round (for validator nodes).
  • lastProposed: Last round the account proposed a block.

Box Storage

  • totalBoxBytes: Total bytes used in box storage.
  • totalBoxes: Number of boxes created.

Some accounts on Algorand have a special purpose.

FeeSink

The FeeSink is where all transaction fees are sent. Staking reward bonuses are paid out of the FeeSink. Check the Networks page to find the address on each network.

RewardsPool

The RewardsPool was first used to distribute rewards to balance holding accounts. Currently, this account is not used. Check the Networks page to find the address on each network.

ZeroAddress

The ZeroAddress AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ is an address that represents a byte array of all zeros. It is used when you leave an address field blank in a transaction.

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

Mobile Wallet

  • Pera: User-friendly wallet with a built-in dApp browser.

Browser Wallets

  • Lute: Developer-friendly web/extension wallet.
  • Exodus: Chrome/Browser-based extension wallet.

Hardware Wallet

  • Ledger: Secure offline storage for Algo and other crypto assets.