The Fuse Wallet is a cross platform Ethereum wallet written in Dart and built on Flutter. It's runninng on the Fuse network, but can be plugged into any EVM compatible blockchain.
The Fuse Wallet built upon the wallet-core SDK, which provides a set of API's for the Fuse platform and its auxiliary services. Those services include:
- The Fuse Network and the networks' smart contracts, via the web3dart package
- The graphql API (provided by theraph's node) provides a convenient API for reading from the network. More info about the API can be found here
- The relayer service for fee abstraction
- The fuse-studio backend API for business logic and data
- Redux for state management (https://pub.dev/packages/flutter_redux)
- Dio for fetching APIs (https://pub.dev/packages/dio)
- GetIt/Injectable for Dependecy Injection (DI) (https://pub.dev/packages/get_It and https://pub.dev/packages/injectable)
- auto_route for routing (https://pub.dev/packages/auto_route)
- Multi language support (i18n)(https://marketplace.visualstudio.com/items?itemName=localizely.flutter-intl)
- Logging using logger (lib/utils/log)
We developed and deployed a set of smart contracts, which the wallet interacts with:
- To avoid developing our own best practices and try to adhere to the indusry standarts we used Argent-contracts, that were taken from the popular wallet. These contracts are the core of wallet's logic on the Network. Using them, our users are sending free transactions (fee abstraction), have rate limits, and can use wallet recovery. More interesting features will be developed on their basis.
- Token contracts complying to ERC20 standard
- Community contracts to create a tied in interaction between users, businesses and other entities.
You can download the beta version of our app from the Google Play or the App Store
-
Set up a Flutter environment on your machine.
- You can get started here.
- Make sure to also create a keystore as described here.
-
Connect a phone or run a simulator.
-
Clone the project.
git clone https://github.com/fuseio/fuse-wallet.git cd fuse-wallet
- Make a copy of
.env_example
named.env
-cd environment && cp .env_example .env
-
For Android development, create a file at
./android/key.properties
, as described here, containing the keystore path and passwords, as set up earlier. -
Run the app.
flutter run
Launch your community on the Fuse Studio, then open the community dashboard. There you can configure it and customize your wallet app. When you done go to "White label wallet" and send an app invite link to yourself. Visit our docs to learn about the Fuse Studio.