Algod Daemon
The main daemon running in an Algorand Node is called algod.
It is responsible for providing access to core blockchain data and functionality. This includes transaction details, account balances, smart contract state, and other node-level information.
The algod REST API is used to GET:
-
Node info (e.g.,
/genesis,/health,/ready,/status, etc.), -
Account info (e.g.,
/accounts/{address}, etc.), -
App info (e.g.,
/applications/{application-id}, etc.), -
ASA info (e.g.,
/assets/{asset-id}, etc.), -
Blocks info (e.g.,
/blocks/{round}, etc.), -
Other ancillary information about the Ledger and pending transactions in the Transaction Pool.
The algod REST API is used to POST:
-
Synchronization commands (e.g.,
/ledger/sync/{round},/catchup/{catchpoint}, etc.), -
Transactions (e.g.,
/transactions,/transactions/simulate, etc.), -
Consensus commands (e.g.,
/participation,/participation/generate/{address}, etc.), -
AVM Compiler commands (e.g.,
/teal/compile,/teal/disassemble, etc.), -
Other ancillary dev commands.
Tasks involving the management and the usage of private keys are handled by a separate daemon, called Key Management Daemon (
kmd).
Authorization
Some algod endpoints perform sensitive actions that require authorization.
The X-Algo-API-Token header is used to authenticate requests to the private algod
endpoints.
By default, the API can be configured with two separate X-Algo-API-Token values:
-
The
algod.tokenis used to access publicalgodendpoints. -
The
admin.algod.tokenis used to access privatealgodendpoints.
Endpoints
Each algod endpoint path has two tags to separate endpoints into groups:
-
Tag 1:
public(use thealgod.token) or private (usealgod.admin.token), -
Tag 2:
participating,nonparticipating,data, orexperimental.
⚙️ IMPLEMENTATION
Constants
The following constants define key limits and default behaviors for various algod
API endpoints.
These values serve as practical defaults for most use cases. Developers implementing their own tooling or integrations can use these as general guidelines.
| Constant | Value | Description |
|---|---|---|
MaxTealSourceBytes | 524,288 bytes | Maximum allowed size for TEAL source code in API requests. |
MaxTealDryrunBytes | 1,000,000 bytes | Maximum allowed size for dryrun simulation requests. |
MaxAssetResults | 1,000 | Maximum number of assets returned in a single call to /v2/accounts/{address}/assets. |
DefaultAssetResults | 1,000 | Default number of assets returned if no explicit limit is provided (up to MaxAssetResults). |
WaitForBlockTimeout | 1e+10 nanoseconds (1 min.) | Timeout duration for the WaitForBlock endpoint when waiting for the next block to be generated. |