Can someone explain the meaning of derivation path in wallet in plain English (such as m/44'/60'/0'/0)? ...
Map material from china not allowed to leave the country
Israeli soda type drink
How to get even lighting when using flash for group photos near wall?
Trumpet valves, lengths, and pitch
What do you call the part of a novel that is not dialog?
Can I criticise the more senior developers around me for not writing clean code?
Multiple options vs single option UI
Where did Arya get these scars?
Putting Ant-Man on house arrest
How to count in linear time worst-case?
c++ diamond problem - How to call base method only once
All ASCII characters with a given bit count
What's the difference between using dependency injection with a container and using a service locator?
Married in secret, can marital status in passport be changed at a later date?
Why did Israel vote against lifting the American embargo on Cuba?
How do I check if a string is entirely made of the same substring?
Protagonist's race is hidden - should I reveal it?
"My boss was furious with me and I have been fired" vs. "My boss was furious with me and I was fired"
Has a Nobel Peace laureate ever been accused of war crimes?
Justification for leaving new position after a short time
Can you stand up from being prone using Skirmisher outside of your turn?
What if Force was not Mass times Acceleration?
"Rubric" as meaning "signature" or "personal mark" -- is this accepted usage?
Is there any hidden 'W' sound after 'comment' in : Comment est-elle?
Can someone explain the meaning of derivation path in wallet in plain English (such as m/44'/60'/0'/0)?
Unicorn Meta Zoo #1: Why another podcast?
Announcing the arrival of Valued Associate #679: Cesar ManaraSeparated ETH/ETC but how to transfer remaining ETC?How can I access my ETC Wallet? (Ubuntu 14.04)Difference between Main Account and Account 1My wallet is empty and I get this strange repeating message when running Ether in the TerminalrawTransaction and contractAddressExplain the multi-sig wallet loss by deletion of “code”?Ethereum wallet address creation limit and ether storage limit/capacity per addressI am kind of new to ethereum, but can someone explain me difference between metamask accounts and geth account newUsage of the account part of a derivation path to generate Ethereum addresseshow to generate ethereum address from mnemonic and derivation path without using ethereumjs-wallet npm package?
Like m / purpose' / coin_type' / account' / change / address_index
which gives say a value of m/44'/60'/0'/0
What is the meaning of "m", purpose, coin type, etc.
wallets hd-wallets bip39
New contributor
add a comment |
Like m / purpose' / coin_type' / account' / change / address_index
which gives say a value of m/44'/60'/0'/0
What is the meaning of "m", purpose, coin type, etc.
wallets hd-wallets bip39
New contributor
add a comment |
Like m / purpose' / coin_type' / account' / change / address_index
which gives say a value of m/44'/60'/0'/0
What is the meaning of "m", purpose, coin type, etc.
wallets hd-wallets bip39
New contributor
Like m / purpose' / coin_type' / account' / change / address_index
which gives say a value of m/44'/60'/0'/0
What is the meaning of "m", purpose, coin type, etc.
wallets hd-wallets bip39
wallets hd-wallets bip39
New contributor
New contributor
New contributor
asked 18 hours ago
vyap56vyap56
161
161
New contributor
New contributor
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Such a great question.
Background
Derivation paths are related to HD Wallets or HD Keys, a type of wallet where you have a single, human readable, seed phrase that unlocks a number of accounts / addresses / private keys across any supported network. These phrases typically look like brain surround have swap horror body response double fire dumb bring hazard
.
The technical specification for the most commonly used HD wallets are...
BIP-32 - HD wallets specification
BIP-39 - the mnemonic phrase / word list / etc. piece of this puzzle.
BIP-44 - the derivation path stuff / algorithms.
Typically you have a single private key (e.g. afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890
) which allows you to access your funds in it's matching address (e.g. 0x06A85356DCb5b307096726FB86A78c59D38e08ee
). This is a keypair.
With HD wallets you have a single seed phrase (e.g. brain surround have swap horror body response double fire dumb bring hazard
) which, via math and algorithms and code and stuff, derives multiple keypairs. An infinite number of keypairs.
Additionally, there is an insecure format of wallet known as a "brain wallet" where a person can use a single, human-readable phrase and, via math and algorithms and code and stuff, turns into a single keypair.
Okay, but wtf about derivation paths?
Brain wallets allow you to turn dogsarecool12
or brain surround have swap horror body response double fire dumb bring hazard
into a single private key which is then used to access your funds and sign your transactions.
For simplicity's sake, lets represent this as
seed phrase
=>private key
If I were to use catsarecool10
instead of dogsarecool12
as my phrase, I would get a different keypair, different address, different account.
HD wallets are similar, but each phrase has an infinite number of keypairs or accounts that it can access. Because, unlike brain wallets, it does more complex math. For simplicity's sake, let's represent this as
seed phrase
+XYZ
+🍎
+ABC
+&
+1
=>private key
If you change any one of those pieces, the private key that you get (or derive) is is going to be different, just as it was above with catsarecool10
vs dogsarecool12
. However, since all the coders follow the same rules, the pieces that get added to the seed phrase are consistent and allow users to access the same accounts across multiple products or blockchains.
These pieces are the "derviation path"
It's the
XYZ
+🍎
+ABC
+&
+1
part of it.
The actual derivation path pieces
Full path: m/44'/60'/0'/0'/0
What each number represents: m / purpose' / coin_type' / account' / change / address_index
m/
Probably just a random way to start a string so that coders can easily tell if something is a derivation path, not you starting to type "mommy".
44' (purpose)
This is always 44'
. However, if it were decided that there were a better evolution of the HD key system, you could change it to be 45'
so that, again, coders could tell the difference between an old system and a new system.
60' (coin type)
Which blockchain are you accessing? Each blockchain has a number that represents it. Bitcoin is 0
. Ethereum is 60
. Aion is 425
. When you create a new blockchain, you apply for an unused number. You can see all the chains and their numbers here: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
0' (account)
A number that starts at 0 and increases. A layer of separation or hierarchy. (more on that below)
0
(change)`
Sometimes used in Ethereum, sometimes not. Was created for Bitcoin originally which doesn't really have "accounts", it has "unspent transaction outputs". Basically you never send a part of your bitcoin holdings around—you send all your bitcoin to multiple addresses. If you have 0.75 BTC but only want to send me 0.5 BTC, you would send me 0.5 BTC and then send yourself 0.25 BTC. "Yourself" could be back to the original address or to another address you have access to (for example, the next address on the "list"). This number says "send whatever I don't want to send to my friend to the 10th address on my list. Or the 0th address on the list (aka the address I am sending from).
0' (index)
Another variable to get different accounts, etc.
Seperation and Hierarchy
Some of the variables above are based on external forces, like what chain I am on. Some are chosen by the user or the wallet software, like the change
variable. The account
and index
variables give me (or my wallet) more things to change.
For example, let's say I want to separate my personal ETH holdings from my company's ETH holdings. I could use m/44'/60'/0'/0'/0
for the company and m/44'/60'/1'/0'/0
for my personal.
But let's say I want to have different addresses for...
- my personal savings
- where I receive my paycheck each week
- when I personally getting paid back by friends
- displaying publicly on my personal github for donations
- all my personal school expenses
I could use m/44'/60'/1'/0'/0
for savings, m/44'/60'/1'/0'/1
for paychecks, m/44'/60'/1'/0'/2
for getting paid back by my friend, and so forth. I could also do the same with the company accounts. Yay!
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "642"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
vyap56 is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f70017%2fcan-someone-explain-the-meaning-of-derivation-path-in-wallet-in-plain-english-s%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Such a great question.
Background
Derivation paths are related to HD Wallets or HD Keys, a type of wallet where you have a single, human readable, seed phrase that unlocks a number of accounts / addresses / private keys across any supported network. These phrases typically look like brain surround have swap horror body response double fire dumb bring hazard
.
The technical specification for the most commonly used HD wallets are...
BIP-32 - HD wallets specification
BIP-39 - the mnemonic phrase / word list / etc. piece of this puzzle.
BIP-44 - the derivation path stuff / algorithms.
Typically you have a single private key (e.g. afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890
) which allows you to access your funds in it's matching address (e.g. 0x06A85356DCb5b307096726FB86A78c59D38e08ee
). This is a keypair.
With HD wallets you have a single seed phrase (e.g. brain surround have swap horror body response double fire dumb bring hazard
) which, via math and algorithms and code and stuff, derives multiple keypairs. An infinite number of keypairs.
Additionally, there is an insecure format of wallet known as a "brain wallet" where a person can use a single, human-readable phrase and, via math and algorithms and code and stuff, turns into a single keypair.
Okay, but wtf about derivation paths?
Brain wallets allow you to turn dogsarecool12
or brain surround have swap horror body response double fire dumb bring hazard
into a single private key which is then used to access your funds and sign your transactions.
For simplicity's sake, lets represent this as
seed phrase
=>private key
If I were to use catsarecool10
instead of dogsarecool12
as my phrase, I would get a different keypair, different address, different account.
HD wallets are similar, but each phrase has an infinite number of keypairs or accounts that it can access. Because, unlike brain wallets, it does more complex math. For simplicity's sake, let's represent this as
seed phrase
+XYZ
+🍎
+ABC
+&
+1
=>private key
If you change any one of those pieces, the private key that you get (or derive) is is going to be different, just as it was above with catsarecool10
vs dogsarecool12
. However, since all the coders follow the same rules, the pieces that get added to the seed phrase are consistent and allow users to access the same accounts across multiple products or blockchains.
These pieces are the "derviation path"
It's the
XYZ
+🍎
+ABC
+&
+1
part of it.
The actual derivation path pieces
Full path: m/44'/60'/0'/0'/0
What each number represents: m / purpose' / coin_type' / account' / change / address_index
m/
Probably just a random way to start a string so that coders can easily tell if something is a derivation path, not you starting to type "mommy".
44' (purpose)
This is always 44'
. However, if it were decided that there were a better evolution of the HD key system, you could change it to be 45'
so that, again, coders could tell the difference between an old system and a new system.
60' (coin type)
Which blockchain are you accessing? Each blockchain has a number that represents it. Bitcoin is 0
. Ethereum is 60
. Aion is 425
. When you create a new blockchain, you apply for an unused number. You can see all the chains and their numbers here: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
0' (account)
A number that starts at 0 and increases. A layer of separation or hierarchy. (more on that below)
0
(change)`
Sometimes used in Ethereum, sometimes not. Was created for Bitcoin originally which doesn't really have "accounts", it has "unspent transaction outputs". Basically you never send a part of your bitcoin holdings around—you send all your bitcoin to multiple addresses. If you have 0.75 BTC but only want to send me 0.5 BTC, you would send me 0.5 BTC and then send yourself 0.25 BTC. "Yourself" could be back to the original address or to another address you have access to (for example, the next address on the "list"). This number says "send whatever I don't want to send to my friend to the 10th address on my list. Or the 0th address on the list (aka the address I am sending from).
0' (index)
Another variable to get different accounts, etc.
Seperation and Hierarchy
Some of the variables above are based on external forces, like what chain I am on. Some are chosen by the user or the wallet software, like the change
variable. The account
and index
variables give me (or my wallet) more things to change.
For example, let's say I want to separate my personal ETH holdings from my company's ETH holdings. I could use m/44'/60'/0'/0'/0
for the company and m/44'/60'/1'/0'/0
for my personal.
But let's say I want to have different addresses for...
- my personal savings
- where I receive my paycheck each week
- when I personally getting paid back by friends
- displaying publicly on my personal github for donations
- all my personal school expenses
I could use m/44'/60'/1'/0'/0
for savings, m/44'/60'/1'/0'/1
for paychecks, m/44'/60'/1'/0'/2
for getting paid back by my friend, and so forth. I could also do the same with the company accounts. Yay!
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
add a comment |
Such a great question.
Background
Derivation paths are related to HD Wallets or HD Keys, a type of wallet where you have a single, human readable, seed phrase that unlocks a number of accounts / addresses / private keys across any supported network. These phrases typically look like brain surround have swap horror body response double fire dumb bring hazard
.
The technical specification for the most commonly used HD wallets are...
BIP-32 - HD wallets specification
BIP-39 - the mnemonic phrase / word list / etc. piece of this puzzle.
BIP-44 - the derivation path stuff / algorithms.
Typically you have a single private key (e.g. afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890
) which allows you to access your funds in it's matching address (e.g. 0x06A85356DCb5b307096726FB86A78c59D38e08ee
). This is a keypair.
With HD wallets you have a single seed phrase (e.g. brain surround have swap horror body response double fire dumb bring hazard
) which, via math and algorithms and code and stuff, derives multiple keypairs. An infinite number of keypairs.
Additionally, there is an insecure format of wallet known as a "brain wallet" where a person can use a single, human-readable phrase and, via math and algorithms and code and stuff, turns into a single keypair.
Okay, but wtf about derivation paths?
Brain wallets allow you to turn dogsarecool12
or brain surround have swap horror body response double fire dumb bring hazard
into a single private key which is then used to access your funds and sign your transactions.
For simplicity's sake, lets represent this as
seed phrase
=>private key
If I were to use catsarecool10
instead of dogsarecool12
as my phrase, I would get a different keypair, different address, different account.
HD wallets are similar, but each phrase has an infinite number of keypairs or accounts that it can access. Because, unlike brain wallets, it does more complex math. For simplicity's sake, let's represent this as
seed phrase
+XYZ
+🍎
+ABC
+&
+1
=>private key
If you change any one of those pieces, the private key that you get (or derive) is is going to be different, just as it was above with catsarecool10
vs dogsarecool12
. However, since all the coders follow the same rules, the pieces that get added to the seed phrase are consistent and allow users to access the same accounts across multiple products or blockchains.
These pieces are the "derviation path"
It's the
XYZ
+🍎
+ABC
+&
+1
part of it.
The actual derivation path pieces
Full path: m/44'/60'/0'/0'/0
What each number represents: m / purpose' / coin_type' / account' / change / address_index
m/
Probably just a random way to start a string so that coders can easily tell if something is a derivation path, not you starting to type "mommy".
44' (purpose)
This is always 44'
. However, if it were decided that there were a better evolution of the HD key system, you could change it to be 45'
so that, again, coders could tell the difference between an old system and a new system.
60' (coin type)
Which blockchain are you accessing? Each blockchain has a number that represents it. Bitcoin is 0
. Ethereum is 60
. Aion is 425
. When you create a new blockchain, you apply for an unused number. You can see all the chains and their numbers here: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
0' (account)
A number that starts at 0 and increases. A layer of separation or hierarchy. (more on that below)
0
(change)`
Sometimes used in Ethereum, sometimes not. Was created for Bitcoin originally which doesn't really have "accounts", it has "unspent transaction outputs". Basically you never send a part of your bitcoin holdings around—you send all your bitcoin to multiple addresses. If you have 0.75 BTC but only want to send me 0.5 BTC, you would send me 0.5 BTC and then send yourself 0.25 BTC. "Yourself" could be back to the original address or to another address you have access to (for example, the next address on the "list"). This number says "send whatever I don't want to send to my friend to the 10th address on my list. Or the 0th address on the list (aka the address I am sending from).
0' (index)
Another variable to get different accounts, etc.
Seperation and Hierarchy
Some of the variables above are based on external forces, like what chain I am on. Some are chosen by the user or the wallet software, like the change
variable. The account
and index
variables give me (or my wallet) more things to change.
For example, let's say I want to separate my personal ETH holdings from my company's ETH holdings. I could use m/44'/60'/0'/0'/0
for the company and m/44'/60'/1'/0'/0
for my personal.
But let's say I want to have different addresses for...
- my personal savings
- where I receive my paycheck each week
- when I personally getting paid back by friends
- displaying publicly on my personal github for donations
- all my personal school expenses
I could use m/44'/60'/1'/0'/0
for savings, m/44'/60'/1'/0'/1
for paychecks, m/44'/60'/1'/0'/2
for getting paid back by my friend, and so forth. I could also do the same with the company accounts. Yay!
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
add a comment |
Such a great question.
Background
Derivation paths are related to HD Wallets or HD Keys, a type of wallet where you have a single, human readable, seed phrase that unlocks a number of accounts / addresses / private keys across any supported network. These phrases typically look like brain surround have swap horror body response double fire dumb bring hazard
.
The technical specification for the most commonly used HD wallets are...
BIP-32 - HD wallets specification
BIP-39 - the mnemonic phrase / word list / etc. piece of this puzzle.
BIP-44 - the derivation path stuff / algorithms.
Typically you have a single private key (e.g. afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890
) which allows you to access your funds in it's matching address (e.g. 0x06A85356DCb5b307096726FB86A78c59D38e08ee
). This is a keypair.
With HD wallets you have a single seed phrase (e.g. brain surround have swap horror body response double fire dumb bring hazard
) which, via math and algorithms and code and stuff, derives multiple keypairs. An infinite number of keypairs.
Additionally, there is an insecure format of wallet known as a "brain wallet" where a person can use a single, human-readable phrase and, via math and algorithms and code and stuff, turns into a single keypair.
Okay, but wtf about derivation paths?
Brain wallets allow you to turn dogsarecool12
or brain surround have swap horror body response double fire dumb bring hazard
into a single private key which is then used to access your funds and sign your transactions.
For simplicity's sake, lets represent this as
seed phrase
=>private key
If I were to use catsarecool10
instead of dogsarecool12
as my phrase, I would get a different keypair, different address, different account.
HD wallets are similar, but each phrase has an infinite number of keypairs or accounts that it can access. Because, unlike brain wallets, it does more complex math. For simplicity's sake, let's represent this as
seed phrase
+XYZ
+🍎
+ABC
+&
+1
=>private key
If you change any one of those pieces, the private key that you get (or derive) is is going to be different, just as it was above with catsarecool10
vs dogsarecool12
. However, since all the coders follow the same rules, the pieces that get added to the seed phrase are consistent and allow users to access the same accounts across multiple products or blockchains.
These pieces are the "derviation path"
It's the
XYZ
+🍎
+ABC
+&
+1
part of it.
The actual derivation path pieces
Full path: m/44'/60'/0'/0'/0
What each number represents: m / purpose' / coin_type' / account' / change / address_index
m/
Probably just a random way to start a string so that coders can easily tell if something is a derivation path, not you starting to type "mommy".
44' (purpose)
This is always 44'
. However, if it were decided that there were a better evolution of the HD key system, you could change it to be 45'
so that, again, coders could tell the difference between an old system and a new system.
60' (coin type)
Which blockchain are you accessing? Each blockchain has a number that represents it. Bitcoin is 0
. Ethereum is 60
. Aion is 425
. When you create a new blockchain, you apply for an unused number. You can see all the chains and their numbers here: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
0' (account)
A number that starts at 0 and increases. A layer of separation or hierarchy. (more on that below)
0
(change)`
Sometimes used in Ethereum, sometimes not. Was created for Bitcoin originally which doesn't really have "accounts", it has "unspent transaction outputs". Basically you never send a part of your bitcoin holdings around—you send all your bitcoin to multiple addresses. If you have 0.75 BTC but only want to send me 0.5 BTC, you would send me 0.5 BTC and then send yourself 0.25 BTC. "Yourself" could be back to the original address or to another address you have access to (for example, the next address on the "list"). This number says "send whatever I don't want to send to my friend to the 10th address on my list. Or the 0th address on the list (aka the address I am sending from).
0' (index)
Another variable to get different accounts, etc.
Seperation and Hierarchy
Some of the variables above are based on external forces, like what chain I am on. Some are chosen by the user or the wallet software, like the change
variable. The account
and index
variables give me (or my wallet) more things to change.
For example, let's say I want to separate my personal ETH holdings from my company's ETH holdings. I could use m/44'/60'/0'/0'/0
for the company and m/44'/60'/1'/0'/0
for my personal.
But let's say I want to have different addresses for...
- my personal savings
- where I receive my paycheck each week
- when I personally getting paid back by friends
- displaying publicly on my personal github for donations
- all my personal school expenses
I could use m/44'/60'/1'/0'/0
for savings, m/44'/60'/1'/0'/1
for paychecks, m/44'/60'/1'/0'/2
for getting paid back by my friend, and so forth. I could also do the same with the company accounts. Yay!
Such a great question.
Background
Derivation paths are related to HD Wallets or HD Keys, a type of wallet where you have a single, human readable, seed phrase that unlocks a number of accounts / addresses / private keys across any supported network. These phrases typically look like brain surround have swap horror body response double fire dumb bring hazard
.
The technical specification for the most commonly used HD wallets are...
BIP-32 - HD wallets specification
BIP-39 - the mnemonic phrase / word list / etc. piece of this puzzle.
BIP-44 - the derivation path stuff / algorithms.
Typically you have a single private key (e.g. afdfd9c3d2095ef696594f6cedcae59e72dcd697e2a7521b1578140422a4f890
) which allows you to access your funds in it's matching address (e.g. 0x06A85356DCb5b307096726FB86A78c59D38e08ee
). This is a keypair.
With HD wallets you have a single seed phrase (e.g. brain surround have swap horror body response double fire dumb bring hazard
) which, via math and algorithms and code and stuff, derives multiple keypairs. An infinite number of keypairs.
Additionally, there is an insecure format of wallet known as a "brain wallet" where a person can use a single, human-readable phrase and, via math and algorithms and code and stuff, turns into a single keypair.
Okay, but wtf about derivation paths?
Brain wallets allow you to turn dogsarecool12
or brain surround have swap horror body response double fire dumb bring hazard
into a single private key which is then used to access your funds and sign your transactions.
For simplicity's sake, lets represent this as
seed phrase
=>private key
If I were to use catsarecool10
instead of dogsarecool12
as my phrase, I would get a different keypair, different address, different account.
HD wallets are similar, but each phrase has an infinite number of keypairs or accounts that it can access. Because, unlike brain wallets, it does more complex math. For simplicity's sake, let's represent this as
seed phrase
+XYZ
+🍎
+ABC
+&
+1
=>private key
If you change any one of those pieces, the private key that you get (or derive) is is going to be different, just as it was above with catsarecool10
vs dogsarecool12
. However, since all the coders follow the same rules, the pieces that get added to the seed phrase are consistent and allow users to access the same accounts across multiple products or blockchains.
These pieces are the "derviation path"
It's the
XYZ
+🍎
+ABC
+&
+1
part of it.
The actual derivation path pieces
Full path: m/44'/60'/0'/0'/0
What each number represents: m / purpose' / coin_type' / account' / change / address_index
m/
Probably just a random way to start a string so that coders can easily tell if something is a derivation path, not you starting to type "mommy".
44' (purpose)
This is always 44'
. However, if it were decided that there were a better evolution of the HD key system, you could change it to be 45'
so that, again, coders could tell the difference between an old system and a new system.
60' (coin type)
Which blockchain are you accessing? Each blockchain has a number that represents it. Bitcoin is 0
. Ethereum is 60
. Aion is 425
. When you create a new blockchain, you apply for an unused number. You can see all the chains and their numbers here: https://github.com/satoshilabs/slips/blob/master/slip-0044.md
0' (account)
A number that starts at 0 and increases. A layer of separation or hierarchy. (more on that below)
0
(change)`
Sometimes used in Ethereum, sometimes not. Was created for Bitcoin originally which doesn't really have "accounts", it has "unspent transaction outputs". Basically you never send a part of your bitcoin holdings around—you send all your bitcoin to multiple addresses. If you have 0.75 BTC but only want to send me 0.5 BTC, you would send me 0.5 BTC and then send yourself 0.25 BTC. "Yourself" could be back to the original address or to another address you have access to (for example, the next address on the "list"). This number says "send whatever I don't want to send to my friend to the 10th address on my list. Or the 0th address on the list (aka the address I am sending from).
0' (index)
Another variable to get different accounts, etc.
Seperation and Hierarchy
Some of the variables above are based on external forces, like what chain I am on. Some are chosen by the user or the wallet software, like the change
variable. The account
and index
variables give me (or my wallet) more things to change.
For example, let's say I want to separate my personal ETH holdings from my company's ETH holdings. I could use m/44'/60'/0'/0'/0
for the company and m/44'/60'/1'/0'/0
for my personal.
But let's say I want to have different addresses for...
- my personal savings
- where I receive my paycheck each week
- when I personally getting paid back by friends
- displaying publicly on my personal github for donations
- all my personal school expenses
I could use m/44'/60'/1'/0'/0
for savings, m/44'/60'/1'/0'/1
for paychecks, m/44'/60'/1'/0'/2
for getting paid back by my friend, and so forth. I could also do the same with the company accounts. Yay!
answered 16 hours ago
tayvanotayvano
12.2k43367
12.2k43367
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
add a comment |
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
What's with the usage of ' character in derivation paths?
– Mikko Ohtamaa
14 hours ago
add a comment |
vyap56 is a new contributor. Be nice, and check out our Code of Conduct.
vyap56 is a new contributor. Be nice, and check out our Code of Conduct.
vyap56 is a new contributor. Be nice, and check out our Code of Conduct.
vyap56 is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Ethereum Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f70017%2fcan-someone-explain-the-meaning-of-derivation-path-in-wallet-in-plain-english-s%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown