Skip to content

Commit a2bad07

Browse files
committed
feat(concepts): Clarify address types
1 parent bd75c85 commit a2bad07

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

source/concepts/cryptography.rst

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,27 @@ As part of the regular workflow of the protocol, signatures are **validated** us
6060
Address
6161
*******
6262

63-
|codename| public keys can be shared in a **shorter form** as 39-character addresses.
63+
|codename| public keys can be shared in a **shorter form** as **addresses**.
6464

65-
First, a 24-byte triplet is built, consisting of:
65+
First, a **24-byte** **raw address** is built, consisting of:
6666

6767
* A network-id byte.
6868
* A 160-bit (20 byte) hash of the account's public key.
6969
* A 3-byte checksum, to allow the quick recognition of mistyped addresses.
7070

71-
Then, the whole string is `Base32-encoded <https://en.wikipedia.org/wiki/Base32>`__ to produce the 39-character address.
71+
However, the raw address is inconvenient to use because it is a binary array, so it is typically `Base32-encoded <https://en.wikipedia.org/wiki/Base32>`__ into a **39-character** text string called an **encoded address**, or simply an **adress**.
72+
73+
Finally, for easier reading, hyphens can be added every 6 characters to create a **pretty address**.
74+
75+
Examples:
76+
77+
.. csv-table::
78+
:widths: 20 65 15
79+
:delim: ;
80+
81+
Raw address; ``0x78,0xD0,0x44,0xED,0xC3,0xDC,0x8B,0x86...``; 24 bytes
82+
Address; ``PDIEJ3OD3SFYNZCQUSEWKY4NRRZUI5LMJPSVLPQ``; 39 chars
83+
Pretty address; ``PDIEJ3-OD3SFY-NZCQUS-EWKY4N-RRZUI5-LMJPSV-LPQ``; 45 chars
7284

7385
It is possible to create an address without interacting with the blockchain. In fact, the blockchain only tracks addresses and public keys when they first appear in a transaction.
7486

0 commit comments

Comments
 (0)