Updated 60 days ago

Maci Keychain

Decoupling the relation between the user wallet and user's MACI key

  • Crypto / Web3
  • ZK
  • Privacy
  • DeGov
  • Mobile

MACI KeyChain

Welcome to the MACI Keychain App, a key management system for MACI (Minimal Anti-Collusion Infrastructure) keys and other edDSA keys (WIP). This app is designed to securely manage, store, and utilize cryptographic keys for various MACI contracts and polls.

Table of Contents

Features

  • Securely manage multiple cryptographic keys.
  • Derive specific keys for different MACI contracts and polls.
  • Seamless integration with websites using a QR code and WebSocket connection.
  • End-to-end encryption for all communications between the app and connected websites. (WIP)
  • Backup keys securely to iCloud and Google Cloud. (WIP)

Installation

To run this app locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/yashgo0018/maci-key-manager-app.git
    cd maci-key-manager-app
    
  2. Install dependencies:

    Ensure you have Node.js installed.

    npm install
    
  3. Start the Expo app:

    npx expo start
    
  4. Run the app on your device:

    You can use the Expo Go app on your Android or iOS device to scan the QR code generated by the Expo CLI.

Usage

  1. Register and manage keys:

    • Manage multiple keys, rename them for specific MACI contracts (WIP), and derive keys for different polls.
  2. Connect to a website:

    • Visit a MACI-enabled website that supports the MACI Keychain.
    • Select the key wallet option and scan the QR code with the MACI Keychain app.
    • Confirm the connection and perform actions like voting securely from your mobile device.

Repositories

This project is divided into several repositories:

  1. MACI KeyChain Server: GitHub Link
  2. Demo Webapp (MACI Wrapper Based Implementation): GitHub Link
  3. Keychain Application: GitHub Link
  4. Deployment Scripts: GitHub Link

Contributing

We welcome contributions to the MACI Keychain App. If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature/YourFeature
  3. Commit your changes: git commit -m 'Add some feature'
  4. Push to the branch: git push origin feature/YourFeature
  5. Open a pull request.

Thank you for using the MACI Keychain App! If you have any questions or need further assistance, please feel free to open an issue in the repository.