The Fuse wallet was under development for the most part of 2019, the first version we released was a good chance for us to learn about how users interact with tokens and how we can make the experience of paying with the wallet, completely frictionless. In this version we implemented a new architecture that allows us to take the wallet to the next step.
The wallet was designed to be wrapped around any ERC-20 token and give the ability to make it usable for a mainstream audience. The main piece of the puzzle is the user account, every new user that onboards gets a proxy contract deployed on his behalf. This allows the user to have better control over his funds, in the future switching his phone or restoring access to his funds would be a much better experience. We are using Argent contracts behind the scenes to achieve interoperability with other wallets and standardization in the way private keys are managed by users.
Smart Contract user accounts
Proxy wallets also help us improving usability by implementing fee abstraction, when the user makes a transaction his fees are covered by the operator of the wallet (after configuring a community using the Studio- studio.fuse.io)
The Fuse wallet is connected to the phones contacts and lets you send assets to users on your phone list. If your friend doesn’t have an account we will create a contract that will hold the funds in escrow until the user redeems it. The goal of the wallet is create the best experience for payments and for that end we are identifying users using their phone numbers. All other private information is stored locally on the devices and backed-up using IPFS (decentralized storage, we use 3box.io — read more here)
Flutter & Walletcore
This is the first Ethereum wallet built in Flutter which is a new cross platform development technology from Google. It was released from Beta in the beginning of 2019 and gaining popularity lately. Flutter allows native like experience on Android and iOS and fast rendering even with older phones. Our choice to use Flutter was due to the fact we looked to provide an native experience for our users and 100% code reuse for both platforms. It was important to provide developers on Fuse one codebase for iOS and Android (and in the future also desktop support) where they can have full control and the lowest learning curve. We chose Flutter over React native for it’s simplicity and for meeting the requirements above.
All the interactions with Ethereum and the Fuse network are being conducted trough the Walletcore library that was separated to to a stand-alone repository. This lets other Fuse and other wallet developers that build using Flutter, an easy way to access all the functionalities like querying the blockchain and signing transactions. Walletcore also connects to the Fuse graph and helps access blockchain data fast and easy. For more info go to our documentation on Github: https://github.com/fuseio/fuse-wallet
Coming next in the next updates will be new features that leverage our brand new infrastructure — so stay tuned!
Download Fuse wallet for iOS
Download Fuse wallet for Android