What is an xpub?

nopara73
nopara73
Aug 28 · 3 min read
Image for post
Image for post

You know that your Bitcoin Address is what you share to the world to get paid.

Image for post
Image for post

You probably know that your wallet software uses a private key to spend the money you received on this address.

Image for post
Image for post

The keys are not stored on the network and they can be generated without access to the Internet.

From the private key, we use a one-way cryptographic function, to generate a public key.

Image for post
Image for post

There are two Bitcoin networks:

  • TestNet is a Bitcoin network for development purposes. Bitcoins on this network are worth nothing.
  • MainNet is the Bitcoin network everybody uses.

You can easily get your bitcoin address from your public key and the network on which this address should be used.

Image for post
Image for post

Like the good ol’ days

You may be wondering why generate several keys? The main reason is privacy. Since you can see the balance of all addresses, it is better to use a new address for each transaction.
The problem with this is, all backups of your wallet will become outdated when you generate a new key.

Deterministic Wallets (BIP 32)

A “Deterministic” wallet would fix our backup problem. With such a wallet, you would have to save only the seed.

From this seed, you can generate the same series of private keys over and over. This is what the “Deterministic” stands for. From a master key, I can generate new keys.

Image for post
Image for post

What is an xpub?

The trick is that you can “neuter” your master key, then you have a public (without private key) version of the master key. From this neutered version, a third party can generate your public keys without knowing your private keys.

Your neutered master private key is your master public key, also called extended public key or xpub.

Image for post
Image for post
https://twitter.com/chris_belcher_/status/1299281870757257218

This article was mostly a put together from an open source book I co-authored with Nicolas Dorier a couple of years ago: Programming The Blockchain in C#.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store