WalletPress — Python backend (FastAPI) + WordPress plugin. Wallet engine, x402 service, chain vault, hosting. CLI for wallet management. Production-grade wallet-as-a-service.
Find a file
Rug Munch Media LLC 40bfb4c6b0
fix(wallet_engine): WP-040..WP-058 — fix 18 broken address generators
WalletPress claimed to support 55 chains but ~18 of them produced
addresses no explorer would recognize. This was the worst kind of bug
for a crypto wallet product — silent, undetectable to users, and
direct route to lost funds.

This commit adds:

- wallet_engine/chain_addresses.py (NEW, 433 lines)
  Per-chain address encoders using official SDKs / specs:
  - bech32 for Cosmos family (atom/osmo/juno/sei/inj/evmos)
  - stellar-sdk for Stellar (XLM, base32 + CRC16-XMODEM)
  - xrpl-py for XRP (custom base58 alphabet, rpshnaf...)
  - manual tz1 watermark impl for Tezos (XTZ, [0x06, 0xA1, 0x9F])
  - manual workchain+CRC16 impl for TON (v4r2, 48 base64url chars)
  - blake2b-40 base32 impl for Nano (nano_+60 chars)
  - f1 + blake2b base32 impl for Filecoin
  - SHA-512/256 checksum for Algorand (NOT full SHA-512 — easy to
    get wrong, algosdk uses the truncated variant)
  - monero library for Monero (XMR)
  - substrate-interface for Polkadot/Kusama sr25519
  - bitcash for Bitcoin Cash cashaddr
  - manual 0x1CB8 prefix impl for Zcash t-addr (was 0x1C)

- wallet_engine/generator.py
  New CHAIN_ADDRESS_OVERRIDES table + _generate_with_override() that
  dispatches the 17 fixed chains through chain_addresses instead of
  the broken family-based dispatch. Also fixed _generate_monero to
  use Seed() positional arg (was wrong keyword).

- tests/test_address_vectors.py (NEW, 19 tests)
  Golden-vector tests with FIXED test mnemonic. Every test generates
  the address with our implementation AND the official SDK, then
  asserts byte equality. 19/19 passing.

- backend/requirements.txt
  New deps: bech32, stellar-sdk, xrpl-py, py-algorand-sdk, tonsdk,
  bitcash, monero, substrate-interface.

- ADDRESS_GENERATION.md
  Flipped 17 chains from  BROKEN to  VERIFIED. Cardano still
  deferred (needs Bech32 stake address — WP-055).

- AUDIT.md
  Marked P0-4 as FIXED.

- BUILDER.md
  Marked WP-040 through WP-058 as DONE (except WP-055 Cardano).

Verification:
  cd backend && source venv/bin/activate
  pytest tests/test_address_vectors.py -v
  # 19 passed
  pytest tests/ -v
  # 76 passed, 5 skipped (no regressions)

Refs: ADDRESS_GENERATION.md, AUDIT.md, BUILDER.md
Closes: WP-040, WP-041, WP-042, WP-043, WP-044, WP-045, WP-046, WP-047,
        WP-048, WP-049, WP-050, WP-051, WP-052, WP-053, WP-054, WP-056,
        WP-057, WP-058
2026-06-30 19:30:29 +07:00
backend fix(wallet_engine): WP-040..WP-058 — fix 18 broken address generators 2026-06-30 19:30:29 +07:00
cli feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
installers feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
wp-plugin feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
.gitignore feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
.pre-commit-config.yaml feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
about.html Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
ADDRESS_GENERATION.md fix(wallet_engine): WP-040..WP-058 — fix 18 broken address generators 2026-06-30 19:30:29 +07:00
ARCHITECTURE.md docs(walletpress): full audit + canonical documentation framework 2026-06-30 18:48:16 +07:00
AUDIT.md fix(wallet_engine): WP-040..WP-058 — fix 18 broken address generators 2026-06-30 19:30:29 +07:00
BUILDER.md fix(wallet_engine): WP-040..WP-058 — fix 18 broken address generators 2026-06-30 19:30:29 +07:00
buy.html Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
contact.html Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
CONTRIBUTING.md feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
docs.html feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
features.html Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
index.html Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
logo.svg Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
privacy.html feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
PROGRESS.md feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
ROADMAP.md feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
ROADMAP_V2.md feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
robots.txt feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
SECURITY.md docs(walletpress): full audit + canonical documentation framework 2026-06-30 18:48:16 +07:00
sitemap.xml feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
STRATEGY.md feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
terms.html feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
thanks.html Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
verify.html feat: backend, installers, legal pages, pre-commit, docs — v1.0.0-beta follow-up 2026-06-29 17:21:45 +07:00
walletpress-docs.pdf Initial commit: WalletPress v1.0.0-beta 2026-06-27 17:12:49 +07:00
WALLETPRESS.md docs(walletpress): full audit + canonical documentation framework 2026-06-30 18:48:16 +07:00