Kaspa Namespace - Chains

Author Luke Dunshea
Discussions-To https://kas-smiths.org/t/kaspa-x402-pay-per-request-kas-payments-for-apis-and-ai-agents/15
Status Draft
Type Standard
Created 2026-07-27
Requires CAIP-2

CAIP-2

For context, see the CAIP-2 specification.

Rationale

In CAIP-2 a general blockchain identification scheme is defined. This is the implementation of CAIP-2 for Kaspa. Blockchains in the kaspa namespace are identified by the network names defined by the Rusty Kaspa NetworkId implementation. The Rusty Kaspa full-node implementation exposes the same identifier through RPC with a kaspa- prefix.

Kaspa has its own GHOSTDAG consensus, node RPC, and native network identification. It does not use the Bitcoin-family resolution method defined by the BIP-122 Namespace.

Syntax

The namespace kaspa refers to the Kaspa open-source blockchain platform.

Reference Definition

The initial references are:

Network Native NetworkId RPC networkName CAIP-2 identifier
Mainnet mainnet kaspa-mainnet kaspa:mainnet
Testnet 10 testnet-10 kaspa-testnet-10 kaspa:testnet-10

Only the references listed in this profile are conformant. Local simnet and devnet names are not included because they do not identify globally unique public networks. A future public network can be added with a distinct reference and genesis block. Kaspa has no central authority that assigns public network identifiers. Future references are registered through updates to this CASA profile and should be supported by a distinct genesis block, implementation evidence, and public Kaspa community review. The change controllers for this profile are Luke Dunshea (@elldeeone) and representatives of the kaspanet GitHub organization.

The registered genesis hashes are:

Network Genesis block hash
Mainnet 58c2d4199e21f910d1571d114969cecef48f09f934d42ccb6a281a15868f2999
Testnet 10 f896a3034873be1739fc4359236899fd3d65d2bc94f9780df0d0da3eb1cc4370

Resolution Method

To resolve a blockchain reference for the Kaspa namespace, call getBlockDagInfo through a supported Kaspa node RPC transport. Clients can use the Rusty Kaspa Resolver to discover a community-operated public node or connect directly to a self-hosted node. Endpoint selection is operational and does not form part of the CAIP-2 identifier.

Example Request

const rpc = new RpcClient({
  networkId: "testnet-10",
  encoding: Encoding.Borsh,
  resolver: new Resolver(),
});

await rpc.connect();
const response = await rpc.getBlockDagInfo();

Example Response (partial)

{
  "network": "testnet-10"
}

The returned network value is a native NetworkId and maps directly to the corresponding entry in the reference table. For example, testnet-10 resolves to kaspa:testnet-10.

The network identifier is self-reported by the connected node. Applications requiring authenticated network identification SHOULD use a trusted or self-hosted node. The genesis hashes above document the registered networks; they are not returned by getBlockDagInfo, and this RPC call does not independently prove chain ancestry.

Backwards Compatibility

Not applicable.

Test Cases

This is a list of manually composed examples:

# Kaspa mainnet
kaspa:mainnet

# Kaspa public testnet 10
kaspa:testnet-10

References

Copyright and related rights waived via CC0.

Citation

Please cite this document as:

Luke Dunshea, "namespaces/kaspa-caip2: Kaspa Namespace - Chains [DRAFT]," Chain Agnostic Namespaces, kaspa-caip2, July 2026 / . [Online serial]. Available: https://github.com/ChainAgnostic/namespaces/kaspa-caip2.md