Skip to main content
Share Your Experience: Take the 2024 Developer Survey
3 votes

ELI5: is it true that Base58 doesn't prevent typo, but Base58check does, really because there is a checksum?

Yes. Every byte sequence corresponds to one Base58 string. Every byte sequence also corresponds to one Base58Check string, which contains a 4-byte redundancy, a checksum. And this 4-byte-code's only ...
MCCCS's user avatar
  • 10.2k
2 votes
Accepted

Probability of Generating a Bitcoin Address with Specific Starting and Ending Characters

base58check For addresses that use base58check, only the first character is a prefix, and each other character encodes one of 58 values. To generate an address that matches at least the first four and ...
Murch's user avatar
  • 75.8k
2 votes

How to convert xpub ypub and zpub in Ruby

I'm not sure about ruby, but here's what's happening in practice. Take any xpub: xpub6DBfkACRRWo6B9Fo31Ko6P7M92Yb3rdbuXb81Ls7aDCaZsMr1tyvZWHAHz1exRZuTBspafkPTynwoWL5o3i4WiJX4P3SyGQxNpxQLaUnB2c ...
m1xolyd1an's user avatar
  • 5,666
1 vote

Creating a P2PKH address

You accidentally converted to binary the original public key hash, not the result of prepending 00 (you can tell because it should start with 00000000). You also might not need to convert to binary at ...
Vojtěch Strnad's user avatar
1 vote
Accepted

How to use the base58 in c++

This solution is used by Bitcoin Core base58.h // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2015 The Bitcoin Core developers // Copyright (c) 2023 Loopite. #ifndef ...
Loopite's user avatar
  • 301
1 vote

Are bech32 and base58 the only address formats?

Yes. Base58 and bech32 are the only standardized address formats. However, there exist standard ScriptPubKeys (the "locking" Script in the output) for which no address format is defined.
Antoine Poinsot's user avatar
1 vote
Accepted

How to handle leading 0's (b58 1's) when base58check encoding

Iterate from the beginning until you reach a non-zero byte. Base58 encode the non-zero byte and the following, and add 1s before the base58 string you made for each initial one zero byte (0x00) you ...
MCCCS's user avatar
  • 10.2k
1 vote

Why does my implementation of hex to Base58check produce different results than the example?

Each hexadecimal character has four bits of information. Two hex characters contains eight bits of information, so they form a byte. For each byte in front of the address, a 1 should be put. Since ...
MCCCS's user avatar
  • 10.2k

Only top scored, non community-wiki answers of a minimum length are eligible