BIP 43: Purpose Field for Deterministic Wallets

0043 - Final - Standards - April 24, 2014 (12 years, 2 months ago)

Number
43
Status
Final
Type
Standards
Created
April 24, 2014
License

April

24

2014

  BIP: 43
Layer: Applications
Title: Purpose Field for Deterministic Wallets
Author: Marek Palatinus <[email protected]>
Pavol Rusnak <[email protected]>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP 43
Status: Final
Type: Standards Track
Created: 2014-04-24

Abstract

This BIP introduces a "Purpose Field" for use in deterministic wallets based on algorithm described in BIP 32 (BIP 32 from now on).

Motivation

Although Hierarchical Deterministic Wallet structure as described by BIP 32 is an important step in user experience and security of the cryptocoin wallets, the BIP 32 specification offers implementers too many degrees of freedom. Multiple implementations may claim they are BIP 32 compatible, but in fact they can produce wallets with different logical structures making them non-interoperable. This situation unfortunately renders "BIP 32 compatible" statement rather useless.

Purpose

We propose the first level of BIP 32 tree structure to be used as "purpose". This purpose determines the further structure beneath this node.

m / purpose' / *

Apostrophe indicates that BIP 32 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 BIP 32 spaces.

Purpose codes from 10001 to 19999 are reserved for SLIPs .

Example: Scheme described in BIP 44 should use 44' (or 0x8000002C) as purpose.

Note that m / 0' / * is already taken by BIP 32 (default account), which preceded this BIP.

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.

Node serialization

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 BIP 32. We suggest to use always 0x0488B21E for public and 0x0488ADE4 for private nodes (leading to prefixes "xpub" and "xprv" respectively).

Reference

View on GitHub

Authors

Marek Palatinus

Marek Palatinus


Marek Palatinus, also known as "Slush," is a significant figure in the …

Pavol Rusnak

Pavol Rusnak


Pavol Rusnak, known in the cryptocurrency community as "stick," is recognized for …