Haneul Namespace - Chains
| Author | Geunhwa Jeong |
|---|---|
| Discussions-To | https://github.com/ChainAgnostic/namespaces/pull/168 |
| Status | Draft |
| Type | Informational |
| Created | 2026-01-19 |
| Updated | 2026-02-11 |
Table of Contents
CAIP-2
For context, see the CAIP-2 specification.
Introduction
The Haneul namespace in CAIP-2 uses human-readable chain identifiers — such as mainnet, testnet, and devnet — to identify specific Haneul networks. These identifiers are stable, concise, and easy to communicate, and can be resolved to a unique genesis checkpoint digest through a supported Haneul RPC interface.
This design provides both developer ergonomics and cryptographic assurance, allowing developers to work with simple names while still supporting verifiable chain identification.
Specification
Semantics
A valid CAIP-2 identifier in the Haneul namespace takes the form:
haneul:<network>
Where <network> is one of the following reserved, stable identifiers:
mainnettestnetdevnet
Syntax
Regular Expression
^haneul:(mainnet|testnet|devnet)$
Only these exact network identifiers are currently supported. Network names are lowercase ASCII strings with a maximum length of 7 characters. The resolved chain identifier returned by RPC is 4 bytes (8 hex characters), derived from the first 4 bytes of the 32-byte Blake2b-256 genesis checkpoint digest.
Example
haneul:testnet
Governance
New network identifiers and chain resets are decided by Haneul Labs. Adding a new network name requires a protocol-level code change and validator coordination. Resets of testnet and devnet may occur during protocol upgrades or development cycles; mainnet is not expected to be reset under normal circumstances.
Resolution Mechanics
To resolve a CAIP-2 haneul:<network> identifier into a unique chain identifier, clients typically query a trusted full node associated with the specified network. While the haneul_getChainIdentifier JSON-RPC method is commonly used for this purpose, resolution is not limited to JSON-RPC. Other node interfaces, such as GraphQL, may also support retrieving identifiers pertinent to locating records, such as a genesis checkpoint digest unique to each chain.
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "haneul_getChainIdentifier",
"params": []
}
Sample response (for testnet):
{
"jsonrpc": "2.0",
"id": 1,
"result": "afd5afb7"
}
The response returns the first four bytes of the genesis checkpoint digest for the network.
Rationale
This approach allows developers to use intuitive, readable CAIP-2 identifiers (e.g., haneul:testnet) while still achieving unambiguous and verifiable identification of the underlying chain through the genesis checkpoint digest.
The separation of stable identifiers (e.g., haneul:testnet) from the unambiguous chain identifier (e.g., the identifier returned by haneul_getChainIdentifier) is particularly important because:
testnetanddevnetmay be reset by Haneul maintainers, resulting in a new genesis state. A reset is a complete reinitialization — all on-chain state, including balances, objects, and smart contract data, is wiped and a new genesis checkpoint is produced. Only the stable network name (e.g.,testnet) persists across resets.- When this happens, the genesis checkpoint digest changes, meaning the underlying chain identifier is no longer the same.
- If clients depended directly on the digest as the CAIP-2 identifier, each reset would break compatibility or require external coordination.
- By resolving the digest dynamically via RPC, clients can ensure they’re talking to the correct chain, without needing to change the CAIP-2 identifier they rely on.
This pattern balances human readability, forward compatibility, and security.
Backwards Compatibility
There are no legacy identifiers or alternate forms for Haneul chains.
Test Cases
Below are manually composed examples:
Haneul Testnet
- CAIP-2 Chain ID:
haneul:testnet - Resolved Chain Identifier:
afd5afb7
References
- Haneul GitHub — Official GitHub repository for the Haneul blockchain.
- Haneul TypeScript SDK — Official TypeScript SDK for Haneul.
- CAIP-2 — Chain ID Specification.
Copyright
Copyright and related rights waived via CC0.
Citation
Please cite this document as:
Geunhwa Jeong, "namespaces/haneul-caip2: Haneul Namespace - Chains [DRAFT]," Chain Agnostic Namespaces, haneul-caip2, January 2026 / February 2026. [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/haneul-caip2.md