3

Is it identical to bitcoin? I know ripple uses a different set of characters, but the same checksum.

5

Monero has its own variant of Base58. In Monero the Base58 encoding is performed in 8-byte blocks, except the last block which is the remaining (8 or less) bytes .

The 8-byte block converts to 11 or less Base58 characters. If the block converted to less then 11 characters, the output is padded with "1"s (0 in Base58). The final block is padded as well to whatever would be the maximum size of this number of bytes encoded in Base58.

The advantage of Monero implementation is that output is of a fixed size which is not the case with plain Base58. The disadvantage is that default libraries won't work.

The alphabet for the variant of Base58 is

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

For details, see https://github.com/monero-project/monero/blob/master/src/common/base58.cpp

  • How would I compute a checksum? I have used the block deciding to get it to it's constituent sha256 encoded hash and the 4 bytes appended to the end. But unsure how I can do a checksum calculation on any of this? – user1561108 Mar 12 '18 at 22:29
  • Ah I think I see it in the decode_addr function. – user1561108 Mar 12 '18 at 22:32

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.