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 using git commands.
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 using:
flutter run lib\main_prod.dart