Learn about bitcoin

Bitcoin addresses and how to use them

What address type should you use to send and receive Bitcoin?

SatoshiLabs
Trezor Blog
Published in
10 min readNov 24, 2020

--

The text “Bitcoin addresses and how to use them”, with a magnifying glass in the background.

Bitcoin has evolved through network upgrades known as soft forks, bringing new services but also resulting in several address types in use at the same time, to preserve compatibility with older versions of the Bitcoin software.

While Bitcoin address formats have changed quite a lot it really isn’t something the average person needs to worry about. That said, knowing your Taproot from your SegWit will help you make the most of your hardware wallet and save on fees along the way.

Contents

Can bitcoin be sent to any address?

The different types of Bitcoin address are mostly cross-compatible, meaning you can send from any one type to another. If you encounter a problem when sending to a certain type of address, it is probably your wallet client that is the problem, or an issue with the service you are using . Try updating or upgrading to a wallet that supports the latest types of address described in the next section.

In general, the wallet client you are using should manage addresses for you, and should never let you send to an invalid address. Support for third-party wallet clients can be inconsistent, however. The free Trezor Suite app will protect you from sending to an invalid address, supports all common address types, and makes sure you do not overpay in fees — a common issue in other popular wallets, especially during busy network periods.

What do the different types of bitcoin address look like

To be comfortable with sending and receiving Bitcoin, you need to know two things: how to identify a valid address, and what address type to use.

Taproot
In November 2021, a major upgrade known as Taproot was introduced to Bitcoin. This brought another new address format into play: P2TR, pay-to-Taproot. Taproot addresses allow for more efficient transactions with lower fees and improved privacy as adoption increases. Taproot addresses begin with the characters bc1p. Taproot is technically an upgraded version of Segwit, and its addresses are encoded using a modified version of bech32 known as bech32m.

A Taproot Bech32m address looks like this:

bc1p8denc9m4sqe9hluasrvxkkdqgkydrk5ctxre5nkk4qwdvefn0sdsc6eqxe

Segwit
By default, Trezor Suite will use a Segwit address (P2WPKH, encoded as Bech32), which always begins with the characters bc1q. This type of address is now widely supported and can prevent problems when transacting with an exchange or service that does not yet properly support Taproot. It is more efficient in how it uses data to complete a transaction than older addresses.

A Segwit Bech32 address looks like this:

bc1qj89046x7zv6pm4n00qgqp505nvljnfp6xfznyw

Legacy Segwit
Unfortunately, Segwit is still not supported everywhere. A hybrid version of Segwit was created to make the script readable as both a ‘pay to script hash’ (P2SH) as well as a ‘pay to witness key hash’ (P2WPKH), now known as a Legacy SegWit (P2SH-P2WPKH) address encoded in base 58. This can be more efficient than the legacy address type, from a fee point of view, and can be identified because it starts with the number 3. If you are unsure if the address you want to send to supports SegWit or not, a Legacy Segwit address will most often work.

A Legacy SegWit P2SH-P2WPKH address looks like this:

3EmUH8Uh9EXE7axgyAeBsCc2vdUdKkDqWK

Legacy
If you are sending from an older wallet, you may be using the original ‘pay to public key hash’ (P2PKH) address, known as a legacy address because they are seen as a remnant of earlier technology. These are generally more expensive with regards to fees, but are still fairly common. You can tell if an address is a legacy address because it starts with the number 1.

A Legacy P2PKH address looks like this:

1MbeQFmHo9b69kCfFa6yBr7BQX4NzJFQq9

You should always double-check the address you are sending to using a hardware wallet to make sure it is not being tampered with. While the leading characters help determine what type of address it is, the length of address also changes depending on the type of address. There are 62 characters in a Taproot address, 42 in a Segwit address, and 34 characters in the two Legacy addresses available in Trezor Suite.

What is a valid bitcoin address to send to?

All types of address are derived from the same source, your recovery seed. The examples above are all addresses linked to this twelve-word recovery seed:

gentle melt morning mother surprise situate lens beef cloud inquiry genuine feel

From your seed, you can create a valid bitcoin receiving address of any type for your needs, provided you have the right wallet interface. Using Trezor Suite, you can generate any of the four types of address listed above in just a couple of clicks.

Due to how Bitcoin has developed, improving over time, you will find that addresses are mostly backwards-compatible. Since Taproot is such a new upgrade, there may still be issues with services not supporting it for a while. A Bech32 can send to a P2SH or P2PKH address without worrying about anything.

It is also possible to send from a legacy address to a Bech32, but there may be issues due to older wallet clients that use legacy addresses often not recognizing Bech32 or P2SH addresses as valid, therefore not letting you send, even though the transaction would likely go through. This is simply an outdated protective mechanism that rejects invalid addresses but which hasn’t updated its definitions of what is valid.

When in doubt, a legacy address provides the most peace of mind and is most widely supported. While you may be limited by the client you are using, if it lets you sign and send the transaction, you have nothing to worry about. Bitcoin addresses are cross-compatible and each type should be able to send to one-another. For greater flexibility and less confusion, simply upgrade to Trezor Suite, where you have full control over the address types you use.

Why do address types keep changing?

Of the address types described here, Taproot, Legacy Segwit and Segwit are all associated with the segregated witness upgrade, a transaction protocol upgrade that let more data be sent per block, increasing network throughput, and bringing continued improvements in future.

The benefits of Taproot and SegWit are only effective when sending from compatible addresses. From a privacy standpoint, it helps that many people use the same type of address, and it is important to make sure that any cryptocurrency left over from a transaction is returned to an address of the same type. This is automatically managed by Trezor Suite.

How to get a Bitcoin address

Newcomers may be confused about how to actually create an address to send funds to. All you need is a wallet client, such as one of the recommended wallets listed here, which can generate a seed for you and use that seed to show you the available addresses. It is good practice to only use an address once, whether for sending or receiving. Since one seed can generate many addresses, you needn’t worry about running out of addresses to use and will add an extra layer of privacy with minimal effort.

If you have a Trezor hardware wallet, you can use the Trezor Suite desktop application to create and manage your bitcoin addresses, which uses the seed created on your Trezor device itself, meaning there is no chance someone else has seen your seed and can duplicate your wallet. You can also easily generate and verify a new address for every transaction directly in Suite.

Finding your bitcoin receiving address

If you want to send bitcoin to your wallet, you need to identify your receiving address. In Trezor Suite, this is done by choosing the account you want to receive to and clicking on the Receive tab. There, you will find a list of all addresses you have previously generated, and a preview of the latest unused address will be shown.

Click on ‘Show full address’ and you will see the latest, unused receiving address. Check and confirm that each character of the address shown on your device matches what is shown on your screen, and then copy it and provide it to whomever is sending the transaction.

As you can see, here we are using a Bech32 address starting in bc1, but the sender must also be using a Bech32 or P2SH-P2WPKH address to take advantage of the lower fees SegWit enables. Always send from a Taproot or Segwit address where possible to save on transaction fees.

If it is your first time receiving a transaction, it is recommended to send a test transaction before moving all of your funds. This may seem overly cautious as the technology is reliable but, for beginners, it can help offset any uncertainties. Try sending a few satoshis to test your receiving address, and wait for it to confirm before you make a larger transaction.

How to send bitcoin to an address

When you want to pay someone in bitcoin, all you need is a receiving address which they will provide. Using Trezor Suite, simply navigate to the Send tab in your accounts, and enter the address you were supplied. Double check that the characters match the original address exactly, as there is always a chance that undetected malware could be hijacking your clipboard.

Once an address is entered, simply say how much you wish to send and a fee you are willing to pay. A higher fee will encourage miners to give your transaction higher priority and it should complete faster. In the screenshot below, we use the highest fee suggested by Trezor Suite to achieve a confirmation time of 10 minutes, the fastest the Bitcoin network is generally capable of.

Always check the fee you are paying is reasonable. Some wallets which automatically suggest fees grossly overestimate them. You should never need to pay more than a few dollars in fees even during busy periods.

If the fee suggested by the wallet client you are using seems too high, look for an option to enter a custom fee and set it based on your needs. A number of tools exist on the internet to let you view the current fees other users are paying, such as the second chart on this website. As you can see below, the majority of transactions are set well below 50 sat/byte, so a transaction should confirm within 10 minutes if sent at the 51 sat/byte suggested by Trezor Suite.

How to recover bitcoin sent to the wrong address

In most cases, there is no way to recover Bitcoin that has been sent to the wrong recipient if the address was valid. In the rare case that you know the owner of the address who you sent to, you can contact them, or you may be lucky enough that they send back the transaction when they recognize it was sent accidentally.

Failing either strategy, one last-ditch effort is to send a message to the address you accidentally sent your bitcoins to using the OP_RETURN feature, describing your mistake and appealing to their benevolent side. This is highly unlikely to work so, to prevent yourself from losing your coins permanently by sending them to the wrong address, always double or triple-check the address before sending.

The sad reality is that, while many wallet clients do a good job of identifying valid addresses, there are still cases where a user has sent to the wrong type of address, such as sending Bitcoin to a Litecoin address, which some wallet clients are not able to catch. In this case, the network will not be able to distinguish the transactions apart as they are both seen as valid from the wallet’s point of view.

The chances of recovering your coins in this situation depend on the type of network the transaction was sent to. In some cases, like with Litecoin, you should be able to recover the coins as long as you also own the private key to the receiving address, even if it is a Litecoin address. Without a private key, however, chances of recovery are low, if not zero. If this has happened, you may have to cut your losses and move to using a wallet interface with better support.

--

--

Innovating since we founded the industry in 2013 with production of the first crypto hardware wallet, the Trezor One. Open-source, secure, community-driven.