Metamask derivation path

has anyone tried to send a PR to metamask repo to add derivation path for RSK when connecting to a hardware wallet? seems really easy do to so I guess has been done but they refused to merge?

2 Likes

We have indeed, this has been a feature that we’ve been asking the MetaMask team to implement for a very long time now; to no avail:

In terms of PRs, we put a gitcoin bounty on this:

Additionally, we tackled a related (but simpler) issue,
also putting a bounty on it:

The second one was successfully implemented:

… but as of now, 9 months later, it has yet to be merged.
(If you would like to push this issue forward, you could help by adding a comment on that Github PR, to push for higher prioritisation.)

3 Likes

Adding 1 more:

Here’s a post on the metamask support forum:

Please signal your support for this on that post too!

So there is in fact no PR pushed to the repo for custom derivation path? I see 3 applicants to the bounty but no PR. so not sure if there is a refusal or they just dont care to do it by themselves.
I might be interested in doing that but I see the bounty program is finished, also I need to confirm if the PR will be accepted or not.

also I see the gitcoin bounty is to add derivation path in the custom network section which is ideal, but I was referring to something even easier which is add derivation path options when you try to connect a hardware wallet. when you do that, metamask shows you a dropdown with some derivation paths options to choose but no RSK option is available.

If I’m not wrong, this might do it:

diff --git a/ui/pages/create-account/connect-hardware/index.js b/ui/pages/create-account/connect-hardware/index.js
index 0e784c7c5..87268201a 100644
--- a/ui/pages/create-account/connect-hardware/index.js
+++ b/ui/pages/create-account/connect-hardware/index.js
@@ -23,10 +23,15 @@ const U2F_ERROR = 'U2F';
 const LEDGER_LIVE_PATH = `m/44'/60'/0'/0/0`;
 const MEW_PATH = `m/44'/60'/0'`;
 const BIP44_PATH = `m/44'/60'/0'/0`;
+const RSKIP57_PATH = `m/44'/137'/0'/0`;
+const RSKIP57_TESNET_PATH = `m/44'/37310'/0'/0`;
+
 const LEDGER_HD_PATHS = [
   { name: 'Ledger Live', value: LEDGER_LIVE_PATH },
   { name: 'Legacy (MEW / MyCrypto)', value: MEW_PATH },
   { name: `BIP44 Standard (e.g. MetaMask, Trezor)`, value: BIP44_PATH },
+  { name: `RSK Mainnet`, value: RSKIP57_PATH },
+  { name: `RSK Testnet`, value: RSKIP57_TESTNET_PATH },
 ];
 
 const LATTICE_STANDARD_BIP44_PATH = `m/44'/60'/0'/0/x`;
@@ -48,6 +53,8 @@ const TREZOR_TESTNET_PATH = `m/44'/1'/0'/0`;
 const TREZOR_HD_PATHS = [
   { name: `BIP44 Standard (e.g. MetaMask, Trezor)`, value: BIP44_PATH },
   { name: `Trezor Testnets`, value: TREZOR_TESTNET_PATH },
+  { name: `RSK Mainnet`, value: RSKIP57_PATH },
+  { name: `RSK Testnet`, value: RSKIP57_TESTNET_PATH },
 ];

so this works only for wallets created using HW. if you dont create a wallet with a HW you are still using the ethereum hardcoded derivation path

2 Likes

The bounty (with 3 applicatns and no submission) is no longer open, unfortunately,
but you can still submit a PR to MetaMask in github regardless!

If I’m not wrong, this might do it:

I’d encourage you to do so with the patch you have above!

1 Like

The bounty (with 3 applicatns and no submission) is no longer open, unfortunately,
but you can still submit a PR to MetaMask in github regardless!

I dont have enough free time to do it for free. but yes I will try to submit this patch and see what happens.
thanks

2 Likes

hey @bguiz have you seen this? Configurable derivation path for custom RPCs - #9 by barbara - Feature Requests / Ideas - MetaMask

Yes indeed, we have actually started exploring metamask snaps, and have a WIP implementation. More news (if successful).

1 Like

Hi @alex,
We are working on snaps implementation and after security approval we are planning to publish rsksnap as a npm package and an example app that interacts with the snap soon.

3 Likes

hi @bguiz @7alip , any news on this? if not, can I help? I’m a software developer and I’m really interested on this

1 Like

it has been a month since my last post. Is this people still working for RSK?

@gino.osahon any idea?

@SergioDemianLerner ?

Hi alex, checking on the status of this project for you.

Hi @alex, the PoC is finished but the repository is still private. If you share your github user, I can grant you reading access.