I am using Metamask for key storage in my dapp. My understanding is that the Metamask app injects a web3 object and handles all the signing functions where needed by itself. But Metamask currently provides support for chrome and firefox only (to my knowledge) and firefox plugin has some problems still (I get weird errors and plugin hangs up sometimes). I am not sure if there is android support either yet. So I want there to be alternative option to use either metamask or sign everything by asking user for key. I dont know how to the latter and if its possible to do both in same app.

3 Answers 3


If you follow the compatibility guidelines on developing for MetaMask, it's very likely that your dapp will also work correctly with MetaMask alternatives, such as Mist, Parity Browser, Toshi and SpaceSuit.

Asking users for a key is possible (EtherDelta give users this option, for example), but it's also a really bad habit to teach your users (EtherDelta got hacked a while back, and users who did this got their ether stolen).

An alternative is to make the interface to your smart contracts simple enough that calling the contracts directly (via something like MyEtherWallet, or Truffle console) is not too confusing.


Using metamask is just one way of doing it. You can also use MIST or any other wallet that supports web3. Though using metamask gets the job done quickly. If you can provide me some more detail of what exactly your app does then I can give you more specific solution.

  • I mean if I can easily do the signing process for the app without taking away the "decentraclized" mechanism. I am thinking about directly using infura instead of using metamask. I understand the usage of a deployed node that infura performs but the signing process is something I cant figure out. I dont want to store users' key.
    – lee huang
    Sep 25, 2017 at 12:10

This is what you need:


You could let the user with metamask still connect, OR let the user input private key theb inject this new web3 over.

I made mobile app and desktop app from a web app that use this code, work fluently.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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