Skip to content

Address

Monero 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 Monero address does not endanger your privacy. That's because in Monero transactions go to stealth addresses which are decoupled from your public address.

There are a few types of public addresses in Monero:

  • 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 Monero 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)

Monero 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 (src):

Index Size in bytes Description
0 1 identifies the network and address type; 18 - main chain; 53 - test 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 Monero specific Base58 format, resulting in a 95 chars long string. Example main address:

4AdUndXHHZ6cfufTMvppY6JwXNouMBzSkbLYfpAV5Usx3skxNgYeYTRj5UzqtReoS44qo9mtmXCqY45DJ852K5Jv2684Rge

Generating

Main address is derived from the root private key.

Reference