Updated: 7/28/2026

Addresses

Kaspa address format - prefixes, version bytes, payloads, and encoding.

A Kaspa address encodes three things: a network prefix, a version byte, and a payload (a public key or script hash). Example:

kaspa:qz0k2...
β””β”€β”¬β”€β”˜ β””β”€β”€β”¬β”€β”€β”˜
prefix   base32-encoded version + payload + checksum

Network prefixes

NetworkPrefix
Mainnetkaspa:
Testnetkaspatest:
Simnetkaspasim:
Devnetkaspadev:

The prefix is part of the address (including the :) and is covered by the checksum - a mainnet address can’t be accidentally used on testnet.

Version bytes & payloads

VersionNamePayloadMeaning
0PubKey32 bytesSchnorr x-only public key (the default)
1PubKeyECDSA33 bytesCompressed ECDSA public key
8ScriptHash32 bytesblake2b-256 hash of a script (P2SH)

When a wallet sends to an address, it decodes it back into a script_public_key for the transaction output: version 0 becomes a pay-to-pubkey script (OpData32 <pubkey> OpCheckSig-style), version 8 becomes the P2SH template.

Encoding

The version + payload are encoded in cashaddr-style base32 with a polymod checksum computed over the prefix and data (the same family of encoding as Bitcoin Cash addresses, not base58). There is no case-mixing: addresses are lowercase.

HD derivation

Kaspa’s registered BIP-44 coin type is 111111, so the standard derivation path for the first receive address is:

m/44'/111111'/0'/0/0