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
1. 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
2. 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
3. Multi-Asset UTXO Model
Cardano's extended UTXO model allows a UTXO to hold:
{ ADA + any number of native tokens }
4. 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 },
5. UTXO Considerations — Minimum ADA Requirement
Every UTXO on Cardano must carry a minimum amount of ADA to prevent ledger bloat. The protocol computes this minimum using:
Minimum ADA = (output size in bytes + 160) × coins per byte
- Output size is the serialized size of the UTXO. Token UTXOs include extra metadata (Policy IDs, Asset Names, quantities), so they are larger than ADA-only UTXOs.
- 160 bytes is a fixed overhead added by the protocol.
- Coins per byte is a network parameter (currently ~4,310 lovelace per byte).
Because token outputs are larger, the formula produces a higher minimum ADA.
For withdrawals and consolidations, BitGo uses a practical minimum of 1.5 ADA for token-bearing outputs, which includes a safety buffer above the on-chain minimum.
For protocol background, see Cardano Developers.
6. 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.
7. 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"'" }'
8. 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.
9. 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.
10. 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.
11. 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. For details on how BitGo automatically splits and manages UTXOs, see Automatic UTXO Splitting.
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 merging is under active development.
12. 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.
Gas Tank (Fee Sponsorship) for Token Transfers
When your enterprise has Gas Tank (Fee Sponsorship) enabled, the gas tank covers both the transaction fee and the minimum ADA requirement for token recipients. For general gas tank information — including how to enable it, fund it, and manage it — see the Cardano Gas Tank documentation.
This section covers token-specific sponsorship behavior.
Token Transfer Sponsorship Model
When sending tokens with fee sponsorship enabled:
| Component | Paid By |
|---|---|
| Transaction Fee | Gas Tank |
| Recipient minimum ADA (1.5 ADA) | Gas Tank |
| Token Amount | Sender Wallet |
| Sender Token Change minimum ADA | Sender Wallet |
| Gas Tank Change | Returned to Gas Tank |
Note: For token transfers, the sender wallet must have at least 1.5 ADA per asset to cover the minimum ADA requirement for any token change output.
Important: The 1.5 ADA sent by the gas tank to the recipient is a permanent cost to the gas tank, not a refundable fee. This ADA accompanies the tokens to the recipient's address and is not returned to the enterprise. Factor this into your gas tank funding strategy.
Minimum Gas Tank Balance for Token Transfers
Token transfers require a minimum of 3.5 ADA in the gas tank: 1.5 minimum ADA to the recipient + ~0.2 ADA transaction fee + change buffer to meet the minimum UTXO requirement.
Example: You want to send 500 NIGHT tokens from a user wallet to an external address.
| Component | Amount | Paid By |
|---|---|---|
| Recipient receives | 500 NIGHT tokens + 1.5 ADA | Tokens from sender wallet, 1.5 ADA from gas tank |
| Transaction fee | ~0.2 ADA | Gas tank |
| Gas tank change | ~1.8 ADA | Returned to gas tank |
| Minimum gas tank balance | 3.5 ADA |
In this example, the gas tank starts with 3.5 ADA. It sends 1.5 ADA to the recipient (required to accompany the tokens), pays ~0.2 ADA as the transaction fee, and receives ~1.8 ADA back as change.
Note: The sender wallet must also hold at least 1.5 ADA per asset to cover the minimum ADA requirement for any token change output returned to the sender.
Send-Many with Tokens (Multiple Recipients)
When using sendMany to send tokens to multiple recipients in a single transaction, the gas tank must provide 1.5 ADA for each recipient individually, because each recipient receives a separate UTXO.
Example: Sending tokens to 5 recipients in one transaction:
| Component | Amount | Paid By |
|---|---|---|
| 1.5 ADA per recipient (× 5) | 7.5 ADA total | Gas tank |
| Transaction fee | ~0.3 ADA (larger tx) | Gas tank |
| Gas tank change | Remaining balance | Returned to gas tank |
| Minimum gas tank balance | ~9.5 ADA |
Formula for send-many token transfers: Minimum gas tank balance = (1.5 ADA × number of recipients) + transaction fee + change buffer
For native ADA send-many (no tokens), the gas tank only covers the transaction fee regardless of the number of recipients.
How Token Withdrawals Free Up Reserved ADA
On Cardano, every UTXO that holds tokens must also hold a minimum of 1.5 ADA. This ADA is "reserved" — it cannot be spent independently while it is tied to the tokens. However, when you withdraw all tokens from a UTXO using fee sponsorship, that reserved ADA becomes spendable again because the gas tank covers the 1.5 ADA minimum for the recipient.
Example: A sender wallet has a UTXO containing 1.5 ADA + 10 NIGHT tokens. The user wants to send all 10 NIGHT tokens to an external address.
Before the transaction:
| UTXO | Contents | Spendable ADA |
|---|---|---|
| Sender UTXO | 1.5 ADA + 10 NIGHT | 0 ADA (1.5 ADA reserved for tokens) |
After the transaction:
| Output | Contents | Explanation |
|---|---|---|
| Recipient | 10 NIGHT + 1.5 ADA | 1.5 ADA paid by the gas tank (not the sender) |
| Sender | 1.5 ADA | Previously reserved ADA is now fully spendable |
Because the gas tank provides a fresh 1.5 ADA to accompany the tokens to the recipient, the sender's original 1.5 ADA is no longer tied to any tokens and becomes available for future transactions.
Partial Token Withdrawals
If you withdraw only some of the tokens from a UTXO (not all), the sender's UTXO still contains tokens after the transaction. In this case, the minimum 1.5 ADA remains reserved on the sender side because the change UTXO still holds tokens.
Example: A sender has a UTXO with 3 ADA + 10 NIGHT tokens and sends only 5 NIGHT tokens.
| Output | Contents | Explanation |
|---|---|---|
| Recipient | 5 NIGHT + 1.5 ADA | 1.5 ADA paid by gas tank |
| Sender change | 5 NIGHT + 1.5 ADA | 1.5 ADA remains reserved (tokens still present) |
| Sender ADA change | 1.5 ADA | Excess ADA returned as a separate spendable UTXO |
The reserved ADA is only fully freed when all tokens are removed from a UTXO.
Additional Resources
- ADA Documentation - Official ADA blockchain documentation
- Native Token Documentation
- ADA Viewer - Block explorer for ADA
- Cardano Gas Tank (Fee Sponsorship) - General gas tank setup, funding, and management