Algorand Standard Assets (ASAs) | Algorand Developer Portal

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.

Assets Overview

There are several things to be aware of before getting started with assets:

Asset Parameters

The type of asset created depends on the parameters specified during asset creation and, in some cases, during reconfiguration.

Asset Parameters Reference View the complete list of parameters used in asset creation and configuration

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

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

If a manager address is specified, it can later update the control addresses shown in this section.

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.

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.

This capability is often used to enforce compliance rules or recover assets when contractual conditions are violated.