The path specifies which key from the key-tree to utilise for what purpose. It achieves this by specifying which node to choose at every depth of the tree. This document should be interpreted in tandem with the Tree KDF specification as that specification describes how to build out a tree of keys and this one, how to traverse that tree and which keys to use for what.
The path is a string comprised of the characters
, m
, /
, and 0
through 9
.
m / purpose / coin_type / account / other
The notation used within the path is specified within the Tree KDF specification, but is summarized again below for convenience.
m
Denotes the master node (or root) of the treei
where0 <= i < 2^256
is an integer, indicates thei
th node is used at this level/
Separates the tree into depths, thusi / j
signifies thatj
is a child ofi
The purpose is set to 12381 which is the name of the new curve (BLS12-381). Use of purpose 12381
indicates compliance both with this specification along with the Tree KDF specification, and the Mnemonic specification.
The coin_type
provides differentiation between different coins thereby allowing a single master-node to be used for many coins while preserving key separation.
account
is a field that provides the ability for a user to have distinct sets of keys for different purposes, thereby allowing users to separate their keys and their use into domains.
The other
depth is designed to provide a set of related keys that can be used for any purpose. It is required to support this level in the tree, although, for many purposes it will remain 0
.