Hot answers tagged

8

The extended public key contains just a bit more information than the public key and chaincode, but the public key and chaincode are all that matter for key derivation. The rest is just metadata about the keys for wallets and people. The version bytes distinguish between xpub, xpriv, and other types of keys. The fingerprint identifies the parent so that a ...


6

It does not have one. Bitcoin Core uses hardened derivation, so there is no way to compute the addresses it will use externally. Support for that will likely be added in upcoming versions, but likely won't be the default (there are security risks when using non-hardened derivation).


5

An extended public or private key is always 78 bytes of data. When Base58 Check encoded, this results in a string that is up to 112 characters in size. The format of the data is defined in BIP 32.


5

bpub appears to be the extended private key prefix for the Blockcypher testnet. Bitcoin addresses and private keys usually have a prefix to help differentiate the network/type of key. The original xpub notation comes from BIP32, meaning extended public key. This expanded into ypub with BIP49, and finally zpub with BIP49+ (used in BIP84). Various coins can ...


5

The balance checks are cut short based on a gap limit. A gap limit is usually set to 20, and is defined as a consecutive block of addresses with no transactions. Since HD wallets only give out a new address on explicit request, or automatically when the previously issued address has been used, it is assumed that someone will not leave a block of 20 ...


4

If you are comfortable with using the command line then libbitcoin-explorer is a great utility for converting your bitcoin HD keys. It even works completely offline. Once you have bx installed, you can run the hd-to-public command like so: $ bx hd-to-public ...


4

The electrum public key xpub661MyMwAqRbcG8Zah6TcX3QpP5yJApaXcyLK8CJcZkuYjczivsHxVL5qm9cw8BYLYehgFeddK5WrxhntpcvqJKTVg96dUVL9P7hZ7Kcvqvd is a BIP32 extended public key. This can be used to derive child addresses. The Bitcoin-Core public key 037acd3408dfb612a69204c5f5bafe2a326646398cdd16c85fedd65a4e96a28278 is a hex representation of the compressed form of a ...


3

This will be mostly possible in the upcoming Bitcoin Core 0.18 release. First you need to understand that the sequence of such paired multisig addresses (with public keys generated from 2 xpubs in lockstep) can be described in the new descriptor language. The syntax is sh(multi(2,XPUB/*,XPUB/*)). The sh indicates P2SH embedding, multi refers to multisig, ...


3

I believe 0x8000002C is 128 as an integer ... No, it isn't. First of all, it already is an integer, just represented in hexadecimal. In decimal it is 2147483692. How did you get 128? how does this equate to 44' however? 44' means that hardened keys should be used. The distinguisher for whether a key a given index is hardened is that the index is greater ...


3

You cannot. Bitcoin Core does not allow you to import master keys nor can you export extended public keys. BItcoin Core does not use extended public keys since it uses hardened derivation which does not use extended public keys.


3

The only way to know which signers signed is to verify the signatures against the public keys. Each signature will only verify with one of the pubkeys.


3

No, the xpub is not published anywhere. Only individual public keys are published and those are permanently stored in the blockchain. There is also no way for someone to figure out the xpub and any related keys given just those public keys.


2

It is currently not possible to import a master private key into Bitcoin Core.


2

XPUB refers to an extended public key, and because it is only a public key, you have not compromised your private keys. Thus it is safe to continue using, yes. You have, on the other hand, compromised your privacy, as with that xpub Trezor support can derive all your addresses and know they are all yours. But it's likely they just want to look to see if you ...


2

It's not possible in bitcoin core right now. You can use electrum and import your xpub as a watch-only wallet.


2

it seems like the process to calculate a checksum for an extended key is to decode the base58 string to data, If raw_xpub = version + depth + fingerprint + child + chain + DATA than to make the checksum you need to do doublehash of xpriv/xpub (sha256), in python: hashed_xpub = hashlib.sha256(raw_xpub).digest() hashed_xpub = hashlib.sha256(hashed_xpub)....


2

It all depends on the wallet. There is no rule saying they should even accept these strings or know what they correspond to and there is no consensus among wallets. Wallet A could accept zpub and know the desired path and script type while wallet B may accept the same zpub, ignore its version byte and use the default derivation path and a completely ...


1

You are not deriving hardened child keys. You cannot derive hardened keys from an xpub. Just because the xpub itself is hardened does not mean that its children are.


1

There are different explorers that support xpub that will show history as well as balance blockonomics blockpath smartbit


1

The easiest solution would be to use your Ledger via Electrum - it supports hardware wallets, will let you set the derivation path to match your address type, and has no limits on the history displayed.


1

Addresses derived by an HD wallet are intentionally not publicly linkable to one-another (that would be obviously terrible for privacy). Your wallet software will know the addresses are related (ie, it derived them all from the same seed), but a casual observer will not. Accordingly, when you pay some bitcoin to a child address, there is no associated ...


1

A multi-sig address is a hash of a script that combines multiple separate keys. In other words the purpose of it is to require multiple signatures from multiple keys that are stored (and usually generated) independently. For that reason it can not be generated from a single extended public key (xpub). What you can do, is to have multiple extended keys, and ...


1

There is https://iancoleman.io/bip39/ Enter your xpub into the BIP32 Root Key box and in the BIP141 tab select the derivation path and address type.


1

You can't do this with bitcoin core since it uses hardened derivation so you can't derive addresses using the extended public key. You should use electrum for this instead. An electrum watch-only wallet can mirror the addresses of a an electrum seeded wallet. So just create an electrum wallet on your desktop as normal and then grab the master public key aka ...


1

I actually discovered the answer: The answer is described on Reddit: https://www.reddit.com/r/ledgerwallet/comments/7d39pu/legacy_to_segwit_wallet_transfer_nightmare/ But if that answer would ever get lost, a summary: Apparently segwit xpub addresses are not a good marriage (yet). The Mycelium wallet imports the xpub address which is generated by the ...


1

No, it is not possible. BIP 32 uses a combination of a hash function and Elliptic Curve Point Multiplication in order to derive the child keys (both public and private). Since both hashing and EC point multiplication are one way functions, you cannot find the inputs to those functions given just the outputs (i.e. child public or private keys). Thus you ...


1

It's not possible access funds in SegWit addresses (actually UTXOs) as if they were in legacy addresses. A SegWit address and a legacy address with the same public key map to different addresses, hence they don't share the same funds.


1

After looking into the source code for the Electrum Wallet a bit further I was able to come up with a working implementation in JavaScript. The problem I described in my question was that the long_user_id is 32 bytes while you only need 4 bytes to derive a child key. It turns out that the third xpub is actually not a child of the hard-coded signing xpub, ...


1

You can generate new extended public keys on http://bip32.org/ You can generate them for testnet or mainnet. Just set the network combo box in the upper right to the network you want. ADVISO: Please don't ever use websites to generate key material. Suitable only for throw-away addresses for testing only.


1

You can do that, but each HD seed needs to be inside its own wallet file which is loaded by the server. Running bitcoind with multiple -wallet arguments will achieve what you are aiming for. Currently it is not supported to dynamically load and unload wallets at runtime, but support for that is being added and will be available in a future release.


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