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 Algo. The official name for assets on Algorand is Algorand Standard Assets (ASA).
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
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
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
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 | |
AssetName | No, but recommended | |
UnitName | No, but recommended | |
Total | YES | |
Decimals | YES | |
DefaultFrozen YES | ||
URL | No | |
MetaDataHash | (No) |
Mutable Asset Parameters
There are four parameters that correspond to addresses that can authorize specific functionality for an asset. These addresses must be specified during asset creation. If a manager address is specified, that manager can later modify these addresses. However, if any of these addresses, including the manager address, are set to an empty string, that setting becomes irrevocable and can never be modified.
Here are the four address types.
The manager account is the only account that can authorize transactions to re-configure or destroy an asset.
Specifying a reserve account signifies that non-minted assets will reside in that account instead of the default creator account. Assets transferred from this account are “minted” units of the asset. If you specify a new reserve address, you must make sure the new account has opted into the asset and then issue a transaction to transfer the remaining assets to the new reserve.
The freeze account is allowed to freeze or unfreeze the asset holdings for a specific account. When an account is frozen it cannot send or receive the frozen asset. In traditional finance, freezing assets may be performed to restrict liquidation of company stock or to investigate suspected criminal activity. If the DefaultFrozen
state is set to true
, you can use the unfreeze action to authorize accounts to trade the asset, for example after completing KYC/AML checks.
The clawback address represents an account that is allowed to transfer assets from and to any asset holder, provided that they have opted-in. Use this if you need the option to revoke assets from an account when they breach certain contractual obligations tied to holding the asset. In traditional finance, this sort of transaction is referred to as a clawback.
Setting any of these four addresses to an empty string ""
will permanently clear that address and disable its associated feature. For example, setting the freeze address to an empty string will disable the ability to freeze the asset.