Skip to content

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.

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.

The type of asset that is created will depend on the parameters that are passed during asset creation and sometimes during asset re-configuration.

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:

ParameterRequiredDescription
SenderYesAccount that sends the creation transaction and becomes the creator.
AssetNameNo, but recommendedFull name of the asset, max 32 bytes. Example: USD Coin.
UnitNameNo, but recommendedShort ticker name, max 8 bytes. Example: USDC.
TotalYesTotal number of base units to create. Cannot be changed after creation.
DecimalsYesDigits after the decimal point when displaying the asset (0–19).
DefaultFrozenYesIf true, asset holdings are frozen by default in every account.
URLNoURL with more information about the asset, max 96 bytes.
MetaDataHashNoOptional 32-byte hash of asset-related metadata.

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.