What is Slip-48 and How to Use it With Ledger Nano S

What is Slip-48 and How to Use it With Ledger Nano S

image credit @doze

What are BIPs?


To understand SLIPs, we should first take a look at what BIPs are. BIPs, or Bitcoin Improvement Proposals, are design documents that introduce and explain a new feature or protocol change to the Bitcoin source. They should have a concise technical overview and, in many cases, need to get approval and buy-in from the community to become standard.

Satoshi Labs Improvement Proposals


Satoshi Labs Improvement Proposals (or SLIPs) are extensions, or specific implementations, of features detailed in the various BIPs. The SLIP we are interested in today is SLIP-48.

SLIP-48 describes a specific implementation of BIP-44 that works with Graphene based blockchains. Graphene based chains use an account that has several types of roles or permissions instead of just a single private key.

So what does this mean for users of the Ledger Nano S on Hive? Well, depending on the library of frontend you use, you may never have to deal with this information at all. However, if you are an advanced user that is ready to get started with using the Ledger Nano S on Hive today, you may get some benefit from this post.

When we use the Ledger Nano S hardware wallet, we have to specify a certain path to use to derive the key from. The path looks like 48'/13'/0'/0'/0'. These numbers all represent something:

48' - this means we are using SLIP-48 key hierarchy
13' - this means we are connecting to the Hive network
0' - this means we want an `owner` level key
0' - this means we want to use the first account index
0' - this means we want to use the first key index

The first two are pretty self explanatory ... 48'/13' means use SLIP-48 for the Hive network.

Since Hive accounts have an owner, active, posting, and memo role, we need to specify which we one we are using. In this case, 0' is for owner.

As this is the first account we setting up with Hive + Ledger, and we have never used any keys before, we will finish with 0'/0'. This means to use the first account index and the first key index on the device. If you want to change your accounts key, you would use 0'/1' next time. If you want to change them again, 0'/2'.

Now, if you want to configure another account, you would increment the account index. For instance, the full path might look like 48'/13'/0'/1'/0'. This means I want to use SLIP-48 on Hive, get an owner key for the second account on the Ledger Nano S and the first key for that account.

Again, depending on the frontend or library you are using, a lot of this information may be abstracted away from the user. Personally, I think it is a good idea to always know what path you have assigned to what account. There is ABSOLUTELY NO RISK in keeping this data on your computer. For instance, a "password" file might look like:

netuoso - owner - 48'/13'/0'/0'/0'
netuoso - active - 48'/13'/1'/0'/0'
nettybot - owner - 48'/13'/0'/1'/0'
anotheraccount - owner - 48'/13'/0'/2'/0' ( old password to be used for recovery )
anotheraccount - owner - 48'/13'/0'/2'/1' ( current password )

See how in this list I can always see what path relates to the specific account+permission? But without physical access to your Ledger Nano S and knowledge of your hardware wallet PIN number, these paths can be shared publicly and no one can ever get your keys.

More to Come

As time goes on, Ledger Nano S support on Hive will improve and likely be integrated into most, or all, of the popular Hive services you use today and in the future. If this is all too much tech lingo for you don't worry, keep your eyes open for the Hive Ledger Nano S application to be listed on Ledger Live for a SUPER simple installation!

BIG shoutout to @holger80 for getting the Hive network address reserved in SLIP-48 so I could use it with the Ledger Nano S Hive application!

3 columns
2 columns
1 column