Skip to main content

Secure BIP39 word viewer with masking and reveal functionality

Project description

SeedShield

A secure BIP39 seed phrase viewer with enterprise-grade security features, designed for safe interaction with cryptocurrency seed phrases. SeedShield emphasizes security and usability while maintaining zero data persistence.

Key Features

Security-First Design

  • Zero data persistence - all operations occur in volatile memory
  • Secure memory handling with automatic cleanup and sanitization
  • Advanced masking system with consistent pattern length
  • Timed reveal system with 3-second auto-mask
  • Intelligent clipboard management with automatic clearing
  • Comprehensive input validation and sanitization
  • Anti-keylogging protection via mouse-based interaction
  • Secure error handling with proper cleanup
  • TTY/non-TTY mode handling for secure input
  • Adaptive timeout mechanisms

User Interface

  • Interactive word reveal with hover functionality
  • Sequential phrase revelation mode
  • Multi-source input support (file/clipboard)
  • Responsive terminal interface
  • Cross-platform support (Windows/Linux/MacOS)
  • Dynamic scrolling for long word lists
  • Clear command feedback

Security Guidelines

Operating Environment

  • Use an air-gapped computer whenever possible
  • Run on a secure, clean operating system
    • Recommended: Live Linux distribution
    • Avoid shared or public computers
  • Maintain physical security awareness
    • Check for surveillance devices
    • Use privacy screens when necessary
  • Implement proper memory management
    • Clear system RAM after usage
    • Utilize secure memory wiping tools

Usage Best Practices

Input Management

  1. Prefer clipboard input for multiple words (use 'v' command)
  2. Clipboard contents are automatically cleared after use
  3. Double-check word positions before revelation
  4. All input is automatically validated and sanitized
  5. Invalid inputs are safely rejected

Word Revelation Protocol

  1. Use sequential reveal mode ('s' command) for systematic checking
  2. Utilize mouse hover for temporary word exposure
  3. Allow auto-masking timer to complete
  4. One word visible at a time for maximum security
  5. Use scroll navigation for longer lists

Installation

# Install via pip
pip install seedshield

# Install with development dependencies
pip install -e ".[test]"

# Using Docker
docker run -it --rm seedshield
docker run -it --rm -v $(pwd)/input.txt:/input.txt seedshield -i /input.txt

Usage Guide

Basic Commands

# Start interactive mode
seedshield

# Use custom wordlist
seedshield -w custom_words.txt

# Load from positions file
seedshield -i positions.txt

Interactive Controls

  • v - Import and validate clipboard data
  • n - New input mode
  • s - Sequential reveal mode
  • r - Reset current sequence
  • q - Safe exit with cleanup
  • Mouse hover - Temporary reveal (3s timeout)
  • ↑↓ Arrow keys - Scroll through lists

Development

Getting Started

# Clone repository
git clone https://github.com/Barlog951/SeedShield.git

# Setup development environment
cd seedshield
pip install -e ".[test]"

# Run test suite
pytest

Docker Build

Building from Source

# Clone the repository
git clone https://github.com/Barlog951/SeedShield.git
cd SeedShield

# Build local image
chmod +x build.sh
./build.sh

# Test run
docker run -it --rm seedshield --help

# Run with mounted input file
docker run -it --rm -v $(pwd)/input.txt:/input.txt seedshield -i /input.txt

# Run interactive mode
docker run -it --rm seedshield

Note: Built image contains minimal dependencies and runs as non-root user for security.

Technical Architecture

  • Python 3.6+ with type hints throughout the codebase
  • Comprehensive test suite (73% coverage) with security-focused tests
  • Platform-agnostic clipboard handling for cross-platform compatibility
  • Curses-based terminal interface with proper initialization and cleanup
  • Fully modular design with clean component separation
  • Adaptive handling for TTY and non-TTY environments
  • Secure memory operations with explicit cleanup

Code Organization

  • main.py - Entry point and argument handling
  • secure_word_interface.py - Core interface coordination
  • input_handler.py - Secure input processing and validation
  • display_handler.py - UI rendering and masking
  • state_handler.py - State management and security timeouts
  • ui_manager.py - Terminal UI abstraction layer
  • secure_memory.py - Secure memory handling functions
  • config.py - Configuration settings and constants
  • tests/ - Comprehensive test suite
  • data/ - Default wordlists

Security Philosophy

SeedShield implements a defense-in-depth approach:

  • Multiple independent security layers
  • Fail-secure design principles
  • Memory-safe operations
  • Input validation at all levels
  • Automatic security timeout mechanisms
  • No data persistence
  • Secure error handling

Legal Notice

Disclaimer

SeedShield provides secure seed phrase verification capabilities but should be used as part of a comprehensive security strategy. Users are responsible for implementing appropriate system-level security measures. While SeedShield incorporates robust security features, it should not be relied upon as a sole security measure.

License

Released under the MIT License. See the LICENSE file for complete terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seedshield-0.2.3.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seedshield-0.2.3-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file seedshield-0.2.3.tar.gz.

File metadata

  • Download URL: seedshield-0.2.3.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for seedshield-0.2.3.tar.gz
Algorithm Hash digest
SHA256 b2170eeac95b7e6122d08bb881203a6a48933f08c2ae9b827440f90d44161caa
MD5 2dafa4a5d84ed0baa3b8f5a7f589035a
BLAKE2b-256 561fc2bf54039d14f29dc80c5fc2f8daa23a078b2264367c9cdbcdc864103a0b

See more details on using hashes here.

File details

Details for the file seedshield-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: seedshield-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 29.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for seedshield-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 19a3e6ded2b7cd318e5c393dd78650e9b95489905e82d0dfc7eb812cb5e9f511
MD5 8d8dac30f5c105d71c3ed506650af6ad
BLAKE2b-256 7bbe6e29ad326a73a8cfeb9fb890a919bb3d22c3a48c8deb6f1b042e235768b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page