Metamask is quite complex for non-crypto savvy users, and lately it was very unreliable(two reverts last week).

What potential options do we have to decouple our dependency from metamask? I was thinking of few:

  • create new eth account for user and store privatekey of user encrypted in centralized db and sign transactions on his behalf(not decentralized)
  • user pastes his privatekey into browser to sign transactions (very insecure)

Is there anything else at the moment in development or is waiting for integrated wallet only option to make using erc20 or eth seamless?

  • What do you mean when you say "two reverts last week"? Reverts don't have anything to do with Metamask, it's the contracts that's being interacted with or the data sent to Metamask to sign.
    – natewelch_
    Oct 10, 2018 at 17:02
  • @flygoing it’s very unreliable.
    – sensei
    Oct 10, 2018 at 17:38
  • I don't have any issues with Metamask. What issues are you having that would be caused by Metamask?
    – natewelch_
    Oct 10, 2018 at 17:48
  • @flygoing you don’t use it enough. I am using it daily in development, and it’s buggy in some scenarios.
    – sensei
    Oct 10, 2018 at 17:50
  • I am also using it daily in both development and real usage scenarios. If you're getting a revert, that's not Metamask's fault, that's the contract's fault or the dApp that's passing in bad data.
    – natewelch_
    Oct 10, 2018 at 17:55

2 Answers 2


One option few developers of keystores or wallets seem to not consider initially is multi-signature options.

Multi-signature wallet schemes can alleviate much of the risk or an accounts service, and have it behave much more like traditional online-banking.

It involves using both of the approaches you mentioned, along with an oracle service.

The service you would be developing would co-ordinate accounts for your users by:

  • the storing of a service key registered to your user's account on your server
  • assisting a user in managing their key on the client only
  • adding a trusted 3rd party oracle service (something like Bitgo)
  • putting all account logic in smart contracts to ensure security and usability (similar to Parity)

Possible options:

  • You can continue using Metamask but avoid your users the pain of setting up the browser plugin by integrating it directly into your website. For example using https://github.com/MetaMask/mascara . There are certainly some security concerns with this one too.

  • You can also take the approach of https://akasha.world/ and pack geth itself in a desktop app, and be at the same time your app and a wallet. It's heavy but totally decentralized. It doesn't even use Infura.

  • You can release your app for mobile first. Many mobile wallets are also dapp browsers that implement web3 and their UI is more user friendly than Metamask as of now.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.