9 - Feature Derivation Paths#

  DIP: 0009
  Title: Feature Derivation Paths
  Author(s): Samuel Westrich
  Special-Thanks:  
  Status: Proposed
  Type: Informational
  Created: 2019-03-12
  License: MIT License

Table of Contents#

  1. Abstract

  2. Motivation

  3. Prior Work

  4. Feature Path Level

  5. Copyright

Abstract#

This DIP introduces reliable derivation paths for various coin-specific features.

Motivation#

Currently there is much ambiguity between different coin paths, BIP43 tried to solve this with the ‘purpose’ hardened derivation. With BIP44 we saw derivation paths such as 44’/5’/0’ which addresses coin-specific derivation paths. However, these derivation paths had an account directly after the coin type which made it unusable for coin-specific features other than standard transactions.

Prior work#

Feature path level#

We define the following minimum 3 levels in BIP32 path:

m / purpose' / coin_type' / feature' / *

An apostrophe in the path indicates that BIP32 hardened derivation is used.

Each level has a special meaning, described in the sections below.

Purpose#

Purpose is a constant set to 9' (or 0x80000009) following the BIP43 recommendation. It indicates that the subtree of this node is used according to this specification.

Hardened derivation is used at this level.

Coin type#

Coin type in this DIP is the same as defined by BIP44 (a constant, set for each cryptocoin). For example, Dash has a registered coin type of 5' (or 0x80000005).

This DIP is not a central directory for the registered coin types. Please visit the full list of registered coin types maintained by SatoshiLabs for any other coins:

SLIP-0044 : Registered coin types for BIP-0044

Hardened derivation is used at this level.

Feature#

This level splits the coin’s key space based on coin-specific features. For example, it may be desirable to maintain mixed funds in a path that is isolated from non-mixed funds. Other use cases could include using a specific path for identity or other non-financial keys.

Hardened derivation is used at this level.

Feature derivation paths may be defined based on future DIPs. A list of registered features can be found here.