jwinterm bab0d252ee Rebrand: Cake Pay / Cake 2FA / Cake Wallet → Hash Bags across all 31 locale ARBs
Replaced upstream Cake brand references in user-visible ARB *values*
(keys untouched, so generated S.current.<key> references still work):

  - "Cake 2FA" → "Hash Bags 2FA"
  - "Cake Pay" → "Hash Bags Pay" (still gated off via
    FeatureFlag.isCakePayEnabled = false; rebranding the string so it
    doesn't ship literal "Cake" copy if the flag ever flips)
  - "Cake Wallet" → "Hash Bags"
  - "Cake Labs" → "Such Software"
  - "by Cake Pay" → "by Hash Bags Pay"
  - "cakewallet.com" → "such.software"

English-only adjustments (other locales had their own translations):
  - new_first_wallet_text "Keeping your crypto safe is a piece of
    cake" → "Keeping your crypto safe shouldn't be hard" (drops the
    Cake pun, which now reads odd post-rename)
  - outdated_electrum_wallet_description + _receive_warning rewritten
    to Hash-Bags-neutral phrasing: "Hash Bags now uses Electrum V2
    wallets. Bitcoin wallets created in older builds need to be
    replaced; receiving to old wallets may lose funds." Same Hash-Bags-
    neutral rewrite propagated to all locales that had a translated
    version of the original Cake-Electrum-V2 message.

Deliberately not touched:
  - ARB *keys* (cake_2fa_preset, cake_pay_*, cakepay_*, disable_cake_2fa,
    etc.) — keys must stay stable so generated S.current.x references
    keep resolving.
  - "Cupcake" / "cupcake" — a separate companion app referenced in
    restore_*_from_cupcake strings, not part of the Cake brand we're
    rebranding from.
  - Internal Dart identifiers like CakeImageWidget class name.

Also fixed hardcoded titles in lib/src/screens/setup_2fa/setup_2fa.dart:
  - Line 18: title 'Cake 2FA' → 'Hash Bags 2FA'
  - Line 22: cake2FAGuideTitle 'Cake 2FA Guide' → 'Hash Bags 2FA Guide'
  (Local variable name cake2FAGuideTitle kept as-is — it's a code
  identifier, not user-visible.)

33 files touched: 31 ARBs (ar, bg, cs, de, en, es, fa, fr, gn, ha, hi,
hr, hy, id, it, ja, ko, my, nl, pl, pt, pt_BR, ru, th, tl, tr, uk, ur,
vi, yo, zh, zh_tw) + lib/src/screens/setup_2fa/setup_2fa.dart.
2026-05-22 12:16:32 -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 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/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 Bags 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 Bags.

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%