walletpress/CONTRIBUTING.md

1.6 KiB

Contributing to WalletPress

WalletPress is open source (MIT). We welcome contributions of all kinds: bug fixes, new chain support, documentation, tests, and features.

Getting Started

git clone https://github.com/cryptorugmuncher/walletpress
cd walletpress/backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export WP_ADMIN_KEY=dev-key
export WP_VAULT_PASSWORD=dev-pass
uvicorn main:app --port 8010 --reload

Code Standards

  • Python 3.10+ with type hints
  • Follow existing patterns (FastAPI, Pydantic v2, asyncio)
  • One PR per feature. Small commits with conventional messages
  • Add tests for new chain support (see scripts/verify_test_vectors.py)
  • No hardcoded secrets, no telemetry, no third-party data sharing

Adding a Chain

  1. Add chain config in wallet_engine/chains.py
  2. Add generation method in wallet_engine/generator.py
  3. Add balance fetching in routers/balance_fetcher.py
  4. Add test vector in scripts/verify_test_vectors.py
  5. Add to supported_chains() in the WP plugin

Verification

All contributions must pass:

./venv/bin/python scripts/verify_test_vectors.py
# Output: "ALL BIP39 VECTORS VERIFIED"

PR Process

  1. Fork the repo
  2. Create a branch: feat/add-zcash-support
  3. Commit with conventional message: feat: add Zcash (ZEC) wallet generation
  4. Push and create PR
  5. Ensure CI passes (tests + format + type check)

Security

Report vulnerabilities to security@walletpress.cc, not via public issues. We respond within 48 hours.

License

By contributing, you agree your work is licensed under the MIT License.