Reference: Address Types

Bitcoin Address Types

The choice of address type has a very significant impact on Bitcoin transaction fees. This page compares and contrasts the different choices you have.

Address Types Costs

Spending from an address incurs a fee that depends on the address type.

These estimates are based on a fee rate of around 17 Satoshi/vByte.

TypeNameSupportUsage Costs (sats)
p2shLegacyAll wallets5,100
p2shP2wshWrapped SegwitAll wallets2,400
p2wshNative SegwitNearly all wallets1,800
p2trMusig2TaprootMost modern wallets1,000

Receive Address Type

These are the addresses you generate and hand out to other parties when you want to receive a deposit. Every time you are spending these deposits, you need to pay a fee depending on the address type you chose.

Note that all wallets support sending every address type. When you hand somebody an address that cannot be understood by their wallet, you can simply generate a new address with a different address type.

Default Setting

We are currently defaulting to address type p2wsh to ensure maximum compatibility.

Fee Optimized Setting

With p2trMusig2 you can save around 40% per usage compared to the p2wsh default.

Pass chain: 40 in generateAddress to generate a p2trMusig2 address.

Be aware that older wallets may not support sending to this address type. In that case you can ask the sender to update their wallet software or simply generate another address with the default address type.

Privacy

The address type p2trMusig2 enhances privacy because its on-chain transactions appear as single-key and single-signature spends.

Change Address Type

These addresses are only used internally by BitGo. The available choices are the same as for the receiving address.

Default Setting

We are currently defaulting to address type p2wsh for change addresses. This is done out of an abundance of caution, since customers may be using older SDK versions that are not compatible with p2trMusig2 yet.

If you use your wallet from the browser exclusively go to “Update Change Address Type”, in the wallet Settings tab. Choose the option “Taproot Keypath (P2TR-MUSIG2)”.

If you use your wallet from the SDK, and exclusively use the browser and modern SDKs, pass changeAddressType: “p2trMusig2” in your build parameters.

Other UTXO Coins

Litecoin, Bitcoin Cash and other UTXO coins also support a subset of the address types. However, since fees are typically less of a concern, the choice of address type is less relevant.

P2SHP2SH-P2WSHP2WSHP2TR (MuSig2)
BTC
BTG
LTC
DOGE
BCH
ZEC
DASH

Receive Address Type Details

TypeChain CodeEncodingPrefix (mainnet)Prefix (testnet)PrivacySigning Method
p2sh0Base5832LowSignature
p2shP2wsh10Base5832IntermediateSignature
p2wsh20Bech32bc1qtb1qHigherSignature
p2trMusig240Bech32bc1ptb1pHighestSignature + Nonce

The address type p2tr with chain code 30 is deprecated.

The chain code for an internal address with the same address type can be obtained by adding a 1: e.g. internal p2trMusig2 is chain 41.

See Also