Klever Namespace - Assets
| Author | Nicollas Gabriel da Silva |
|---|---|
| Discussions-To | https://forum.klever.org/, https://github.com/klever-io/klever-go/discussions |
| Status | Draft |
| Type | Standard |
| Created | 2026-05-13 |
| Requires | CAIP-2, CAIP-19 |
Table of Contents
CAIP-19
For context, see the CAIP-19 specification.
Rationale
Klever ships a native multi-asset model called KDA (Klever Digital Asset)
that supports fungible tokens, non-fungible tokens (NFTs), and semi-fungible
tokens (SFTs) as first-class on-chain primitives — assets are not encoded as
smart-contract balances. The asset type enum is defined in
data/transaction/contracts.pb.go (Fungible = 0,
NonFungible = 1, SemiFungible = 2).
The single asset namespace kda covers fungible, NFT, and SFT tokens. The
asset type (fungible / NFT / SFT) is metadata returned by the public asset
API and is not encoded in the CAIP-19 identifier itself.
Syntax
caip19 asset id: chainId + "/" + assetNamespace + ":" + assetReference [ + "/" + tokenId ]
namespace: klv
chainId: 108 (Mainnet), 109 (Testnet), or 100001 (Devnet) — see CAIP-2
assetNamespace: kda (covers fungible, NFT, and SFT)
assetReference: the on-chain asset id, e.g. KLV, KFI, DVK-34ZH, DVKNFT-1SW5
tokenId: (optional) 1-indexed integer instance within an NFT/SFT collection
Klever asset IDs come in two shapes:
- Protocol assets — short uppercase tickers minted at genesis (
KLV,KFI). - User-minted assets —
TICKER-NONCEform, whereNONCEis a 4-char base36 ([0-9A-Z]{4}) suffix the chain assigns at creation to ensure uniqueness across issuers using the same ticker (DVK-34ZH,WBTC-3FB5,DVKNFT-1SW5). The suffix is generated deterministically byCreateNewAssetIdentifierincore/process/kda/assetHelper.goby hashing the caller address, nonce, and ticker, then base36-encoding the first 4 chars (see alsoTickerSeparator = "-"andTickerRandomSequenceLength = 4incore/process/kda/kdautils/utils.go).
Both shapes share the kda asset namespace.
Test Cases
Live mainnet asset ids from https://api.mainnet.klever.org/v1.0/assets/list:
# Native Klever token (KLV) on Mainnet
klv:108/kda:KLV
# Native governance token (KFI) on Mainnet
klv:108/kda:KFI
# User-minted fungible asset on Mainnet
klv:108/kda:DVK-34ZH
klv:108/kda:WBTC-3FB5
# NFT collection on Mainnet
klv:108/kda:DVKNFT-1SW5
# Specific NFT instance #1 within the DVKNFT-1SW5 collection
klv:108/kda:DVKNFT-1SW5/1
# Testnet KLV
klv:109/kda:KLV
References
- Klever asset metadata endpoint — REST endpoint that returns full KDA metadata (type, precision, max supply, issuer, etc.).
- Klever Connect SDK — TypeScript helpers for resolving asset metadata.
- klever-go node source — Reference implementation of the KDA asset creation and identifier-generation logic.
- CAIP-19 — The chain-agnostic asset ID specification.
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Nicollas Gabriel da Silva, "namespaces/klv-caip19: Klever Namespace - Assets [DRAFT]," Chain Agnostic Namespaces, klv-caip19, May 2026 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/klv-caip19.md