Fees and transactions architecture is an important matter on bitcoin. with segwit infact a large amount of fees are saved when making a transaction, but better savings are possible when using native segwit transaction.

Bech32 is not a protocol, but it is the format of native segwit addresses and makes possible to save additional 16% in fees.

In order to make possible to have a transition to segwit in an easier way an intermediate solution has been proposed. And this is an intermediate address format which wraps a segwit address.

This is P2SH(P2WPKH). With this title, we mean that we are wrapping a segwit address inside a P2SH address. The script which is actually wrapped is a segwit script. Normally this kind of address starts with 3. P2SH itself is there since around 2012.

Regarding bech32 (bech32 encoded native segwit address), the addresses starting with bc1, this is a native segwit address. Because this address is not wrapped inside a P2SH address, it doesn’t have a script hash in it and therefore the address and the spending script are actually shorter by 16% ( it does not include the script hash). For this reason the fees are cheaper.

If you are spending money which have been sent to a bech32 instead to a P2SH-P2WPKH, you will have lower fees because inputs have no full script hash in them, but they immediately go to a native address.

Percentage of payments spending segwit per day, courtesy from transactionfee.info

So why should we use bech32 addresses?

  • because we want to save fees;
  • because we want to optimize space on the blockchain;
  • because we want to be tied to new improvement on bitcoin;

Any wallet will accept a transaction from a bech32 address. Not all wallets allow sending towards a bech32 address (at the moment writing this script), but the number is constantly growing.

So check your wallet and be sure it supports bech32 address formats so to be tuned with new bitcoin improvements and benefit by lower fees.

If you use the telegram bot named btcnode_bot you will get not only the realtime fees status in the current moment, but also an estimation with fees (and actual change in fiat) for a legacy transaction and native transaction with confirmation in about 1 hour. This may be very useful so that you can know how to spend and how to expect when you are creating a transaction. Please see the below image showing how the output is:

Output from btcnode_bot invoked by telegram