It is my understanding that Metamask brings a convenient way for the user to interact with DApps by storing their wallets and by providing an interface that gives the user control of what the DApp is doing. Is this correct?

If the user does not mind at all inserting the wallet address and password, and they fully trust the app, is there any reason to use Metamask? Web3.js allows doing everything that Metamask does in the browser as well, right?

  • MetaMask now monitors users' IP addresses. If you substitute Metamask with web3.js to carry out all the same functions for your wallet, does web3.js also use surveillance on its users?
    – user610620
    Commented Jan 1, 2023 at 12:13

3 Answers 3


For your first question, you are absolutely right. There are more other features of metamask please dig it.
Ok now from the side of web3js we can do alot of wallet related work.


The web3.eth.accounts contains functions to generate Ethereum accounts and sign transactions and data. please see other function related to account.

You can create in memory wallet from web3js

web3.eth.accounts.wallet - Contains an in memory wallet with multiple accounts. These accounts can be used when using web3.eth.sendTransaction().

Now the point is, You can create your own wallet using web3js library. You don't need metamask to

Generate account
deploy contract
Call contract
sign Transaction


You are right to say that you can use web3 to build anything instead of Metamask.And you may not know the advantages of meta-mask in addition to using as a wallet:

  • Unlock MyEtherWallet.com quick, click open
  • When you visit fake sites, it will show a red alert
  • Anti-stealing login key

Since you are a developer, you are only interested in logging into ethereum wallet and offering functionality. But users need an easy experience on the Dapp system. I think Metamask did it very well. Vitalik Buterin once said that one of the big challenges of Ethereum is the limited user experience, so you should keep in mind when developing your app.


Correct. But that would defeat the point of using a decentralized, trustless application.

  • What is the difference between running Web3.js in the browser and using Metamask? Commented Jul 20, 2018 at 16:35
  • 2
    Metamask does all the signing of transactions, without exposing the user's private key to the website
    – Henk
    Commented Jul 20, 2018 at 16:40

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.