A browser based wallet or UI

Web browsers are our main window to the internet and as a result, there is much support for UI building available. In terms of current wallets, we have Grin Wallet, Grin++, Grim and Grin GUI (WIP), all of which are desktop/console based.

A few questions:

  1. What would need to be considered to create a browser based wallet?
  2. Has one been considered before?
  3. Is a browser-based interface to Grin Wallet via its API possible/practical?

One consideration for a browser based wallet is the storing of private keys. It seems that existing browser wallets do that but I have heard of Metamask wallets being emptied before. Not sure if that’s still a thing. A mitigation would be hardware wallet integration although that can be a challenge for non-technicals to use.

I like the idea of using a browser to interface to Grin-Wallet (if possible) the most.

2 Likes

I think this is a really excellent idea! First of all, we need to have a Grin browser wallet plugin. When we are browsing a certain webpage and the webpage requests to connect to the Grin wallet plugin, and when a payment is needed, we click the payment tab on that webpage. Then, a payment confirmation button will pop up in the webpage wallet. After we click confirm, the wallet plugin can automatically interact with the webpage without us having to confirm it again. In this way, it solves the troublesome process of the secondary confirmation required by ordinary desktop wallets. It will be as easy to use as the MetaMask wallet! This will play a significant and promoting role in the popularization of Grin!

2 Likes

There was some work from @transatoshi on this front forking a web wallet from MimbleWimble coin.

2 Likes

Make sure grin-wallet will compile under WASM, but it will have no Tor and no integrated node.

egui works in browser so there is a chance we can adopt Grim for browser in the future:
https://egui.rs/

3 Likes

not client-side sadly

There’s the MWC web wallet which is self-custodial and works with Grin, Epic Cash, and MimbleWimble Coin. https://mwcwallet.com?Override+Wallet+Type=Grin

It works on desktop and mobile, and it has support for Ledger and Trezor hardware wallets when accessed via web browsers that implement WebUSB or Web Bluetooth.

It’s also available as a browser extension for Chrome, Firefox and Safari which has the added ability of allowing websites to open the wallet to prompt the user to approve sending a payment. https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension

8 Likes

That’s fantastic! Thanks for pointing that out @NicolasFlamel and I hope you’re well. I think more focus should be placed on this. I wonder if any of the Grin community are using hardware wallets. I suppose it could be overkill if you only have a few hundred dollars worth. I still think it should be highlighted. It would be nice to see how the browser extension works on a real site. Is there a demo anywhere?

1 Like

I found his demo on X.

1 Like

Even though you already found one, here’s another short clip of the browser extension API in action for anyone else who’s curious. A website’s able to open the wallet prompting the user to send a payment with the recipient address and amount fields already filled in.

MWC Wallet Browser Extension API Demo

6 Likes

I have been a user of this wallet with a Trezor for over a year, and I love it so much that I forked it and modified the HTML/CSS to remove the Mimblewimblecoin logos and colors and to make it look like how a Grin version would.

4 Likes

Nice! Can you post a screenshot please?

Here is what my version which is in the ‘Releases’ section looks like. If you want to compile it manually, it will be MWC themed. The only feature it is lacking is synchronous transactions with other Grin wallets, if you like using slatepacks though it uses files for that.


2 Likes