MetaMask / MetaMask/metamask-extension

Third Party Wallet Integration

Open
#6,054 8 comments 2 reactions 0 assignees View on GitHub
area-contractAccounts area-integration T08-featureRequest
Dominant language
TypeScript
Stars
13.2k
Forks
5.6k
Avg merge
2d 5h
Merged PRs (30d)
451

Description

**TL;DR**: I have a [smart contract](https://github.com/Zoltu/recoverable-wallet/blob/master/contracts/recoverable-wallet.sol#L79-L144) for holding funds (think of it like a multisig wallet). I would like to integrate it into MetaMask. What would the process look like for first getting approval for integration, then actually going about integrating. Assume that I'm willing to do the engineering work, but I don't want to do all of the work first only to have a PR rejected because it doesn't fit into the MM roadmap or something

----

A while back I wrote a wallet that was designed to be a hot wallet secured by a Ledger that had no recovery phrase written down. The idea is that if the ledger is damaged/lost, ownership of the smart contract can be recovered via a _lengthy_ process, but as long as the ledger is functional/accessible the wallet is secured by it. The idea here is to solve the problem of "how do I securely store my recovery seed" by making the answer be, "you burn it with fire as soon as the Ledger is setup". In the wrench scenario, you merely need to give the attacker 3 wrong pin codes which will result in the ledger self destructing and the lengthy recovery process beginning (which can be secured by some form of cold storage like family member m of n multisig or a backup ledger in a bank vault). The code can be found at https://github.com/Zoltu/recoverable-wallet/blob/8ec801f15919bd04c59070a4a871f1d17cda04f9/contracts/recoverable-wallet.sol#L79-L144

The problem with it is (assuming I finish the CONSIDER on line 143) that the only way to interact with a dapp is by manually authoring a transaction and then signing it by hand with a tool like MEW or MyCrypto. The contract would become _far_ more useful if it was integrated into a browser extension where the extension would convert any transaction the dapp requested signing for into a transaction that routes through the Recoverable Wallet contract.

One option would be for me to write my own browser extension. However, it would make more sense (ignoring coordination costs and risk for a moment) if it was instead integrated into MetaMask. Then instead of having two plugins that serve different target audiences, there was a single extension (MetaMask) that served both.

Contributor guide

Open the contributing guide

Research direction

Start with contracts/recoverable-wallet.sol at lines 79-144 and review the proposed transaction-routing behavior for MetaMask. The issue first requires a decision about integration scope and roadmap fit; done would mean an agreed integration path and acceptance criteria, rather than only reviewing the wallet contract.

Written by the indexing model from the issue text.

Assessment

Tech stack
solidity
Domain
blockchain, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.