Concordium - Account 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-10
For context, see the CAIP-10 specification.
Introduction
Concordium Account addresses are 32 byte arrays, represented as 50 char Base58btc-encoded strings with version byte 0x01
Each account has 16,777,216 alias addresses that can be used to send and receive funds. The first 29 bytes of an address byte array uniquely identify the account, with the final 3 bytes used to create account aliases.
Concordium Smart contracts are represented by a tuple containing both a u64 index, and a u64 subindex, <Index, Subindex>. At the time of writing, all smart contracts have subindex 0.
Specification
Semantics
A Concordium CAIP-10 account or alias address is a case-sensitive string that comprises the Concordium CAIP-2 Chain Identifier followed by a : then the Base58btc representation of the address.
A Concordium CAIP-10 Smart contract address is a case sensitive string that comprises the Concordium CAIP-2 Chain Identifier followed by a : then the Index and subindex as integers in the most compact form, separated by a ..
Syntax
Concordium Account addresses:
CAIP-10 Account address: namespace + ":" + chainId + ":" + address
namespace: ccd
chainId: 32-char prefix from the hash of the genesis block
address: Base58btc-encoded string of address bytes with version byte 0x01
Account addresses can be validated with the following regular expression:
`ccd:[a-zA-Z0-9]{32}:[a-zA-Z0-9]{50}`
Concordium Smart Contract addresses:
CAIP-10 Smart Contract address: namespace + ":" + chainId + ":" + index + "." + subindex
namespace: ccd
chainId: 32-char prefix from the hash of the genesis block
index: smallest decimal string representation of u64 integer
subindex: smallest decimal string representation of u64 integer
Smart Contract addresses can be validated with the following regular expression:
`ccd:[a-zA-Z0-9]{32}:[0-9]{1,20}[.][0-9]{1,20}`
Resolution Mechanics
Account and smart contract addresses are self-contained once the CAIP-2 chain identifier segment has been resolved (see the “Resolution Mechanics” section of the CAIP-2 Profile).
No further RPC or node round-trip is required to validate the identifier’s syntax; parsing the Base58btc address or the index/subindex pair is sufficient.
Whether the referenced account or contract actually exists on that network can be checked with the GetAccountInfo or GetInstanceInfo gRPC calls against a Concordium node (see Concordium gRPC).
Rationale
This CAIP-10 profile reuses the CAIP-2 genesis-hash-derived chain identifier as-is, so that CAIP-10 addresses stay consistent with the network identification scheme already defined for Concordium.
Smart contract addresses are included alongside account addresses because, like externally-owned accounts, Concordium smart contracts are independently addressable actors that can hold CCD balances and be the target of transactions.
Backwards Compatibility
N/A
Test Cases
Account Addresses
# Concordium mainnet Account
ccd:9dd9ca4d19e9393877d2c44b70f89acb:3fVAEHWRiKt9GU53PiXGLszLKFdpw2RYwLqYGwbzxd2qef3wvs
# Current Concordium testnet Account
ccd:4221332d34e1694168c2a0c0b3fd0f27:3SJtC6z8DstACLCA7mmJYvKV4pZcxuiRciWdZCkG1PFAbM7uq7
Smart Contract Addresses
# Concordium mainnet Smart Contract
ccd:9dd9ca4d19e9393877d2c44b70f89acb:10082.0
# Current Concordium testnet Smart Contract
ccd:4221332d34e1694168c2a0c0b3fd0f27:12802.0
Additional Considerations (*OPTIONAL)
N/A
References
- Concordium Developer Documentation - Concordium Developer Documentation
- Concordium gRPC - Interacting with a Concordium node: Description of the Concordium gRPC API.
-
Concordium Account Aliases - Introduction of Concordium Account Aliases in P3.
- CCD CAIP-2 - Details of the Concordium CAIP-2 Chain Identifier
- CAIP-2 - The Blockchain ID Specification
- CAIP-10 - The Account ID Specification
- Base58Check - Conversion between binary and Base58btc representation
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Concordium development team, "namespaces/ccd-caip10: Concordium - Account ID Specification [DRAFT]," Chain Agnostic Namespaces, ccd-caip10, September 2026 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/ccd-caip10.md