Creating a P2SH Segwit Wallet with Electrum

Note: this is for advanced users only

Electrum’s usual segwit wallets are not p2sh. They have bech32 (bc1..) addresses. That means that you won’t be able to receive money in them from most other wallets and websites because they don’t yet support bech32 addresses. p2sh segwit wallets OTOH use p2sh addresses beginning with 3 that everyone supports sending to.

Get Entropy

To create a p2sh segwit wallet you need to first generate entropy to seed your wallet. On OSX and Linux you can simply use the Electrum make_seed command in a terminal to get some random words to seed your wallet with:

user@linux:~/temp/electrum> electrum make_seed
company collect elder toy artist truly discover ship day explain depend saddle

Another option is to use openssl:

user@linux:~/temp/electrum> openssl rand -hex 16
2c418709e080d91fe73effc6e91e78e

On Windows create an electrum wallet and then abort the process once you’ve acquired an Electrum generated seed.

Note: If you use an Electrum seed as your entropy source please remember to write down “Use as BIP39 and BIP49 p2sh segwit” alongside the seed backup so that in future if you restore from this you have some idea of what to do.

Restore

Then you restore your wallet with two small changes to the usual process:

  • During the seed entry screen click on options and check bip39. Then paste in the entropy you generated as the seed. Electrum will warn you that this is not a valid bip39 seed but it’ll let you proceed to the next step anyway.
  • The next step is the one where you set the derivation path and there you enter:

    m/49'/0'/0'

    i.e. replace the 44 with 49.

That’s it. You will now have a p2sh segwit wallet. You can confirm by looking at Wallet menu > Information where it should say p2wpkh-p2sh as the script type.