Skip to content

italoag/bloco-wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

180 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ” BLOCO | Wallet Manager

Latest Release Stars Forks License: MIT
Downloads

SonarQube Quality Analysis

Quality Gate Status Coverage Duplicated Lines (%) Lines of Code Reliability Rating Maintainability Rating Security Rating Bugs Code Smells Technical Debt Vulnerabilities

Table of Contents

Introduction

BLOCO Wallet Manager is a command-line interface (CLI) application designed to manage cryptocurrency wallets compatible with the Ethereum network and adhering to the KeyStoreV3 standard. Developed in GoLang, BLOCO provides a Terminal User Interface (TUI) for seamless wallet management. Future integrations will include external vaults such as Hashicorp Vault, Amazon KMS, Cloud HSM, and Azure Key Vault.

Features

  • Wallet Management

    • Create new wallets compatible with Ethereum.
    • Import wallets using Mnemonics.
    • Import KeyStoreV3 wallets with any file extension or no extension.
    • Enhanced keystore import with multi-file selection and batch processing:
      • Multi-file selection with checkbox interface
      • Directory selection for batch import
      • Automatic password file detection (.pwd files)
      • Interactive file picker with keyboard navigation
      • JSON file filtering for keystore files
    • Export wallets in KeyStoreV3 format.
    • Delete, block, and unblock wallet addresses.
    • List all managed wallets.
  • Security

    • Compatibility with KeyStoreV3 for secure key storage.
    • Planned integration with external vaults:
      • Hashicorp Vault
      • Amazon KMS
      • Cloud HSM
      • Azure Key Vault
  • Configuration Management

    • Robust configuration file handling with atomic operations
    • Automatic backup and restore capabilities
    • Network configuration with proper TOML formatting
    • Safe editing of configuration files
  • Balance Inquiry

    • Query the balance of Ethereum-compatible wallets.
  • Extensibility

    • Support for additional blockchain networks (future).
    • Support for multiple cryptographic curves and signature algorithms:
      • Curves: secp256k1, secp256r1, ed25519
      • Algorithms: ECDSA, EdDSA

Installation

Ensure you have Go installed on your system.

git clone https://github.com/italoag/bloco-wallet.git
cd bloco-wallet
go build -o bloco-wallet

Move the executable to a directory in your PATH for easy access:

mv bloco-wallet /usr/local/bin/

Usage

Run the BLOCO Wallet using the terminal:

bloco-wallet

Navigate through the TUI to manage your wallets. Available commands include:

  • Create Wallet: Initialize a new Ethereum-compatible wallet.
  • Import Wallet: Import existing wallets using Mnemonics or KeyStore files.
  • Enhanced Keystore Import:
    • Select multiple keystore files or entire directories
    • Automatic detection of password files (.pwd)
    • Interactive file picker with keyboard navigation
    • Batch processing with progress tracking
  • List Wallets: Display all managed wallets.

Enhanced Import Workflow

The enhanced keystore import feature provides an intuitive file selection interface:

  1. File Selection: Use the enhanced file picker to navigate directories and select keystore files
  2. Multi-Selection: Select multiple files using the space bar or entire directories
  3. Password Detection: Automatically detects corresponding .pwd files for seamless import
  4. Password Input: Secure modal popup for manual password entry when needed
  5. Batch Processing: Import multiple keystores in a single operation with progress tracking

Key Bindings for File Picker:

  • ↑/↓ or j/k: Navigate files
  • Space: Toggle file selection
  • Enter: Open directory or confirm selection
  • Tab: Confirm final selection
  • Ctrl+A: Select all files
  • Ctrl+C: Clear selection
  • Esc: Go back or cancel

Password Input Features:

  • Secure Input: Password masking with bullet characters for security
  • Error Handling: Clear error messages with retry mechanism
  • Skip Option: Ability to skip individual files during batch import
  • Retry Limits: Configurable maximum attempts to prevent brute force
  • Key Bindings: Enter to confirm, Esc to cancel, Ctrl+S to skip file

Import Progress Tracking:

  • Real-time Progress: Animated progress bar with percentage completion
  • Current File Display: Shows which keystore is currently being processed
  • Error Categorization: Distinguishes between failed imports and skipped files
  • Pause/Resume: Progress pauses during password input and resumes automatically
  • Completion Summary: Detailed statistics including success/failure/skip counts and timing
  • Error History: Tracks and displays recent errors with context
  • Visual Status: Clear indicators for importing, paused, and completed states

Roadmap

Upcoming Features:

  • Vault Integrations:

    • Hashicorp Vault
    • Amazon KMS
    • Cloud HSM
    • Azure Key Vault
  • Multi-Network Support:

    • Integration with additional blockchain networks.
  • Advanced Cryptography:

    • Support for secp256r1 and ed25519 curves.
    • Implementation of ECDSA and EdDSA signature algorithms.
  • Enhanced Security Features:

    • Import Wallet: Import existing wallets using private keys.
    • Two-factor authentication for wallet access.
    • Multi-signature wallet support.
  • User Experience Improvements:

    • Enhanced TUI with more intuitive navigation.
    • Detailed transaction histories and analytics.
    • Delete an account address.
    • Delete Wallet: Remove a wallet from the manager.
    • Block/Unblock Wallet: Temporarily disable or enable a wallet address.
    • Check Balance: View the balance of a selected wallet.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Commit your changes with clear messages.
  4. Submit a pull request detailing your changes.

License

This project is licensed under the MIT License.

About

Ethereum Wallet Manager and Monitoring

Topics

Resources

License

Code of conduct

Security policy

Stars

2 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors