The About screen has been showing Cake Wallet's app icon, and the receive QR page — the screen a user screenshots to get paid — has been showing Cake's wordmark. In CI builds only, which is why nobody caught it. compile_graphics.sh compiles res/pictures/*.svg into assets/new-ui/*.svg.vec, and every platform workflow runs it. That makes res/pictures the source and assets/new-ui the output. The August de-cake pass replaced three files under assets/new-ui and left res/pictures untouched, so each CI build faithfully recompiled Cake's artwork straight over the top of ours. Locally it looked right, because locally nobody re-runs the compiler. Three files, all of them branding: hash_squircle_icon.svg, hash-wordmark.svg, hash-wordmark-light.svg. The sources are now the Hash Bags artwork, so the compiler produces what the filenames have claimed since August. This is the third time somebody else's artwork has reached users through this repo, and the second time an audit missed it, so it gets a test rather than another careful look: any SVG present in both res/pictures and assets/new-ui must be byte-identical. Drift means a hand-edit that the next CI build will silently revert. The test also asserts it compared something, because a silent zero is how the previous two got through. AGENTS.md has had the rule the whole time: generated files are never hand-edited, fix the source and regenerate. The trap here is that the generated copies sit beside the sources under identical names, and the ones the Dart code references are the generated ones.
Hash Bags
Hash Bags (#) 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 Bags 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/builds/ANDROID.md - iOS:
docs/builds/IOS.md - macOS:
docs/builds/MACOS.md - Linux:
docs/builds/LINUX.md - Windows:
docs/builds/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 Bags' own application code is distributed under the MIT License, inherited from Cake Wallet. It also bundles third-party open-source components under their own licenses — including the Monero and Wownero wallet cores (BSD-3-Clause) and additional components under Apache-2.0 and LGPL-3.0 — so the app as a whole is not solely MIT-licensed. See the LICENSE files in the repository.
Copyright (C) 2018–2025 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 Bags.