jwinterm b57ab7cc06 Nuke Solana/Tron/Zano/Decred/Zcash/Haven from the codebase entirely
94 files changed, -5926 net lines. No stubs, no generators, no dead enum
values, no orphan switch branches. Removed for principled reasons (we
do not ship these chains) and to make the codebase smaller and friendlier
to contribute to.

What's gone:
- lib/{solana,tron,zano,decred,zcash,haven}/ directories
- lib/exchange/provider/jupiter_exchange_provider.dart (Solana-only)
- lib/entities/haven_seed_store.dart
- WalletType.{solana,tron,zano,decred,zcash,haven} enum values
  (HiveField IDs are pinned: Wownero stays at 12, all surviving types
  keep their IDs, so existing user-saved wallets deserialize unchanged)
- All ~70 lib/ files that imported the removed chain stubs or branched
  on the removed WalletType values
- backupSeeds(Box<HavenSeedStore>) abstract method + Wownero implementation
- Jupiter exchange branches in send/exchange view models
- TronGrid usage settings, Zano alias lookups, Zcash transparent address
  handling, Decred default-spv-nodes branches, Haven seed migration

What stays (intentional):
- CryptoCurrency.{xhv,sol,trx,dcr,zano,zec} enum entries in cw_core —
  they're still used as exchange/swap currency identifiers in
  address_validator.dart and elsewhere. The wallet types are gone but
  the *currencies* are still tradeable through Trocador.
- cw_core/spl_token.dart and cw_core/tron_token.dart Hive adapters in
  main.dart — the tokens still register as Hive types for backwards-
  compat with any old box data.
- lib/buy/{moonpay,robinhood,onramper,dfx,kryptonim,meld}/ provider
  source files (just stripped of solana/tron/etc references; providers
  themselves remain dormant per provider_types.dart).

Pinned-ID note: WalletType enum now has gaps in @HiveField IDs (4, 10,
11, 13, 14, 18 removed). This is deliberate — re-using a freed ID later
would mis-deserialize old hive boxes. Don't renumber.

Bundled config / CI hasn't changed; configure.dart was already free of
these chains in commit 4eb7db0b7.
2026-05-17 12:30:25 -04:00
2026-03-11 04:26:57 +02:00
2026-03-11 04:26:57 +02:00
2026-03-11 04:26:57 +02:00

Hash Wallet

Hash Wallet (#) is an open-source, non-custodial, multi-currency crypto wallet for Android, iOS, macOS, Linux, and Windows. It is a fork of Cake Wallet maintained by Such Software LLC.

Why a fork?

Cake Wallet ended Wownero support in early 2026. Hash Wallet exists to keep Wownero as a first-class mobile experience, run by the project's founder, while shipping a slimmer, more focused multi-coin wallet without the chains and integrations we don't want to maintain or recommend.

Supported chains

  • Monero (XMR)
  • Wownero (WOW)
  • Bitcoin (BTC)
  • Litecoin (LTC), incl. MWEB
  • Bitcoin Cash (BCH)
  • Dogecoin (DOGE)
  • Nano (XNO)
  • Ethereum (ETH) + ERC-20s
  • Polygon (POL)
  • Base (BASE)
  • Arbitrum (ARB)
  • BNB Smart Chain (BSC)

Hardware wallet support: Ledger, Trezor, BitBox.

What's different from Cake Wallet

Removed:

  • Solana, Tron, Zano, Zcash, Decred (chain support disabled)
  • Lightning Network (deferred — running Greenlight infra is out of scope for now)
  • Cake Pay gift cards (Cake Labs–operated service)
  • All direct swap-provider integrations except Trocador, which already aggregates ChangeNow, FixedFloat, LetsExchange, Exolix, StealthEx, Quantex, and ~16 others under one privacy-friendly API

Replaced or planned:

  • Default Monero/Wownero/BTC node lists augmented with community nodes (don't rely on Cake Labs–operated nodes alone)
  • Fiat price API replacement (Cake's API → public source) — pending
  • Tor / Arti integration improvements — pending

Build instructions

The build system is unchanged from upstream Cake Wallet. See docs/ for per-platform instructions:

  • Android: docs/build_android.md
  • iOS: docs/build_ios.md
  • macOS: docs/build_macos.md
  • Linux: docs/build_linux.md
  • Windows: docs/build_windows.md

Required Flutter version is pinned in Dockerfile (currently 3.32.0) and .tool-versions. Newer Flutter SDKs (3.5+) drop the _macros pseudo-package that Cake's pinned hive_generator + build_resolvers transitively require — flutter pub get will fail until you switch to 3.32.0. If using asdf or mise, the version will be picked up automatically; otherwise:

git clone --depth 1 --branch 3.32.0 https://github.com/flutter/flutter.git ~/sdks/flutter/3.32.0
export PATH="$HOME/sdks/flutter/3.32.0/bin:$PATH"
flutter --version    # confirm 3.32.0 / Dart 3.8.0

Before the first flutter pub get, you must run the prep scripts to clone external native dependencies:

./scripts/prepare_torch.sh
./scripts/prepare_moneroc.sh
./scripts/build_bitbox_flutter.sh
# Then fetch the prebuilt reown_flutter tarball (CI does this; reproduce locally
# with the URL in .github/workflows/build-linux.yml).

Then run the platform-specific configure script, e.g.:

APP_LINUX_TYPE=cakewallet ./configure_hash_wallet.sh linux

Contributing

Issues and PRs welcome at https://github.com/Such-Software/hash-wallet. See CONTRIBUTING.md for ground rules.

License

Hash Wallet is distributed under the MIT License, inheriting from Cake Wallet.

Copyright (C) 2018–2023 Cake Labs LLC
Copyright (C) 2026      Such Software LLC

Cake Wallet, the Cake Wallet logo, and related marks are trademarks of Cake Labs LLC and are not used by Hash Wallet.

S
Description
No description provided
Readme
80 MiB
Languages
Dart 95.1%
Shell 2.4%
Python 0.7%
CMake 0.5%
C++ 0.4%
Other 0.7%