Algorand Standard Assets (ASAs)
The Algorand protocol supports the creation of on-chain assets that benefit from the same security, compatibility, speed, and ease of use as the native ALGO asset. The official name for assets on Algorand is Algorand Standard Assets (ASAs).
With Algorand Standard Assets you can represent stablecoins, loyalty points, system credits, and in-game points, among many other digital assets. You can also represent single, unique assets like a deed for a house, collectable items, and unique parts on a supply chain.
Assets Overview
Section titled “Assets Overview”There are several things to be aware of before getting started with assets:
- For every asset an account creates or owns, its minimum balance is increased by 0.1 Algo or 100,000 microAlgo.
- This minimum balance requirement will be placed on the original creator as long as the asset has not been destroyed. Transferring the asset does not alleviate the creator’s minimum balance requirement.
- Before a new asset can be transferred to a specific account the receiver must opt-in to receive the asset. This process is described in Transferring Assets.
- If any transaction is issued that would violate the minimum balance requirements, the transaction will fail.
Asset Parameters
Section titled “Asset Parameters”The type of asset that is created will depend on the parameters that are passed during asset creation and sometimes during asset re-configuration.
Immutable Asset Parameters
Section titled “Immutable Asset Parameters”These eight parameters can only be specified when an asset is created.
When creating an Algorand Standard Asset, the following parameters define its fundamental characteristics. Once set, these values cannot be modified for the lifetime of the asset:
| Parameter | Required | Description |
|---|---|---|
| Sender | Yes | Account that sends the creation transaction and becomes the creator. |
| AssetName | No, but recommended | Full name of the asset, max 32 bytes. Example: USD Coin. |
| UnitName | No, but recommended | Short ticker name, max 8 bytes. Example: USDC. |
| Total | Yes | Total number of base units to create. Cannot be changed after creation. |
| Decimals | Yes | Digits after the decimal point when displaying the asset (0–19). |
| DefaultFrozen | Yes | If true, asset holdings are frozen by default in every account. |
| URL | No | URL with more information about the asset, max 96 bytes. |
| MetaDataHash | No | Optional 32-byte hash of asset-related metadata. |
Mutable Asset Parameters
Section titled “Mutable Asset Parameters”Four address parameters control specific capabilities of an asset. These addresses are set during asset creation and determine who can perform actions such as updating configuration, freezing accounts, or clawing back tokens.
The four address types are:
The manager account authorizes transactions that reconfigure or destroy an asset.
If a manager address is specified, it can later update the control addresses shown in this section.
The reserve account holds non-minted units of the asset instead of the creator account.
Assets transferred from the reserve account are considered newly minted units.
If you change the reserve address, the new account must first opt in to the asset before transferring the remaining supply.
The freeze account can freeze or unfreeze asset holdings for specific accounts.
Frozen accounts cannot send or receive the asset.
If DefaultFrozen is set to true, accounts must be explicitly unfrozen before they can transfer the asset.
This can be useful for workflows such as KYC/AML approval before allowing trading.
The clawback address can transfer assets from one account to another, provided both accounts have opted in to the asset.
This capability is often used to enforce compliance rules or recover assets when contractual conditions are violated.