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
| Network | Prefix |
|---|---|
| Mainnet | kaspa: |
| Testnet | kaspatest: |
| Simnet | kaspasim: |
| Devnet | kaspadev: |
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
| Version | Name | Payload | Meaning |
|---|---|---|---|
| 0 | PubKey | 32 bytes | Schnorr x-only public key (the default) |
| 1 | PubKeyECDSA | 33 bytes | Compressed ECDSA public key |
| 8 | ScriptHash | 32 bytes | blake2b-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