Skip to content

A comprehensive Flutter library for seamlessly managing blockchain wallets, supporting both EOA (External Owned Account) and Polygon VC (Verifiable Credential), tailored for robust security and user-friendly interfaces.

License

Notifications You must be signed in to change notification settings

IsinBlockchainTeam/flutter_isin_blockchain_wallet_manager

Repository files navigation

Contributors Forks Stargazers Issues MIT License


Logo

flutter_isin_blockchain_wallet_manager

A comprehensive Flutter library for seamlessly managing blockchain wallets, supporting both EOA (External Owned Account) and Polygon VC (Verifiable Credential), tailored for robust security and user-friendly interfaces.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

animated

The flutter-blockchain-wallet-manager is an innovative Flutter library designed to facilitate the management of blockchain wallets, including both Externally Owned Accounts (EOA) and Verifiable Credentials (VC). This project aims to bridge the gap between complex blockchain operations and the user-friendly mobile environment Flutter is known for.

Key Features:

  • Multi-Account Management: Easily handle multiple wallet types, including EOAs and VCs, within a single integrated framework.
  • Security First: Built with security as a core principle, ensuring that all wallet interactions are safe from vulnerabilities.
  • Cross-Platform Compatibility: Leverages Flutter's cross-platform capabilities to deliver a consistent experience on both iOS and Android.
  • Open Source: As an open-source project, we encourage the community to contribute, suggest improvements, and help us extend the library's capabilities.

Our main goal is to simplify the integration of blockchain technologies in mobile applications, making it accessible to developers without extensive blockchain experience. We focus on providing a robust, secure, and easy-to-use platform for managing digital identities and assets through blockchain wallets.

(back to top)

Built With

This library is built mainly using the following technologies:

Flutter

Dart

(back to top)

Specifications

The project specifications are as follows:

  • EOA Wallet are based on the EVM (Ethereum Virtual Machine) and are compatible with the Ethereum network and forks. We decided to use 12 words for the seed phrase and the BIP-39 standard for the wallet creation.
  • The private key is stored in the device's secure storage, and the wallet is encrypted with the user's PIN.
  • We decided to use the Polygon ID platform for the VC (Verifiable Credential) implementation.
  • When using both EOA and VC wallets together, the EOA secret phrase allows to recover also the VC wallet.

(back to top)

Getting Started

To get started with the flutter-blockchain-wallet-manager, please refer to our setup guide and installation instructions in the documentation section. We provide step-by-step guidelines to help you integrate the library into your Flutter projects effectively.

Prerequisites

Before diving into the flutter-blockchain-wallet-manager, ensure you have the necessary environment and tools set up as listed below.

Installation

Follow these steps to seamlessly incorporate the flutter-blockchain-wallet-manager into your development environment.

  1. Clone the repo
    git clone https://github.com/IsinBlockchainTeam/flutter_isin_blockchain_wallet_manager.git
  2. Install PUB packages
    flutter pub get

(back to top)

Usage

Getting started with the flutter-blockchain-wallet-manager is straightforward. Follow these steps to integrate the wallet management functionality into your Flutter app.

  1. Add the following statement to your pubspec.yaml file:

    dependencies:
     flutter_isin_blockchain_wallet_manager:
       git:
         url: https://github.com/IsinBlockchainTeam/flutter_isin_blockchain_wallet_manager.git
         ref: main
  2. Import the library

    import 'package:flutter_isin_blockchain_wallet_manager/<component>.dart';
  3. Wrap your app with RestartWidget

    return const RestartWidget(
       child: MyApp(),
     );
  4. Initialize the app with the wallet manager

    return MaterialApp(
       title: 'Flutter Demo',
       theme: ThemeData(
         colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
         useMaterial3: true,
       ),
       home: EoaWalletMain(
         targetView: VCWalletMain(
           targetView: const HomePageView(),
           requiresPinScreen: false,
         ),
       ),
     );
  5. Setup PolygonID

    final PolygonID polygonID = PolygonID(
       chainID: 137,
       chainName: 'Polygon',
       rpcUrl: 'https://rpc-mainnet.maticvigil.com',
       explorerUrl: 'https://explorer-mainnet.maticvigil.com',
       chainToken: 'MATIC',
       chainTokenSymbol: 'MATIC',
       chainTokenDecimals: 18,
       chainTokenExplorerUrl: 'https://explorer-mainnet.maticvigil.com/tokens',
     );
  6. Instantiate Wallet Services

     final WalletService walletService = WalletService();
     final VCWalletService vcWalletService = VCWalletService(PolygonIdSdk.I);
  7. Get Wallets data

     final String? eoaWalletPrivateKey = await walletService.readPrivateKey();
     final String? vcPrivateKey = await vcWalletService.readPrivateKey();

For more detailed information, please refer to the Example section.

If you want to have more information about the PolygondID, please refer to the PolygonID

(back to top)

Roadmap

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Project Link: flutter_isin_blockchain_wallet_manager

Organization Link: IsinBlockchainTeam

(back to top)

Acknowledgments

Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!

(back to top)

About

A comprehensive Flutter library for seamlessly managing blockchain wallets, supporting both EOA (External Owned Account) and Polygon VC (Verifiable Credential), tailored for robust security and user-friendly interfaces.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages