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, collectible 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 created depends on the parameters specified during asset creation and, in some cases, during reconfiguration.

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.

There are four configuration parameters in an ASA, each storing an address that controls specific capabilities:

  • Manager Address
    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.

  • Reserve Address
    The reserve account holds non-circulating units of the asset instead of the creator account. Assets transferred from the reserve account are considered units entering circulation.

    If the reserve address is changed, the new account must first opt in to the asset before transferring the remaining supply.

    The reserve address is an informational designation and is not a protocol-enforced supply control mechanism.

  • Freeze Address
    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.

  • Clawback Address
    The clawback account 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.

For example, clearing the freeze address permanently disables the ability to freeze asset holdings. :::