---
# System prepended metadata

title: Bitcoin HD Derivations for Multisig (aka m/48')

---

---
robots: noindex, nofollow
---

# Bitcoin HD Derivations for Multisig (aka m/48')

## Problem Statement

A number of wallet companies have settled on using the HD key derivation of m/48' for use with hardware wallets doing multisig, but so far there is no formal documenation in the form of a BIP or SLIP.

My best guess that the idea was that by using m/48' for multisig paths, you'd never need to check a single signature bitcoin address for balance from those derived keys, and you'l never reuse a derived key that will be used for a single-signature wallet and also multisig wallet.

Christopher Allen writes a side note
> This still presumes one hardware wallet, one master seed. But there may emerge new hardware wallets that have multiple master seed on them, and FullyNoded 2 for iOS already does. I still have concerns about future airgapped wallets (#LetheKit v2?) offering to network multisig coordinators keys already used by another multisig network coordinator. Not quite how I'd fix that, but I had a weird idea about using a hash of the wallet descriptor without any but the first pubkey in it so the derivation would be a different for each wallet and key holder and never conflict with another derived key. But m/48' seems easier and solves the immediate problem.

## Who is using it

It appears that Coldpay may have initiated it.

https://github.com/bitpay/copay#wallet-export-format :
> Since version 1.5, Copay uses the root m/48' for hardware multisignature wallets. This was coordinated with Ledger and Trezor teams. While the derivation path format is still similar to BIP44, the root was in order to indicate that these wallets are not discoverable by scanning addresses for funds. Address generation for multisignature wallets requires the other copayers extended public keys.

Trezor has some limited notes on it at https://wiki.trezor.io/Standard_derivation_paths
> m/48'/cointype'/account'//change/address ... multisig P2SH, implemented in Copay wallet (backups), no BIP or SLIP defined

@stepansnigirev reports that [Electrum wallet](https://github.com/spesmilo/electrum/blob/11452722aff3877b7033c2e873f73e906a110a78/electrum/keystore.py#L934), [Trezor](https://github.com/trezor/trezor-firmware/blob/5885978c83025ee52789be4775d6f58d48886f4d/legacy/firmware/fsm_msg_coin.h#L155), Ledger and ColdCard all use it.

## Questions

### Paths for legacy, nested segwit, and native segwit

Reportedly (reported by @stepansnigirev not confirmed)

* m/48'/0'/0'/0' legacy 
* m/48'/0'/0'/1' nested segwit 
* m/48'/0'/0'/2' native segwit

### Hardened Paths

Are all of these hardened paths like above?

### Change

Anything weird in change addresses?

### Accounts

How are different accounts handled?



