Keeta - Asset Type and Asset ID Specification
| Author | ["@sc4l3r", "@xescure"] |
|---|---|
| Discussions-To | https://github.com/ChainAgnostic/namespaces/pull/183 |
| Status | Draft |
| Type | Standard |
| Created | 2026-04-27 |
| Requires | CAIP-2, CAIP-19 |
Table of Contents
CAIP-19
For context, see the CAIP-19 specification.
Introduction
Keeta has a single, native, first-class token model: every transferable asset on a Keeta network – including the network’s own base token – is a token account with its own keeta_... address.
There is no separate token-contract registry, no ERC-20-style metadata contract, and no parallel address space for NFTs: an NFT on Keeta is simply a token account whose raw on-chain supply (before display decimals) is 1.
Because of this, every Keeta asset is fully identified by:
- The network identifier (defined by the Keeta CAIP-2 Profile).
- The token account’s address (in the form defined by the Keeta CAIP-10 Profile).
Specification
Semantics
The inputs are:
- A Keeta network identifier, as defined in the Keeta CAIP-2 Profile, identifying the network the asset lives on.
- An asset-namespace tag drawn from the fixed set (
token,nft). - The address of a token account, in the form defined by the Keeta CAIP-10 Profile.
The asset-namespace tag is not enforced by the protocol – Keeta itself does not distinguish “fungible” from “non-fungible” – and is purely an interoperability hint to consumers. A validator with access to the chain MAY confirm the supply; a mismatch means the tag is stale, not that the identifier is invalid.
asset_namespace |
Use | Equivalent in other namespaces |
|---|---|---|
token |
Any fungible token on a Keeta network, including the network’s base token. | eip155:1/erc20:0x..., solana:.../token:... |
nft |
A non-fungible token. Implementations SHOULD only use nft when the token’s raw supply is exactly 1. |
eip155:1/erc721:0x..., solana:.../nft:... |
The base token of a Keeta network is just another token account: it is referenced via the token asset namespace using the address returned by Account.generateBaseAddresses(networkId).baseToken.
Syntax
A Keeta CAIP-19 asset type identifier MUST take the form:
keeta:<network>/<asset_namespace>:<address>
Where:
keetais the namespace.<network>is a Keeta network identifier as defined by the Keeta CAIP-2 Profile.<asset_namespace>istokenornft(see the table above).<address>is the body of the token account’s address, without thekeeta_display prefix, as defined by the Keeta CAIP-10 Profile.
Resolution Mechanics
To validate a Keeta CAIP-19 identifier:
- Split on
/and:and verify the namespace iskeetaand the asset-namespace istokenornft. - Validate
<network>against the Keeta CAIP-2 Profile. - Validate
<address>as described in the Keeta CAIP-10 Profile; the type byte MUST be that of a token account and the checksum MUST verify. - For
nft, consumers SHOULD query a node on the indicated network to confirm the token’s raw on-chain supply is1(not its display amount after metadata decimals) before treating the identifier as a non-fungible asset; because supply may be mutable, a mismatch means the hint is stale, not that the identifier is invalid.
Rationale
Keeta uses a single, unified address space for every transferable asset, including the base token: there is no separate native-coin concept at the protocol level.
This profile reflects that by using token for every fungible asset and nft only as an interoperability hint for token accounts whose raw supply is 1, mirroring the approach taken by the Solana namespace, which has a similarly unified address space for fungible and non-fungible assets.
Backwards Compatibility
This is the first CAIP-19 specification for the keeta namespace, so there are no legacy identifiers to support.
Test Cases
Base token (KTA) of the Keeta main network, referenced by its on-chain token-account address:
keeta:21378/token:anqdilpazdekdu4acw65fj7smltcp26wbrildkqtszqvverljpwpezmd44ssg
Base token of the Keeta test network:
keeta:1413829460/token:anyiff4v34alvumupagmdyosydeq24lc4def5mrpmmyhx3j6vj2uucckeqn52
Any other fungible token uses the same form, with the address of the relevant token account; for example USDC on the main network:
keeta:21378/token:amnkge74xitii5dsobstldatv3irmyimujfjotftx7plaaaseam4bntb7wnna
NFT on the main network (raw supply 1):
keeta:21378/nft:amob7pxzhexqych4g56bmmtovdgwr6kljloyzkyb34k37jntj24doaqfbx4xk
Invalid:
# Non-token address used with a token asset namespace (storage account)
keeta:21378/token:aqltdal4rshtky5iehd765y3mdjkcmku5d4ulo5fgonzqrxulwepnogq33mle
# Display prefix included in the address
keeta:21378/token:keeta_anqdilpazdekdu4acw65fj7smltcp26wbrildkqtszqvverljpwpezmd44ssg
# Hex network identifier (see Keeta CAIP-2 Profile)
keeta:0x5382/token:anqdilpazdekdu4acw65fj7smltcp26wbrildkqtszqvverljpwpezmd44ssg
Additional Considerations
This profile defines asset types only.
The CAIP-19 token_id segment is not defined for Keeta, as a token account is itself a single asset.
Should the protocol introduce NFT collections – token accounts whose individual units are addressable – a future revision of this profile will specify the token_id segment to identify a unit within such a collection.
The Keeta main network is also registered in SLIP-0044 as coin type 8887 for use in HD-wallet derivation paths and similar SLIP-0044-indexed contexts.
This profile does not surface SLIP-0044 in CAIP-19 form, since on Keeta the base token has a first-class on-chain address that already serves as a canonical CAIP-19 reference, and only the main network has a SLIP-0044 entry.
References
- Keeta accounts - defines token accounts and the unified address space for fungible/non-fungible assets.
- Keeta SDK package -
Account.AccountKeyAlgorithm.TOKENandgenerateBaseAddresses(networkId)define how a token account’s address is constructed. - Keeta CAIP-2 Profile - the network portion of the identifier.
- Keeta CAIP-10 Profile - the address syntax reused for the
<address>segment.
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
["@sc4l3r", "@xescure"], "namespaces/keeta-caip19: Keeta - Asset Type and Asset ID Specification [DRAFT]," Chain Agnostic Namespaces, keeta-caip19, April 2026 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/keeta-caip19.md