| 
									
										
										
										
											2014-04-09 15:59:32 +02:00
										 |  |  | <pre> | 
					
						
							| 
									
										
										
										
											2016-02-03 07:02:36 +00:00
										 |  |  |   BIP: 43 | 
					
						
							| 
									
										
										
										
											2016-11-30 09:45:33 +00:00
										 |  |  |   Layer: Applications | 
					
						
							| 
									
										
										
										
											2016-02-03 07:02:36 +00:00
										 |  |  |   Title: Purpose Field for Deterministic Wallets | 
					
						
							|  |  |  |   Author: Marek Palatinus <slush@satoshilabs.com> | 
					
						
							|  |  |  |           Pavol Rusnak <stick@satoshilabs.com> | 
					
						
							| 
									
										
										
										
											2016-11-30 09:47:31 +00:00
										 |  |  |   Comments-Summary: No comments yet. | 
					
						
							|  |  |  |   Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0043 | 
					
						
							| 
									
										
										
										
											2020-04-30 09:43:09 -05:00
										 |  |  |   Status: Final | 
					
						
							| 
									
										
										
										
											2024-03-18 23:48:22 +01:00
										 |  |  |   Type: Standards Track | 
					
						
							| 
									
										
										
										
											2014-04-24 13:56:27 +02:00
										 |  |  |   Created: 2014-04-24 | 
					
						
							| 
									
										
										
										
											2014-04-09 15:59:32 +02:00
										 |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ==Abstract== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This BIP introduces a "Purpose Field" for use in deterministic wallets | 
					
						
							|  |  |  | based on algorithm described in BIP-0032 (BIP32 from now on). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ==Motivation== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Although Hierarchical Deterministic Wallet structure as described by BIP32 | 
					
						
							|  |  |  | is an important step in user experience and security of the cryptocoin wallets, | 
					
						
							|  |  |  | the BIP32 specification offers implementors too many degrees of freedom. | 
					
						
							|  |  |  | Multiple implementations may claim they are BIP32 compatible, but in fact | 
					
						
							|  |  |  | they can produce wallets with different logical structures making them | 
					
						
							|  |  |  | non-interoperable. This situation unfortunately renders "BIP32 compatible" | 
					
						
							|  |  |  | statement rather useless. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ==Purpose== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | We propose the first level of BIP32 tree structure to be used as "purpose". | 
					
						
							|  |  |  | This purpose determines the further structure beneath this node. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <pre> | 
					
						
							|  |  |  | m / purpose' / * | 
					
						
							|  |  |  | </pre> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Apostrophe indicates that BIP32 hardened derivation is used. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | We encourage different schemes to apply for assigning a separate BIP number | 
					
						
							|  |  |  | and use the same number for purpose field, so addresses won't be generated | 
					
						
							|  |  |  | from overlapping BIP32 spaces. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-21 17:29:33 +00:00
										 |  |  | Purpose codes from 10001 to 19999 are reserved for [[https://github.com/satoshilabs/slips|SLIPs]]. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-09 15:59:32 +02:00
										 |  |  | Example: Scheme described in BIP44 should use 44' (or 0x8000002C) as purpose. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-16 10:14:55 +02:00
										 |  |  | Note that m / 0' / * is already taken by BIP32 (default account), which | 
					
						
							|  |  |  | preceded this BIP. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-09 15:59:32 +02:00
										 |  |  | Not all wallets may want to support the full range of features and possibilities | 
					
						
							|  |  |  | described in these BIPs. Instead of choosing arbitrary subset of defined features | 
					
						
							|  |  |  | and calling themselves BIPxx compatible, we suggest that software which needs | 
					
						
							|  |  |  | only a limited structure should describe such structure in another BIP and use | 
					
						
							|  |  |  | different "purpose" value. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-04-24 16:38:54 +02:00
										 |  |  | ==Node serialization== | 
					
						
							| 
									
										
										
										
											2014-04-09 15:59:32 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | Because this scheme can be used to generate nodes for more cryptocurrencies | 
					
						
							|  |  |  | at once, or even something totally unrelated to cryptocurrencies, there's no | 
					
						
							|  |  |  | point in using a special version magic described in section "Serialization | 
					
						
							|  |  |  | format" of BIP32. We suggest to use always 0x0488B21E for public and 0x0488ADE4 | 
					
						
							|  |  |  | for private nodes (leading to prefixes "xpub" and "xprv" respectively). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ==Reference== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | * [[bip-0032.mediawiki|BIP32 - Hierarchical Deterministic Wallets]] |