Cardano Tokens
Overview
On Cardano, beyond the base coin ADA, you can create additional token assets directly at the protocol level — both fungible and non‑fungible — without requiring smart contracts. These "native assets" are first‑class citizens of the ledger, handled by the same mechanisms as ADA itself, rather than being implemented as smart contract tokens like on Ethereum.
A native asset is identified by a unique Policy ID + Asset Name. You can mint and burn assets per the rules defined in the policy. Tokens can be accompanied by metadata (name, ticker, description, logo, decimals) that wallets/explorers can use to render them human‑readably.
BitGo currently supports Fungible Tokens.
Key Terms & Concepts
| Term | Meaning |
|---|---|
| Asset Name | Name of the token under the policy. Can be ASCII encoded or plain text. |
| Fingerprint | Unique identifier of the token |
| Ledger-level support | Tokens + ADA are handled natively within UTXOs. |
| Metadata | Human-readable details, logo, decimals, etc. |
| Mint/Burn | Increase/decrease supply. |
| Native Asset | Token created on Cardano's multi‑asset ledger. |
| Policy ID | The unique on-chain identifier associated with a minting policy on the Cardano blockchain. It is derived from the policy script and enforced by the blockchain protocol. |
Supported ADA Tokens
BitGo supported ADA fungible tokens can be accessed here
Native Asset Architecture
2. Asset Name Encoding
Asset names sent to the blockchain are byte strings. If the name is "NIGHT":
ASCII: 4e 49 47 48 54
Asset Name Hex = 4e49474854
3. Asset Fingerprint
Asset names can be reused under different policies, so they are not globally unique by themselves. To uniquely identify a Cardano native asset, you concatenate the policy ID with the ASCII-encoded asset name, then apply the hashing and encoding process defined in CIP-14. This produces a bech32-encoded asset fingerprint with the prefix asset. An example is the MINS token, which has the policy ID 29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6 and an asset name encoded as 4d494e. When these are combined and processed using the CIP-14 hashing and encoding scheme, they produce the token’s fingerprint.
asset1d9v7aptfvpx7we2la8f25kwprkj2ma5rp6uwzv
4. Multi-Asset UTXO Model
Cardano's extended UTXO model allows a UTXO to hold:
{ ADA + any number of native tokens }
5. Token UTXO Structure
An UTXO output containing a token will have it's token details under the asset_list attribute.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15{ "tx_hash": "FOO_TX_HASH", "tx_index": 1, "address": "FOO_ADDRESS", "value": "TRANSFER_VALUE", ...transaction_info "asset_list": [{ "decimals": DECIMAL, "quantity": "TRANSFER_QTY", "policy_id": "FOO_POLICY", "asset_name": "FOO_ASSET_NAME", "fingerprint": "FOO_FINGERPRINT" }], "is_spent": false },
6. UTXO Considerations — Minimum ADA Requirement
Every UTXO containing tokens must include a minimum ADA amount, required for:
- Preventing dust attacks
- Ensuring UTXO stability
- Ledger efficiency
For withdrawals and consolidations, BitGo requires a minimum of 1.5 ADA per asset in the UTXO, which includes a safety buffer above the on-chain minimum ADA requirement.
7. Transfers Creation (BitGo Internal Processing)
When BitGo constructs a transaction involving ADA native tokens, two independent transfers are recorded for accounting and tracking:
Token Transfer Represents the movement of the asset quantity between addresses.
Fee Transfer Represents the ADA used to satisfy the:
Minimum 1.5 ADA UTXO requirement
Network fee for transaction execution
Separating these ensures clear auditability and accurate internal bookkeeping.
8. Consolidations
BitGo currently supports multi-asset consolidation, wherein both native ADA and all associated tokens are consolidated from the specified receive addresses into the wallet’s root address.
Unlike many other UTXO-based blockchains, Cardano requires consolidating the funds to the base address in order to use the maximum spendable amount.
The below API will consolidate both the native coin and tokens to the root address
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>" export COIN="tada" export WALLET_ID="<YOUR_WALLET_ID>" export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>" export ADDRESS_1="<DESTINATION_ADDRESS_1>" export ADDRESS_2="<DESTINATION_ADDRESS_2>" export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>" curl -X POST \ http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/$WALLET_ID/consolidateAccount \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -d '{ "consolidateAddresses": [ { "address": "'"$ADDRESS_1"'" }, { "address": "'"$ADDRESS_2"'" } ], "walletPassphrase": "'"$WALLET_PASSPHRASE"'" }'
9. Spending from Receive Addresses
Funds held in receive addresses cannot be combined with the base address for withdrawals and must be consolidated first. If you wish to withdraw directly from a receive address, withdrawals can be performed per UTXO per address by navigating to the Unspents tab, selecting the desired UTXO from the receive address, and initiating a withdrawal.
10. Locking
Due to the UTXO-based nature of the protocol, each transaction consumes specific unspent outputs and produces new ones, which introduces constraints around concurrent spends. To prevent double-spending, race conditions, and UTXO selection conflicts, wallet-level locking is enforced. As a result, only one transaction can be constructed, signed, and submitted per wallet at any given time, and subsequent transaction requests must wait until the current transaction is completed and the transaction state is updated.
11. Reserved ADA
A total of 1.5 ADA per asset is reserved and deducted from the spendable balance and can be seen under Reserved Balance which includes the ADA associated with token UTXOs.
12. Merging and splitting of UTXOS
Efficient UTXO management through merging and splitting is important for optimizing transaction fees, improving spendability, and enabling parallel transaction processing where possible.
UTXO Splitting occurs when a transaction consumes a single UTXO and creates multiple output UTXOs. For example, spending one large UTXO and producing several smaller outputs effectively splits the original UTXO into multiple UTXOs.
UTXO Merging occurs when a transaction consumes multiple UTXOs as inputs and produces fewer outputs, often a single consolidated output. This is commonly used to combine several smaller UTXOs into one larger UTXO for more efficient future spending.
Support for UTXO splitting and merging is under active development.
13. Send Many
Send Many is supported for tokens and is recommended when sending to multiple recipients from the base address in a single transaction, helping reduce transaction fees. It is also advised when you have only one UTXO and need to initiate multiple transfers simultaneously.
Additional Resources
- ADA Documentation - Official ADA blockchain documentation
- Native Token Documentation
- ADA Viewer - Block explorer for ADA