Grin Wallet ツ
A user-friendly Grin client
Important: this wallet is dependent on Grin and is not yet ready for production (though it is close!). This warning will be removed when the production app is bundled and shipped.
Sending with Automatic File Downloads
Sending Grin—whether using http or transaction slates—can be a smooth experience. The wallet abstracts away extraneous details with reasonable defaults, presents you with JSON for copy/paste when needed, and automatically downloads slates.
Drag & Drop Receive
The app also handles automatic slate downloads and presents you with relevant transaction details.
Drag & Drop Finalize
Drop in transaction slates that are ready to be finalized. The wallet signs and broadcasts the transaction, downloads the finalized slate to your preferred path, and presents you with the finalized transaction.
One-click Transaction Cancellation
With IDEO design research in its DNA, this wallet was kicked off by talking with the people likely to comprise Grin's initial user base; this ranged from savvy cryptocurrency developers and GPU miners, to those who don't know the difference between a UTXO and UX. The wallet moved through several rounds of design and UX iteration to arrive at its design language and principles.
Grin is notably challenging for people to use (...often a property of alpha software, but mimblewimble has its own complexity). But when something is hard to use, people get nervous when taking any action—especially when those actions deal with money. This wallet softens the mimblewimble's unique edges to create moments of confidence and understanding when using this new technology.
The Digital Cash Metaphor
With its emission rate and community ethos, Grin is setting itself up to be digital cash. This wallet asks what is necessary when a wallet deals primarily with digital cash as the operative metaphor—explicitly not solving for the advanced and merchant use cases (perhaps in another wallet). The wallet subordinates extraneous data and functionality to the prmiary functions of sending, receiving, and managing pending transactions.
To maintain a minimal surface area and present one action in a given section, we abstract Grin's wallet information and actions into sensible areas that present themselves when needed.
- The engineering docs are a wip; more on the way.
- The app (obviously) has Grin as a dependency. As a result, smirk is almost ready for production, but not yet. There are some patches that need to land in Grin first.
- There will be a signed/bundled electron app build when the wallet ships, but you need to run locally for now
- The code is in its last legs of moving from prototype to production; reviewer beware ;)
The wallet is an Electron client that will be bundled into an app when it ships.
To run locally, follow the instructions below:
# install dependencies yarn # serve with hot reload at localhost:9080 yarn run dev # build electron application for production yarn run build # run unit & end-to-end tests yarn test # lint all JS/Vue component files in `src/` yarn run lint