<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/index.php?action=history&amp;feed=atom&amp;title=BIP_0048</id>
	<title>BIP 0048 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/index.php?action=history&amp;feed=atom&amp;title=BIP_0048"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BIP_0048&amp;action=history"/>
	<updated>2026-04-24T07:43:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=BIP_0048&amp;diff=69067&amp;oldid=prev</id>
		<title>934: Update BIP text with latest version from https://github.com/bitcoin/bips/blob/edffe529056f6dfd/bip-0048.mediawiki</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=BIP_0048&amp;diff=69067&amp;oldid=prev"/>
		<updated>2021-12-15T15:40:24Z</updated>

		<summary type="html">&lt;p&gt;Update BIP text with latest version from https://github.com/bitcoin/bips/blob/edffe529056f6dfd/bip-0048.mediawiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{bip}}&lt;br /&gt;
{{BipMoved|bip-0048.mediawiki}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  BIP: 48&lt;br /&gt;
  Layer: Applications&lt;br /&gt;
  Title: Multi-Script Hierarchy for Multi-Sig Wallets&lt;br /&gt;
  Author: Fontaine &amp;lt;dentondevelopment@protonmail.com&amp;gt;&lt;br /&gt;
  Comments-Summary: No comments&lt;br /&gt;
  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0048&lt;br /&gt;
  Status: Proposed&lt;br /&gt;
  Type: Standards Track&lt;br /&gt;
  Created: 2020-12-16&lt;br /&gt;
  License: MIT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Abstract==&lt;br /&gt;
&lt;br /&gt;
This BIP defines a logical hierarchy for deterministic multi-sig wallets based on an algorithm&lt;br /&gt;
described in BIP-0067 (BIP67 from now on), BIP-0032 (BIP32 from now on), purpose scheme described in&lt;br /&gt;
BIP-0043 (BIP43 from now on), and multi-account hierarchy described in&lt;br /&gt;
BIP-0044 (BIP44 from now on).&lt;br /&gt;
&lt;br /&gt;
This BIP is a particular application of BIP43.&lt;br /&gt;
&lt;br /&gt;
==Copyright==&lt;br /&gt;
&lt;br /&gt;
This BIP falls under the MIT License.&lt;br /&gt;
&lt;br /&gt;
==Motivation==&lt;br /&gt;
&lt;br /&gt;
The motivation of this BIP is to define the existing industry wide practice of utilizing  m/48&amp;#039;&lt;br /&gt;
derivation paths in hierarchical deterministic multi-sig wallets so that other developers may&lt;br /&gt;
benefit from a standard. This BIP allows for future script types to easily be appended to the&lt;br /&gt;
specification so that a new BIP is not required for every future script type.&lt;br /&gt;
&lt;br /&gt;
The hierarchy proposed in this paper is quite comprehensive. It allows the handling of&lt;br /&gt;
multiple accounts, external and internal chains per account, multiple script types and&lt;br /&gt;
millions of addresses per chain.&lt;br /&gt;
&lt;br /&gt;
This paper was inspired from BIP44.&lt;br /&gt;
&lt;br /&gt;
==Backwards compatibility==&lt;br /&gt;
&lt;br /&gt;
Currently a number of wallets utilize the ‎&amp;lt;code&amp;gt;m/48&amp;#039;&amp;lt;/code&amp;gt; derivation scheme for HD multi-sig accounts.&lt;br /&gt;
This BIP is intended to maintain the *existing* real world use of the ‎&amp;lt;code&amp;gt;m/48&amp;#039;&amp;lt;/code&amp;gt; derivation.&lt;br /&gt;
No breaking changes are made so as to avoid &amp;quot;loss of funds&amp;quot; to existing users.&lt;br /&gt;
Wallets which currently support the ‎&amp;lt;code&amp;gt;m/48&amp;#039;&amp;lt;/code&amp;gt; derivation will not need to make any changes&lt;br /&gt;
to comply with this BIP.&lt;br /&gt;
&lt;br /&gt;
==Specification==&lt;br /&gt;
&lt;br /&gt;
===Key sorting===&lt;br /&gt;
&lt;br /&gt;
Any wallet that supports BIP48 inherently supports deterministic key sorting as per BIP67 so that all possible&lt;br /&gt;
multi-signature addresses/scripts are derived from deterministically sorted public keys.&lt;br /&gt;
&lt;br /&gt;
===Path levels===&lt;br /&gt;
&lt;br /&gt;
We define the following 6 levels in BIP32 path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
m / purpose&amp;#039; / coin_type&amp;#039; / account&amp;#039; / script_type&amp;#039; / change / address_index&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;h&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;&amp;#039;&amp;lt;/code&amp;gt; in the path indicates that BIP32 hardened derivation is used.&lt;br /&gt;
&lt;br /&gt;
Each level has a special meaning, described in the chapters below.&lt;br /&gt;
&lt;br /&gt;
===Purpose===&lt;br /&gt;
&lt;br /&gt;
Purpose is a constant set to 48&amp;#039; following the BIP43 recommendation.&lt;br /&gt;
It indicates that the subtree of this node is used according to this specification.&lt;br /&gt;
&lt;br /&gt;
Hardened derivation is used at this level.&lt;br /&gt;
&lt;br /&gt;
===Coin type===&lt;br /&gt;
&lt;br /&gt;
One master node (seed) can be used for multiple Bitcoin networks.&lt;br /&gt;
Sharing the same space for various networks has some disadvantages.&lt;br /&gt;
&lt;br /&gt;
Avoiding reusing addresses across networks and improving privacy issues.&lt;br /&gt;
&lt;br /&gt;
Coin type &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; for mainnet and &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; for testnet.&lt;br /&gt;
&lt;br /&gt;
Hardened derivation is used at this level.&lt;br /&gt;
&lt;br /&gt;
===Account===&lt;br /&gt;
&lt;br /&gt;
This level splits the key space into independent user identities, following the BIP44 pattern,&lt;br /&gt;
so the wallet never mixes the coins across different accounts.&lt;br /&gt;
&lt;br /&gt;
Users can use these accounts to organize the funds in the same&lt;br /&gt;
fashion as bank accounts; for donation purposes (where all&lt;br /&gt;
addresses are considered public), for saving purposes,&lt;br /&gt;
for common expenses etc.&lt;br /&gt;
&lt;br /&gt;
Accounts are numbered from index 0 in sequentially increasing manner.&lt;br /&gt;
This number is used as child index in BIP32 derivation.&lt;br /&gt;
&lt;br /&gt;
Hardened derivation is used at this level.&lt;br /&gt;
&lt;br /&gt;
===Script===&lt;br /&gt;
&lt;br /&gt;
This level splits the key space into two separate &amp;lt;code&amp;gt;script_type&amp;lt;/code&amp;gt;(s). To provide&lt;br /&gt;
forward compatibility for future script types this specification can be easily extended.&lt;br /&gt;
&lt;br /&gt;
Currently the only script types covered by this BIP are Native Segwit (p2wsh) and&lt;br /&gt;
Nested Segwit (p2sh-p2wsh).&lt;br /&gt;
&lt;br /&gt;
The following path represents Nested Segwit (p2sh-p2wsh) mainnet, account 0:&lt;br /&gt;
&amp;lt;code&amp;gt;1&amp;#039;&amp;lt;/code&amp;gt;: Nested Segwit (p2sh-p2wsh) &amp;lt;code&amp;gt;m/48&amp;#039;/0&amp;#039;/0&amp;#039;/1&amp;#039;&amp;lt;/code&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following path represents Native Segwit (p2wsh) mainnet, account 0:&lt;br /&gt;
&amp;lt;code&amp;gt;2&amp;#039;&amp;lt;/code&amp;gt;: Native Segwit (p2wsh) &amp;lt;code&amp;gt;m/48&amp;#039;/0&amp;#039;/0&amp;#039;/2&amp;#039;&amp;lt;/code&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The recommended default for wallets is pay to witness script hash &amp;lt;code&amp;gt;m/48&amp;#039;/0&amp;#039;/0&amp;#039;/2&amp;#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To add new script types submit a PR to this specification and include it in the list above:&lt;br /&gt;
&amp;lt;code&amp;gt;X&amp;#039;&amp;lt;/code&amp;gt;: Future script type &amp;lt;code&amp;gt;m/48&amp;#039;/0&amp;#039;/0&amp;#039;/X&amp;#039;&amp;lt;/code&amp;gt;&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Change===&lt;br /&gt;
&lt;br /&gt;
Constant 0 is used for external chain and constant 1 for internal chain (also&lt;br /&gt;
known as change addresses). External chain is used for addresses that are meant&lt;br /&gt;
to be visible outside of the wallet (e.g. for receiving payments). Internal&lt;br /&gt;
chain is used for addresses which are not meant to be visible outside of the&lt;br /&gt;
wallet and is used for return transaction change.&lt;br /&gt;
&lt;br /&gt;
Public derivation is used at this level.&lt;br /&gt;
&lt;br /&gt;
===Index===&lt;br /&gt;
&lt;br /&gt;
Addresses are numbered from index 0 in sequentially increasing manner.&lt;br /&gt;
This number is used as child index in BIP32 derivation.&lt;br /&gt;
&lt;br /&gt;
Public derivation is used at this level.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|network&lt;br /&gt;
|account&lt;br /&gt;
|script&lt;br /&gt;
|chain&lt;br /&gt;
|address&lt;br /&gt;
|path&lt;br /&gt;
|-&lt;br /&gt;
|mainnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 0&amp;#039; / 0&amp;#039; / 2&amp;#039; / 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
|mainnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 0&amp;#039; / 0&amp;#039; / 2&amp;#039; / 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
|mainnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|change&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 0&amp;#039; / 0&amp;#039; / 2&amp;#039; / 1 / 0&lt;br /&gt;
|-&lt;br /&gt;
|mainnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|change&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 0&amp;#039; / 0&amp;#039; / 2&amp;#039; / 1 / 1&lt;br /&gt;
|-&lt;br /&gt;
|mainnet&lt;br /&gt;
|second&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 0&amp;#039; / 1&amp;#039; / 2&amp;#039; / 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
|mainnet&lt;br /&gt;
|second&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 0&amp;#039; / 1&amp;#039; / 2&amp;#039; / 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|first&lt;br /&gt;
|p2sh-p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 0&amp;#039; / 1&amp;#039; / 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 0&amp;#039; / 2&amp;#039; / 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|change&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 0&amp;#039; / 2&amp;#039; / 1 / 0&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|first&lt;br /&gt;
|p2wsh&lt;br /&gt;
|change&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 0&amp;#039; / 2&amp;#039; / 1 / 1&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|second&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 1&amp;#039; / 2&amp;#039; / 0 / 0&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|second&lt;br /&gt;
|p2wsh&lt;br /&gt;
|external&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 1&amp;#039; / 2&amp;#039; / 0 / 1&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|second&lt;br /&gt;
|p2wsh&lt;br /&gt;
|change&lt;br /&gt;
|first&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 1&amp;#039; / 2&amp;#039; / 1 / 0&lt;br /&gt;
|-&lt;br /&gt;
|testnet&lt;br /&gt;
|second&lt;br /&gt;
|p2wsh&lt;br /&gt;
|change&lt;br /&gt;
|second&lt;br /&gt;
|m / 48&amp;#039; / 1&amp;#039; / 1&amp;#039; / 2&amp;#039; / 1 / 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
&lt;br /&gt;
* [[bip-0067.mediawiki|BIP67 - Deterministic Pay-to-script-hash multi-signature addresses through public key sorting]]&lt;br /&gt;
* [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]]&lt;br /&gt;
* [[bip-0043.mediawiki|BIP43 - Purpose Field for Deterministic Wallets]]&lt;br /&gt;
* [[bip-0044.mediawiki|BIP44 - Multi-Account Hierarchy for Deterministic Wallets]]&lt;/div&gt;</summary>
		<author><name>934</name></author>
	</entry>
</feed>