Skip to content

Address

A Loki public address is what you publish to get paid.

An address can be generated offline and for free. It boils down to generating a large random number representing your private spending key.

Publishing your Loki address does not endanger your privacy. That's because in Loki transactions go to stealth addresses which are decoupled from your public address.

There are a few types of public addresses in Loki:

  • Main address - basic type of an address, also refered to as raw address
  • Subaddress - what you should be using by default
  • Integrated address - relevant for exchanges, merchants, and other businesses accepting Loki in a fully automated way

Main address

Historicaly, raw address was the only available option. For that reason it is the most widely adopted and supported address type.

Its strength is simplicity. However, these days users should prefer receiving to subaddresses instead.

Technically, raw address is also a basis for creating subaddresses and integrated addresses.

Raw address is still useful for:

  • accepting block reward in a solo-mining scenario as other addresses are not supported
  • accepting from senders who batch payouts (like mining pools); in this scenario the sender is paying multiple parties using a single transaction; such transaction has multiple outputs; subaddresses do not work in this scenario
  • accepting from senders who use legacy wallets (can't send to subaddress)

Loki raw address is composed of two public keys:

  • public spend key
  • public view key

It also contains a checksum and a "network byte" which actually identifies both the network and the address type.

Data structure

Index Size in bytes Description
0 1 identifies the network and address type; 114 - main chain; 156 - test chain; 24 - stagenet chain
1 32 public spend key
33 32 public view key
65 4 checksum (Keccak-f[1600] hash of the previous 65 bytes, trimmed to first 4 bytes)

It totals to 69 bytes. The bytes are then encoded (src) in Loki specific Base58 format, resulting in a 95 chars long string. Example main address:

LAXk6eS3Ng98QxDTdC47eNdfCXttJycKraXxfsw9cMVngGUqP3kiSE6cwXoApU6gjzSXVX1ASAPAi1MSXA935XUs1MWEcv9

See the source code.

Generating

Main address is derived from the root private key.

Reference