diff --git a/src/RFC-0155_TariAddress.md b/src/RFC-0155_TariAddress.md index 9397600..46eb2ba 100644 --- a/src/RFC-0155_TariAddress.md +++ b/src/RFC-0155_TariAddress.md @@ -83,9 +83,28 @@ Utilized to compute the spend key of a UTXO and communicate with the node over t #### Features Indicates the supported features of the wallet, such as interactive and one-sided transactions. Currently, this is represented by an encoded u8, with each bit denoting a specific feature. +| **Feature** | **Emoji** | **Hex** | **Base58** | +|--------------------------------------|-----------|---------|------------| +| one_sided only | ๐Ÿ“Ÿ | 01 | 2 | +| interactive only | ๐ŸŒˆ | 02 | 3 | +| onesided + interactive | ๐ŸŒŠ | 03 | 4 | +| one_sided + payment_id | ๐Ÿ‹ | 05 | 6 | +| interactive + payment_id | ๐ŸŒ™ | 06 | 7 | +| onesided + interactive + payment_id | ๐Ÿค” | 07 | 8 | + + #### Network Specifies the Tari network the wallet operates on, e.g., Esmeralda, Nextnet, etc. +| **Network** | **Emoji** | **Hex** | **Base58** | +|-------------|-----------|---------|------------| +| Mainnet | ๐Ÿข | 00 | 1 | +| Stagenet | ๐Ÿ“Ÿ | 01 | 2 | +| Nextnet | ๐ŸŒˆ | 02 | 3 | +| Localnet | ๐ŸŒน | 10 | H | +| Igor | ๐Ÿ” | 24 | d | +| Esme | ๐Ÿ— | 26 | f | + #### Checksum The checksum is only included when encoding the address as bytes, hex, or emojis. For the checksum, the: [DammSum](https://github.com/cypherstack/dammsum) algorithm is employed, with `k = 8` and `m = 32`, resulting in an 8-bit checksum. @@ -96,18 +115,19 @@ Tari includes an optional encrypted bytes field with a max size of 256 bytes. Th ### Encoding #### Bytes When generating a byte representation of the wallet, the following format is used: -[0]: Network encoded as u8 -[1]: Raw u8 representing features -[2..33]: Public view key encoded as u8 -[35..65]: Public spend key encoded as u8 -[66..N]: Payment ID, optional field encoded as [u8] -[N]: DammSum checksum +- [0]: Network encoded as u8 +- [1]: Raw u8 representing features +- [2..33]: Public view key encoded as u8 +- [34..65]: Public spend key encoded as u8 +- [66-N]: (Optional) Payment ID, encoded as u8 +- [N+1]: DammSum checksum + For nodes lacking a distinct view key, where the view key and spend key are identical, their addresses can be encoded as follows: -[0]: Network encoded as u8 -[1]: Raw u8 representing features -[2..33]: Public spend key encoded as u8 -[34]: DammSum checksum +- [0]: Network encoded as u8 +- [1]: Raw u8 representing features +- [2..33]: Public spend key encoded as u8 +- [34]: DammSum checksum #### Hex Each byte in the byte representation is encoded as two hexadecimal characters. @@ -124,22 +144,22 @@ The list of chosen emojis is as follows: | | | | | | | | | | | | | | | | | |--|--|--|--|--|--|--|--|--|--|--|--|--|--|--|--| -|๐Ÿฆ‹|๐Ÿ“Ÿ|๐ŸŒˆ|๐ŸŒŠ|๐ŸŽฏ|๐Ÿ‹|๐ŸŒ™|๐Ÿค”|๐ŸŒ•|โญ|๐ŸŽ‹|๐ŸŒฐ|๐ŸŒด|๐ŸŒต|๐ŸŒฒ|๐ŸŒธ| -|๐ŸŒน|๐ŸŒป|๐ŸŒฝ|๐Ÿ€|๐Ÿ|๐Ÿ„|๐Ÿฅ‘|๐Ÿ†|๐Ÿ‡|๐Ÿˆ|๐Ÿ‰|๐ŸŠ|๐Ÿ‹|๐ŸŒ|๐Ÿ|๐ŸŽ| -|๐Ÿ|๐Ÿ‘|๐Ÿ’|๐Ÿ“|๐Ÿ”|๐Ÿ•|๐Ÿ—|๐Ÿš|๐Ÿž|๐ŸŸ|๐Ÿฅ|๐Ÿฃ|๐Ÿฆ|๐Ÿฉ|๐Ÿช|๐Ÿซ| -|๐Ÿฌ|๐Ÿญ|๐Ÿฏ|๐Ÿฅ|๐Ÿณ|๐Ÿฅ„|๐Ÿต|๐Ÿถ|๐Ÿท|๐Ÿธ|๐Ÿพ|๐Ÿบ|๐Ÿผ|๐ŸŽ€|๐ŸŽ|๐ŸŽ‚| -|๐ŸŽƒ|๐Ÿค–|๐ŸŽˆ|๐ŸŽ‰|๐ŸŽ’|๐ŸŽ“|๐ŸŽ |๐ŸŽก|๐ŸŽข|๐ŸŽฃ|๐ŸŽค|๐ŸŽฅ|๐ŸŽง|๐ŸŽจ|๐ŸŽฉ|๐ŸŽช| -|๐ŸŽฌ|๐ŸŽญ|๐ŸŽฎ|๐ŸŽฐ|๐ŸŽฑ|๐ŸŽฒ|๐ŸŽณ|๐ŸŽต|๐ŸŽท|๐ŸŽธ|๐ŸŽน|๐ŸŽบ|๐ŸŽป|๐ŸŽผ|๐ŸŽฝ|๐ŸŽพ| -|๐ŸŽฟ|๐Ÿ€|๐Ÿ|๐Ÿ†|๐Ÿˆ|โšฝ|๐Ÿ |๐Ÿฅ|๐Ÿฆ|๐Ÿญ|๐Ÿฐ|๐Ÿ€|๐Ÿ‰|๐ŸŠ|๐ŸŒ|๐Ÿ| -|๐Ÿฆ|๐Ÿ|๐Ÿ‘|๐Ÿ”|๐Ÿ™ˆ|๐Ÿ—|๐Ÿ˜|๐Ÿ™|๐Ÿš|๐Ÿ›|๐Ÿœ|๐Ÿ|๐Ÿž|๐Ÿข|๐Ÿฃ|๐Ÿจ| -|๐Ÿฆ€|๐Ÿช|๐Ÿฌ|๐Ÿญ|๐Ÿฎ|๐Ÿฏ|๐Ÿฐ|๐Ÿฆ†|๐Ÿฆ‚|๐Ÿด|๐Ÿต|๐Ÿถ|๐Ÿท|๐Ÿธ|๐Ÿบ|๐Ÿป| -|๐Ÿผ|๐Ÿฝ|๐Ÿพ|๐Ÿ‘€|๐Ÿ‘…|๐Ÿ‘‘|๐Ÿ‘’|๐Ÿงข|๐Ÿ’…|๐Ÿ‘•|๐Ÿ‘–|๐Ÿ‘—|๐Ÿ‘˜|๐Ÿ‘™|๐Ÿ’ƒ|๐Ÿ‘›| -|๐Ÿ‘ž|๐Ÿ‘Ÿ|๐Ÿ‘ |๐ŸฅŠ|๐Ÿ‘ข|๐Ÿ‘ฃ|๐Ÿคก|๐Ÿ‘ป|๐Ÿ‘ฝ|๐Ÿ‘พ|๐Ÿค |๐Ÿ‘ƒ|๐Ÿ’„|๐Ÿ’ˆ|๐Ÿ’‰|๐Ÿ’Š| -|๐Ÿ’‹|๐Ÿ‘‚|๐Ÿ’|๐Ÿ’Ž|๐Ÿ’|๐Ÿ’”|๐Ÿ”’|๐Ÿงฉ|๐Ÿ’ก|๐Ÿ’ฃ|๐Ÿ’ค|๐Ÿ’ฆ|๐Ÿ’จ|๐Ÿ’ฉ|โž•|๐Ÿ’ฏ| -|๐Ÿ’ฐ|๐Ÿ’ณ|๐Ÿ’ต|๐Ÿ’บ|๐Ÿ’ป|๐Ÿ’ผ|๐Ÿ“ˆ|๐Ÿ“œ|๐Ÿ“Œ|๐Ÿ“Ž|๐Ÿ“–|๐Ÿ“ฟ|๐Ÿ“ก|โฐ|๐Ÿ“ฑ|๐Ÿ“ท| -|๐Ÿ”‹|๐Ÿ”Œ|๐Ÿšฐ|๐Ÿ”‘|๐Ÿ””|๐Ÿ”ฅ|๐Ÿ”ฆ|๐Ÿ”ง|๐Ÿ”จ|๐Ÿ”ฉ|๐Ÿ”ช|๐Ÿ”ซ|๐Ÿ”ฌ|๐Ÿ”ญ|๐Ÿ”ฎ|๐Ÿ”ฑ| -|๐Ÿ—ฝ|๐Ÿ˜‚|๐Ÿ˜‡|๐Ÿ˜ˆ|๐Ÿค‘|๐Ÿ˜|๐Ÿ˜Ž|๐Ÿ˜ฑ|๐Ÿ˜ท|๐Ÿคข|๐Ÿ‘|๐Ÿ‘ถ|๐Ÿš€|๐Ÿš|๐Ÿš‚|๐Ÿšš| -|๐Ÿš‘|๐Ÿš’|๐Ÿš“|๐Ÿ›ต|๐Ÿš—|๐Ÿšœ|๐Ÿšข|๐Ÿšฆ|๐Ÿšง|๐Ÿšจ|๐Ÿšช|๐Ÿšซ|๐Ÿšฒ|๐Ÿšฝ|๐Ÿšฟ|๐Ÿงฒ| +| ๐Ÿข | ๐Ÿ“Ÿ | ๐ŸŒˆ | ๐ŸŒŠ | ๐ŸŽฏ | ๐Ÿ‹ | ๐ŸŒ™ | ๐Ÿค” | ๐ŸŒ• | โญ | ๐ŸŽ‹ | ๐ŸŒฐ | ๐ŸŒด | ๐ŸŒต | ๐ŸŒฒ | ๐ŸŒธ | +| ๐ŸŒน | ๐ŸŒป | ๐ŸŒฝ | ๐Ÿ€ | ๐Ÿ | ๐Ÿ„ | ๐Ÿฅ‘ | ๐Ÿ† | ๐Ÿ‡ | ๐Ÿˆ | ๐Ÿ‰ | ๐ŸŠ | ๐Ÿ‹ | ๐ŸŒ | ๐Ÿ | ๐ŸŽ | +| ๐Ÿ | ๐Ÿ‘ | ๐Ÿ’ | ๐Ÿ“ | ๐Ÿ” | ๐Ÿ• | ๐Ÿ— | ๐Ÿš | ๐Ÿž | ๐ŸŸ | ๐Ÿฅ | ๐Ÿฃ | ๐Ÿฆ | ๐Ÿฉ | ๐Ÿช | ๐Ÿซ | +| ๐Ÿฌ | ๐Ÿญ | ๐Ÿฏ | ๐Ÿฅ | ๐Ÿณ | ๐Ÿฅ„ | ๐Ÿต | ๐Ÿถ | ๐Ÿท | ๐Ÿธ | ๐Ÿพ | ๐Ÿบ | ๐Ÿผ | ๐ŸŽ€ | ๐ŸŽ | ๐ŸŽ‚ | +| ๐ŸŽƒ | ๐Ÿค– | ๐ŸŽˆ | ๐ŸŽ‰ | ๐ŸŽ’ | ๐ŸŽ“ | ๐ŸŽ  | ๐ŸŽก | ๐ŸŽข | ๐ŸŽฃ | ๐ŸŽค | ๐ŸŽฅ | ๐ŸŽง | ๐ŸŽจ | ๐ŸŽฉ | ๐ŸŽช | +| ๐ŸŽฌ | ๐ŸŽญ | ๐ŸŽฎ | ๐ŸŽฐ | ๐ŸŽฑ | ๐ŸŽฒ | ๐ŸŽณ | ๐ŸŽต | ๐ŸŽท | ๐ŸŽธ | ๐ŸŽน | ๐ŸŽบ | ๐ŸŽป | ๐ŸŽผ | ๐ŸŽฝ | ๐ŸŽพ | +| ๐ŸŽฟ | ๐Ÿ€ | ๐Ÿ | ๐Ÿ† | ๐Ÿˆ | โšฝ | ๐Ÿ  | ๐Ÿฅ | ๐Ÿฆ | ๐Ÿญ | ๐Ÿฐ | ๐Ÿ€ | ๐Ÿ‰ | ๐ŸŠ | ๐ŸŒ | ๐Ÿ | +| ๐Ÿฆ | ๐Ÿ | ๐Ÿ‘ | ๐Ÿ” | ๐Ÿ™ˆ | ๐Ÿ— | ๐Ÿ˜ | ๐Ÿ™ | ๐Ÿš | ๐Ÿ› | ๐Ÿœ | ๐Ÿ | ๐Ÿž | ๐Ÿฆ‹ | ๐Ÿฃ | ๐Ÿจ | +| ๐Ÿฆ€ | ๐Ÿช | ๐Ÿฌ | ๐Ÿญ | ๐Ÿฎ | ๐Ÿฏ | ๐Ÿฐ | ๐Ÿฆ† | ๐Ÿฆ‚ | ๐Ÿด | ๐Ÿต | ๐Ÿถ | ๐Ÿท | ๐Ÿธ | ๐Ÿบ | ๐Ÿป | +| ๐Ÿผ | ๐Ÿฝ | ๐Ÿพ | ๐Ÿ‘€ | ๐Ÿ‘… | ๐Ÿ‘‘ | ๐Ÿ‘’ | ๐Ÿงข | ๐Ÿ’… | ๐Ÿ‘• | ๐Ÿ‘– | ๐Ÿ‘— | ๐Ÿ‘˜ | ๐Ÿ‘™ | ๐Ÿ’ƒ | ๐Ÿ‘› | +| ๐Ÿ‘ž | ๐Ÿ‘Ÿ | ๐Ÿ‘  | ๐ŸฅŠ | ๐Ÿ‘ข | ๐Ÿ‘ฃ | ๐Ÿคก | ๐Ÿ‘ป | ๐Ÿ‘ฝ | ๐Ÿ‘พ | ๐Ÿค  | ๐Ÿ‘ƒ | ๐Ÿ’„ | ๐Ÿ’ˆ | ๐Ÿ’‰ | ๐Ÿ’Š | +| ๐Ÿ’‹ | ๐Ÿ‘‚ | ๐Ÿ’ | ๐Ÿ’Ž | ๐Ÿ’ | ๐Ÿ’” | ๐Ÿ”’ | ๐Ÿงฉ | ๐Ÿ’ก | ๐Ÿ’ฃ | ๐Ÿ’ค | ๐Ÿ’ฆ | ๐Ÿ’จ | ๐Ÿ’ฉ | โž• | ๐Ÿ’ฏ | +| ๐Ÿ’ฐ | ๐Ÿ’ณ | ๐Ÿ’ต | ๐Ÿ’บ | ๐Ÿ’ป | ๐Ÿ’ผ | ๐Ÿ“ˆ | ๐Ÿ“œ | ๐Ÿ“Œ | ๐Ÿ“Ž | ๐Ÿ“– | ๐Ÿ“ฟ | ๐Ÿ“ก | โฐ | ๐Ÿ“ฑ | ๐Ÿ“ท | +| ๐Ÿ”‹ | ๐Ÿ”Œ | ๐Ÿšฐ | ๐Ÿ”‘ | ๐Ÿ”” | ๐Ÿ”ฅ | ๐Ÿ”ฆ | ๐Ÿ”ง | ๐Ÿ”จ | ๐Ÿ”ฉ | ๐Ÿ”ช | ๐Ÿ”ซ | ๐Ÿ”ฌ | ๐Ÿ”ญ | ๐Ÿ”ฎ | ๐Ÿ”ฑ | +| ๐Ÿ—ฝ | ๐Ÿ˜‚ | ๐Ÿ˜‡ | ๐Ÿ˜ˆ | ๐Ÿค‘ | ๐Ÿ˜ | ๐Ÿ˜Ž | ๐Ÿ˜ฑ | ๐Ÿ˜ท | ๐Ÿคข | ๐Ÿ‘ | ๐Ÿ‘ถ | ๐Ÿš€ | ๐Ÿš | ๐Ÿš‚ | ๐Ÿšš | +| ๐Ÿš‘ | ๐Ÿš’ | ๐Ÿš“ | ๐Ÿ›ต | ๐Ÿš— | ๐Ÿšœ | ๐Ÿšข | ๐Ÿšฆ | ๐Ÿšง | ๐Ÿšจ | ๐Ÿšช | ๐Ÿšซ | ๐Ÿšฒ | ๐Ÿšฝ | ๐Ÿšฟ | ๐Ÿงฒ | These emojis are selected to ensure: