Concordium - Asset ID Specification
| Author | Concordium development team |
|---|---|
| Discussions-To | https://github.com/ChainAgnostic/namespaces/pull/229 |
| Status | Draft |
| Type | Standard |
| Created | 2026-09-17 |
| Requires | CAIP-2 |
Table of Contents
CAIP-19
For context, see the CAIP-19 specification.
Introduction
Concordium has three distinct kinds of assets that can be referenced:
- The native CCD coin: the chain’s own currency token, not managed by a smart contract.
- Protocol Level Tokens (PLTs): tokens implemented at the protocol level via a chain-governance operation (see CIS-7), rather than through a smart contract.
- CIS-2 tokens: fungible or non-fungible tokens managed by a smart contract that implements the CIS-2 token standard (Concordium’s analogue of ERC-20/ERC-721/ERC-1155).
Each is given its own asset_namespace below.
Specification
Semantics
All three profiles are built on top of the Concordium CAIP-2 Profile, which identifies a Concordium network by a 32-character prefix of its genesis block hash.
The native CCD coin is identified using the slip44 asset namespace, per SLIP-0044, the same convention used by other namespaces (e.g. eip155) for their native currencies.
A PLT is identified by its Token ID, a short, case-insensitive text symbol assigned to the token at creation time (see CIS-7).
A CIS-2 token is identified by its token address: a single Base58btc-encoded string that already encodes the token’s smart contract (index and subindex) together with the token’s own ID, per the CIS-2 specification. Because the contract and token ID are both embedded in this one string, no separate token_id path segment is required.
Syntax
For all assets, the format is namespace + “:” + chainId + “/” + assetNamespace + “:” + assetReference.
For each asset type, assetReference is assigned based on the table below:
| Asset Namespace | Asset Reference |
| slip-44 | coinType |
| plt | token ID |
| cis-2 | Token Address |
Details for each asset type
Concordium native CCD coin:
CAIP-19 Asset ID: namespace + ":" + chainId + "/" + "slip-44" + ":" + coinType
namespace: ccd
chainId: 32-char prefix from the hash of the genesis block
assetNamespace: slip-44
coinType: 919, the SLIP-44 coin type registered for CCD
Native CCD asset ID can be validated with the following regular expression:
`ccd:[a-zA-Z0-9]{32}/slip44:919`
Concordium Protocol-Level Tokens (PLTs):
CAIP-19 Asset ID: namespace + ":" + chainId + "/" + "plt" + ":" + tokenId
namespace: ccd
chainId: 32-char prefix from the hash of the genesis block
tokenId: 2-128 character case-insensitive string, characters [a-zA-Z0-9-.%]
assetNamespace: plt
PLT asset IDs can be validated with the following regular expression:
`ccd:[a-zA-Z0-9]{32}/plt:[a-zA-Z0-9\-.%]{2,128}`
Concordium CIS-2 tokens:
CAIP-19 Asset ID: namespace + ":" + chainId + "/" + "cis-2" + ":" + tokenAddress
namespace: ccd
chainId: 32-char prefix from the hash of the genesis block
assetNamespace: cis-2
tokenAddress: Base58Check encoding (version byte 0x02) of ULEB128(contract index) + ULEB128(contract subindex) + (1-byte length prefix + token id bytes), per the CIS-2 Token Address representation
CIS-2 asset IDs can be validated with the following regular expression:
`ccd:[a-zA-Z0-9]{32}/cis-2:[1-9A-HJ-NP-Za-km-z]+`
Resolution Mechanics
Native CCD and Protocol Level Token (PLT) asset IDs require no resolution beyond the CAIP-2 Profile chain identifier. A PLT’s existence and metadata can be looked up via the GetTokenInfo gRPC call against a Concordium node (see Concordium gRPC).
A CIS-2 token address already encodes the target contract and token ID, so no additional RPC round-trip is required to parse the identifier itself; decoding requires implementing the ULEB128 and Base58Check (version byte 0x02) algorithm described in the CIS-2 specification. Whether the referenced token actually exists can be checked via a CIS-2 contract’s balanceOf/tokenMetadata entrypoints (see CIS-2).
Rationale
In addition to the chain native CCD asset, which is also the token used to pay for chain transactions, and PLTs which are externally issued but built into the protocol layer, Concordium also supports Fungible and Non-Fungible tokens with the CIS-2 standard for smart contract defined assets.
This CAIP-19 profile reuses the CAIP-2 genesis-hash-derived chain identifier as-is, so that CAIP-19 addresses stay consistent with the network identification scheme already defined for Concordium, and uniquely define each asset across both the protocol native, and contract defined assets.
Backwards Compatibility
N/A
Test Cases
CIS-2 Tokens
# Concordium mainnet CIS-2 token (contract 10082/0, token id 0x00)
ccd:9dd9ca4d19e9393877d2c44b70f89acb/cis-2:AQ4hxc1eH3QuK
# Current Concordium testnet CIS-2 token (contract 12802/0, token id 0x01)
ccd:4221332d34e1694168c2a0c0b3fd0f27/cis-2:9BFjQGHJYuvsC
Native CCD
# Concordium mainnet CCD
ccd:9dd9ca4d19e9393877d2c44b70f89acb/slip44:919
# Current Concordium testnet CCD
ccd:4221332d34e1694168c2a0c0b3fd0f27/slip44:919
Protocol-Level Tokens
# Concordium mainnet PLT
ccd:9dd9ca4d19e9393877d2c44b70f89acb/plt:USDQ
# Current Concordium testnet PLT
ccd:4221332d34e1694168c2a0c0b3fd0f27/plt:USDQ
References
- Concordium Developer Documentation - Concordium Developer Documentation
- Concordium gRPC - Interacting with a Concordium node: Description of the Concordium gRPC API.
- CIS-2 - Concordium Token Standard 2: fungible and non-fungible tokens, including the Token Address textual representation.
- CIS-7 - Concordium’s Protocol-Level Tokens (PLTs) specification, including the Token ID format.
-
SLIP-0044 - Registry of coin types for BIP-0044, including CCD’s registered coin type 919.
- CCD CAIP-2 - Details of the Concordium CAIP-2 Chain Identifier
- CAIP-2 - The Blockchain ID Specification
- CAIP-19 - The Asset ID Specification
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Concordium development team, "namespaces/ccd-caip19: Concordium - Asset ID Specification [DRAFT]," Chain Agnostic Namespaces, ccd-caip19, September 2026 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/ccd-caip19.md