<oembed><type>rich</type><version>1.0</version><author_name>npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd</author_name><author_url>https://nostr.ae/npub17ty4mumkv43w8wtt0xsz2jypck0gvw0j8xrcg6tpea25z2nh7meqf4qgyd</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2014-03-26&#xA;📝 Original message:Myself, Thomas V (Electrum) and Marek (Trezor) got together to make sure&#xA;our BIP32 wallet structures would be compatible - and I discovered that&#xA;only I was planning to use the default structure.&#xA;&#xA;Because I&#39;m hopeful that we can get a lot of interoperability between&#xA;wallets with regards to importing 12-words paper wallets, we brainstormed&#xA;to find a structure acceptable to everyone and ended up with:&#xA;&#xA;  /m/cointype/reserved&#39;/account&#39;/change/n&#xA;&#xA;The extra levels require some explanation:&#xA;&#xA;   - cointype:  This is zero for Bitcoin. This is here to support two&#xA;   things, one is supporting alt coins based off the same root seed. Right now&#xA;   nobody seemed very bothered about alt coins but sometimes feature requests&#xA;   do come in for this. Arguably there is no need and alt coins could just use&#xA;   the same keys as Bitcoin, but it may help avoid confusion if they don&#39;t.&#xA;&#xA;   More usefully, cointype can distinguish between keys intended for things&#xA;   like multisig outputs, e.g. for watchdog services. This means if your&#xA;   wallet does not know about the extra protocol layers involved in this, it&#xA;   can still import the &#34;raw&#34; money and it will just ignore/not see the keys&#xA;   used in more complex transactions.&#xA;&#xA;   - reserved is for &#34;other stuff&#34;. I actually don&#39;t recall why we ended up&#xA;   with this. It may have been intended to split out multisig outputs etc from&#xA;   cointype. Marek, Thomas?&#xA;&#xA;   - account is for keeping essentially wallets-within-a-wallet to avoid&#xA;   mixing of coins. If you want that.&#xA;&#xA;   - change is 0 for receiving addresses, 1 for change addresses.&#xA;&#xA;   - n is the actual key index&#xA;&#xA;For bitcoinj we&#39;re targeting a deliberately limited feature set for hdw v1&#xA;so I would just set the first three values all to zero and that is a&#xA;perfectly fine way to be compatible.&#xA;&#xA;The goal here is that the same seed can be written down once, and meet all&#xA;the users needs, whilst still allowing some drift between what wallets&#xA;support.&#xA;&#xA;Pieter made the I think valid point that you can&#39;t really encode how keys&#xA;are meant to be used into just an HDW hierarchy and normally you&#39;d need&#xA;some metadata as well. However, I feel interop between wallets is more&#xA;important than arriving at the most perfect possible arrangement, which&#xA;feels a little like bikeshedding, so I&#39;m happy to just go with the flow on&#xA;this one.&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20140326/ed7506b1/attachment.html&gt;</html></oembed>