CW
← All projectsCake Wallet

Cake Wallet / Monero.com

Noncustodial mobile and desktop wallet code for Cake Wallet and the Monero-only Monero.com wallet.

MoneroPrivacy protocolsSoftware walletsNormal
Repository coverage

765 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

112security candidates333second-pass queue445AI analyses
62commits · 30 days
152commits · 60 days
421commits · 180 days
751commits · 365 days
Backfill bands
Sep 27 → Mar 31329 seen44 candidatesComplete
Mar 31 → Jul 29266 seen28 candidatesComplete
Jul 29 → Aug 2891 seen17 candidatesComplete
Aug 28 → Sep 2765 seen18 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

59/100 average clarity
141Strong · 80–100
251Adequate · 60–79
235Thin · 40–59
138Opaque · 0–39
5security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
cyan711035268
David Adegoke1022567178
Omar Hatem54838165
malik1004x1231452062
Konstantin Ullrich551434076
Blazebrain191012058
Serhii46617066
tuxsudo22613057
Omar48334035
Seth For Privacy20311080
claude[bot]633077
Cindy635076
Analysis record

Published AI watches

Last scanned 4 minutes ago

Informational 15 AI analysisMessage 80 · Strong
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

fix: add new images and fix integration tests (#3679)

This commit is a routine product update for the Cake Wallet app. It swaps in new Robinhood-themed icons and card backgrounds, adjusts a color gradient, adds Robinhood to integration-test wallet lists, fixes a QR-code image reference to poi…

ad93901aby David Adegoke+216−3417 files
No security note in commit
Low 35 AI analysisMessage 76 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

Add Robinhood Chain (#3398)

This commit adds support for a new blockchain, "Robinhood Chain" (chain ID 4663), to the Cake Wallet app. It is a large feature patch that wires the new chain into wallet creation, sending, receiving, exchange providers, transaction histor…

New EVM chain integration with custom transaction signing path (RobinhoodClient forces gasPrice instead of EIP-1559)New third-party RPC endpoints added to default node list (PublicNode, NOWNodes, Robinhood, Alchemy)New API secret (ALCHEMY_API_KEY) written into generated secrets file in CI workflows
046e57c5by David Adegoke+1214−159143 files
No security note in commit
Informational 16 AI analysisMessage 65 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

chore: migrate to hosted scalable CI (#3620)

This commit is an infrastructure change: Cake Wallet moved its automated build system from GitHub's standard runners to a third-party hosted service ('puzl-ubuntu-latest') and split the build into many smaller parallel jobs. It also adds a…

Third-party CI runner label `puzl-ubuntu-latest` replaces GitHub-managed `ubuntu-24.04`Committed RSA private key and self-signed certificate (`scripts/android/dev-test-key.pem`, `scripts/android/dev-test-key.crt`) used only for debug/CI keystoresCI jobs now log in to GHCR using `secrets.GITHUB_TOKEN` and run Docker with broad socket permissions (`sudo chmod 666 /var/run/docker.sock`)
77e4b946by cyan+1306−23423 files
No security note in commit
Informational 23 AI analysisMessage 76 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

cw-1683-prepare-zano-removal (#3668)

This commit prepares Cake Wallet to remove support for Zano and Decred wallets. It adds a new database table to store encrypted seed phrases for wallets that are being deprecated, shows warning popups to users so they back up their seeds, …

New database table stores seed/passphrase for deprecated walletsUI added to warn users to back up seeds before wallet type removalWallet type removal prevents future creation of Zano/Decred wallets
86616811by malik1004x+192−912 files
No security note in commit
Low 29 AI analysisMessage 50 · Thin
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

only check address validation once for old addresses

This commit changes how Cake Wallet verifies whether stored Bitcoin and Bitcoin Cash addresses belong to the 'hidden' (change) side of a wallet. Previously, the app re-checked every address on every wallet open, which could flip address la…

Address label (hidden/visible) correctness affects which addresses users believe are receive vs change addressesRepeated re-derivation on every startup removed, reducing side-channel/performance exposureLogic change prevents arbitrary flipping of `isHidden` for addresses that do not match either derivation path
1972efd0by Omar+30−253 files
No security note in commit
Low 33 AI analysisMessage 50 · Thin
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

fix balance being stale cuz it's overriden by an old value

This commit fixes a bug where a Bitcoin wallet's displayed balance could become stale or be overwritten with an outdated value. The changes make balance updates copy the new value instead of sharing a reference, recalculate balances per ac…

Balance display correctness bug fixedReference sharing replaced with explicit copy to avoid stale shared-mutable stateNetwork disconnect guard added before persisting fetched balance
1de16191by Omar+84−153 files
No security note in commit
Low 33 AI analysisMessage 76 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

Cw 1551 quick bitcoin wallet sync (#3446)

This is a large feature commit that adds multi-account support for Bitcoin wallets in Cake Wallet, along with a 'quick sync' optimization. It changes how addresses, transactions, balances, and unspent coins are tracked per account. The cha…

Multi-account key derivation path now uses accountIndex from address record rather than parsing derivation path, reducing risk of deriving wrong account keysUTXO selection and transaction building restricted to current account's unspent coins (unspentCoinsForCurrentAccount)Address generation throws UnsupportedAddressTypeForAccountException for unsupported account/type combinations, preventing accidental key derivation for invalid paths
d7ebf428by Serhii+3966−216184 files
No security note in commit
Informational 19 AI analysisMessage 85 · Strong
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

feat: prefill rescan height with the saved Monero and Zcash restore height (#3669)

This commit changes the wallet's rescan screen so that, for Monero and Zcash wallets, the starting block height is automatically filled in with the wallet's saved restore/birth height. This is a convenience feature that helps users avoid t…

UI convenience change, no cryptographic or network code modifiedNo input validation changes; prefill only occurs when field is empty and height > 0Reduces likelihood of user error (e.g., rescanning from genesis or an incorrect height)
0503d542by Seth For Privacy+32−05 files
No security note in commit
Informational 16 AI analysisMessage 83 · Strong
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

Merge pull request #3658 from cake-tech/integration-test-fixes

This commit fixes flaky integration tests in the project's automated CI pipeline and makes a small UI cleanup change in the app's authentication screen. It does not appear to fix a security vulnerability. The auth-page change replaces a di…

No security-relevant signals in commit title or messageNo CVE, advisory, or security disclosure references presentAuth page change is defensive UI hardening, not an access-control or cryptographic fix
bc302f0eby David Adegoke+38−113 files
No security note in commit
Informational 23 AI analysisMessage 47 · Thin
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

fix: handle flushbar dismissal

This commit fixes how the app dismisses on-screen notification banners (called 'flushbars') during login. Previously, the code tried to dismiss a banner even when it wasn't currently shown, which could cause the app to crash or behave oddl…

UI state handling bug fixPotential null/invalid route dereference mitigatedNo explicit security claim in commit message or diff
88a7e72cby Blazebrain+17−62 files
No security note in commit
Informational 21 AI analysisMessage 81 · Strong
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

Add onionbalance Tor frontends to default node lists (#3431)

This commit updates Cake Wallet's built-in lists of cryptocurrency network servers. It replaces some single Tor/onion server addresses with new load-balanced Tor frontends, adds missing Tor server options for Bitcoin and Litecoin, and make…

Adds Tor/onion routing for Bitcoin fee estimatesReplaces single Tor nodes with load-balanced onionbalance frontendsMarks Cake Wallet Tor nodes as official in default node lists
c8cad835by Seth For Privacy+21−95 files
No security note in commit
Informational 19 AI analysisMessage 93 · Strong
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

fix: enter Lightning invoice amounts in sats (#3525)

This commit fixes a user-interface bug when receiving Bitcoin over the Lightning Network in Cake Wallet. Previously, the app showed the invoice amount in whole Bitcoin (BTC) instead of satoshis (sats), because an internal currency code was…

No memory-safety, cryptographic, or authorization changes observedNo input validation, parsing, or serialization changes observedNo network, wallet-seed, or key-handling changes observed
fdb82675by Omid+7−12 files
No security note in commit
Moderate 60 AI analysisMessage 73 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

Revert "Revert "fix: unify encryption across platforms (#3470)" (#3634)" (#3635)

This commit re-applies a change that makes wallet file encryption consistent across all platforms. It replaces an older, weaker encryption method (Salsa20) with a stronger one (XChaCha20) and adds automatic migration of old wallet files. T…

Replaces Salsa20 with XChaCha20 for wallet file encryptionAdds transparent migration path from legacy Salsa20 filesPins cake_backup dependency to a specific git commit instead of floating branch
2d8d0684by Omar Hatem+555−8610 files
Vendor flagged security relevance
Low 26 AI analysisMessage 93 · Strong
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

Integration tests (#3477)

This is a large commit that adds and reorganizes automated integration tests for the Cake Wallet app. Most of the changes are test code, CI workflow files, and small app-side widget key additions so tests can find on-screen elements. There…

Large test-only refactor with no obvious malicious codeProduction-side changes are additive widget keys and one Solana decimals fixCI now posts Slack reports and supports manual funds-spending tests with a default-off SPEND flag
dfa51657by David Adegoke+6024−4772137 files
No security note in commit
Moderate 57 AI analysisMessage 65 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

feat: warn when txCount != 1 (#3644)

This commit adds a safety check in Cake Wallet's Monero wallet code. When a user tries to send Monero, the app now checks how many separate transactions would be created. If it is not exactly one transaction, the app stops and warns the us…

Defensive guard added against multi-transaction payment splitsUser-facing error thrown instead of silent multi-tx executionPreviously commented-out status check not restored
28d540d5by cyan+9−23 files
No security note in commit
Informational 22 AI analysisMessage 49 · Thin
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

charts (#3162)

This commit adds a new cryptocurrency price-charts feature to the Cake Wallet app. It introduces screens, data models, a price API client, local database tables to cache prices, and related UI assets. There is no direct evidence in the com…

New network client sends fiatApiKey header to prices.cakewallet.comNew SQLite tables store price data and favorite assets; migration version bumped from 12 to 13currencyFromApiString throws UnimplementedError for evm and sol token types, which could cause runtime crashes if those asset types are selected
b88fbf32by malik1004x+2544−27094 files
No security note in commit
Informational 18 AI analysisMessage 59 · Thin
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

remove old ui (#3629)

This is a large cleanup commit that removes the old user interface code from the Cake Wallet app and switches the app to use only the new UI. It deletes many old screens, view models, fonts, and related dependency-injection registrations. …

Large-scale deletion of legacy UI code and unreachable routesRemoval of disabled/unused Yat emoji-id integration code (commented-out network calls and empty URL constants)Removal of old buy/sell webview pages that handled external payment flows
d38c7481by malik1004x+74−18935155 files
No security note in commit
Informational 17 AI analysisMessage 45 · Thin
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

ignore pointless throw [skip ci]

A single throw statement in the Decred wallet code was replaced with returning the string 'closed'. Previously, calling syncStatus() after the wallet was closed would crash with an error. Now it returns a status string instead. This is a m…

Removal of an exception path in wallet lifecycle state handlingChange from fail-closed (throw) to fail-open (return string) on closed walletNo input validation, bounds checking, or cryptographic changes present
c9635932by Omar+3−11 file
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

minor fix [skip ci]

This commit is a routine code cleanup in a single Flutter UI file. It replaces verbose 'return { ... }' function bodies with arrow syntax, adds 'const' keywords where Flutter can optimize widget rebuilds, and tweaks one loading-state updat…

88498e84by Omar+29−441 file
No security note in commit
Low 33 AI analysisMessage 69 · Adequate
CW Cake WalletCake Wallet / Monero.com MoneroPrivacy protocolsSoftware wallets

V6.4.5 rc (#3639)

This is a routine release-candidate commit for Cake Wallet version 6.4.5. Most of the changes are version bumps, translated changelogs, and a new user-facing string about Trezor locktime. The actual code changes are small bug fixes and usa…

Mutex release moved into finally block, reducing risk of deadlock on exception pathsMonero coin-control concurrency fix and improved coin metadata matching for hardware walletsTrezor session management changes to prevent cross-wallet session misuse
9fe23970by Omar Hatem+296−8574 files
No security note in commit
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidatechore: lints cleanup and localizationby Blazebrain · 87f372d6 · Sep 15, 2026 · 12 filesMessage 57 · ThinInformational 15Details
Commit message · Blazebrain

chore: lints cleanup and localization

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit is a routine cleanup: it changes some quote styles in Dart code from single to double quotes, adds a blank line, and updates translated text strings in several language files. There is no security-relevant change.

Security candidatechore: cleanupby Blazebrain · 3b9ed6f4 · Sep 15, 2026 · 4 filesMessage 30 · OpaqueInformational 15Details
Commit message · Blazebrain

chore: cleanup

30/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! Too few words to establish purpose! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
seed or entropy path
AI analysis · Informational 15/100

This commit is a routine UI cleanup. It swaps a custom checkbox drawing for a shared checkbox widget, changes two icon colors from light blue to white, and reorders some translated text strings in the Brazilian Portuguese language file. There is no security-relevant change visible in the diff.

AI review queuedfix: sign and verify for evm wallets (#3599)by David Adegoke · 96e5329b · Sep 14, 2026 · 1 fileMessage 75 · AdequateLow 35Details
Commit message · David Adegoke

fix: sign and verify for evm wallets (#3599)

75/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 35/100

This commit fixes how Cake Wallet's EVM (Ethereum-compatible) wallets sign and verify messages. It switches message encoding from ASCII to UTF-8, removes a third-party signature utility, and adds stricter checks on the address and signature format. The change appears to be a bug fix for incorrect or unreliable signature verification, which could previously fail or behave unexpectedly for non-ASCII messages or malformed inputs.

Security candidatefix(CW-1638): include transaction notes in history CSV export (#3623)by claude[bot] · ef6879b6 · Sep 14, 2026 · 5 filesMessage 100 · StrongModerate 62Details
Commit message · claude[bot]

fix(CW-1638): include transaction notes in history CSV export (#3623)

* fix(CW-1638): include transaction notes in history CSV export

The `note` column of the transaction-history CSV export was always written
as an empty string for transaction rows, so notes a user added to a
transaction never appeared in the exported file.

Index the `TransactionDescription` Hive box once per export and look each
transaction's note up by the same keys the app writes them under
(`<txHash>_<primaryAddress>`, falling back to the legacy bare `<txHash>`),
then write it through the existing `escapeField` so multi-line notes and
notes containing commas or quotes stay valid CSV.

`CsvExportService` now takes the box, so it is resolved through `getIt` at
both export entry points.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* perf(CW-1638): resolve the note-key address once per CSV export

`_noteFor` read `balanceViewModel.wallet.walletAddresses.primaryAddress`
once per transaction row. On Monero and Wownero that getter is not a field
read: it calls `getAddress`, which issues an FFI `numSubaddresses` call plus
four `ffiAddress` calls before its address cache is consulted. Since
`buildCsvContent` runs on the main isolate, exporting a wallet with a long
history meant thousands of synchronous FFI round-trips with no yield point.

Every item in one export belongs to the same wallet, so the value is
invariant across rows. Resolve it once in `buildCsvContent` and thread it
through to `_noteFor`. An export holding no transaction rows now skips the
read entirely.

No change to the exported output.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* fix(CW-1638): neutralise spreadsheet formulas in CSV export

The note column this PR adds is fed by TransactionDescription.transactionNote,
which is not always authored by the user: a scanned bitcoin: URI carries
tx_description / message straight through payment_request.dart into
Output.note, and an address-resolution result writes Output.note too. Both are
folded into the note persisted by SendViewModel.

escapeField only quoted for , " and \n, so a note beginning with = + - @ TAB or
CR reached the cell untouched and Excel / LibreOffice / Sheets evaluate it as a
formula (=IMPORTDATA to exfiltrate a neighbouring cell, =HYPERLINK for phishing
anchor text, =cmd|… for DDE). trade.memo and the provider-supplied trade/order
strings had the same exposure already.

Neutralise inside escapeField rather than at the two call sites so every column
is covered and a future free-text column cannot forget it. Values starting with
a trigger are prefixed with an apostrophe, the spreadsheet text marker, guarded
by a plain-number test so negative amounts are left alone — formatFixed really
can emit a leading '-'. Also quote on a bare \r, which previously passed through
unquoted and splits rows in many CSV parsers.

Tests cover the escaping rules, the neutralisation, a row built end to end, and
the note column itself, including the two lookup keys and the payment-request
injection path.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* perf(CW-1638): bound the CSV note lookup to the exported rows

Review feedback: the note index copied every entry in the shared
transactionDescriptionBox, including notes belonging to other wallets,
so its memory scaled with the box rather than with the export.

Collect the keys the exported rows can ask for first — for each
transaction row both `<txHash>_<primaryAddress>` and the bare
`<txHash>` — then walk the box once and keep only matching notes.
Lookups stay O(1) per row and first-wins/key-preference behaviour is
unchanged; a box walk is skipped entirely when the export has no
transaction rows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* refactor(CW-1638): simplify the CSV note lookup to a plain scan

Notes are written into the TransactionDescriptions box with `add`
(send_view_model.dart:1257,1263 and transaction_details_view_model.dart:299),
so entries carry auto-incrementing integer keys and `box.get(descriptionKey)`
cannot find them. Drop the prebuilt lookup map and the wanted-key set in
favour of a per-row scan that mirrors the app's own read path in
`TransactionDetailsViewModel.note`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

* docs(CW-1638): drop the explanatory comments from the CSV note lookup [skip ci]

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5EdTdWZSvzbKKmd9MCEJh

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Omar <omarh.ismail1@gmail.com>

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
privacy or spend-authorization protocolsigning or wallet path
AI analysis · Moderate 62/100

This commit fixes two related problems in Cake Wallet's CSV transaction-history export. First, user notes attached to transactions were being left blank in the exported file. Second, and more importantly, the CSV export did not protect against spreadsheet formula injection: a transaction note, trade memo, or other text that starts with characters like =, +, -, @, tab, or carriage return could be interpreted as a formula by Excel, LibreOffice, or Google Sheets when the CSV is opened. That could be abused to trick users into clicking malicious links, leak data from other cells, or run commands. The patch now prefixes such values with a single quote so spreadsheets treat them as plain text, and it also properly quotes carriage returns so rows don't get broken.

Security candidatechange arbitrum default node [skip ci]by Omar · 21c73d00 · Sep 13, 2026 · 8 filesMessage 45 · ThinInformational 20Details
Commit message · Omar

change arbitrum default node [skip ci]

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 20/100

This commit changes the default Arbitrum network server used by the wallet from one provider (nownodes.io) to another (publicnode.com), and adds several new decorative icon images. The server change could affect reliability or privacy for users who rely on the default node, but there is no direct evidence of a security vulnerability in the code change itself.

AI review queuedAdd more guards to amounts being zero or infinity (#3612)by Omar Hatem · 3bb64b71 · Sep 12, 2026 · 9 filesMessage 73 · AdequateHigh 79Details
Commit message · Omar Hatem

Add more guards to amounts being zero or infinity (#3612)

* Add more guards to amounts being zero or infinity

* Add more guards to amounts being zero or infinity

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · High 79/100

This update fixes a bug where entering special non-number values like 'Infinity' or 'NaN' as a crypto amount could slip past safety checks. Because the wallet treats an amount of zero as 'send everything' (sweep-all), a bad amount that collapsed to zero could unexpectedly drain the whole account. The patch adds stronger checks in the amount-parsing code and refuses to create transactions with zero or infinite amounts.

AI review queuedminor fix [skip ci]by Omar · 8d75c3f0 · Sep 12, 2026 · 1 fileMessage 28 · OpaqueInformational 15Details
Commit message · Omar

minor fix [skip ci]

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This is a tiny UI timing fix in a cryptocurrency wallet's dashboard screen. It moves a changelog popup so it runs after the current frame is rendered, rather than immediately after a short delay. There is no security-relevant change visible in the diff.

AI review queuedfix: monero silently ignoring wallet opens (#3621)by cyan · 6687e478 · Sep 12, 2026 · 1 fileMessage 70 · AdequateLow 49Details
Commit message · cyan

fix: monero silently ignoring wallet opens (#3621)

70/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 49/100

This patch fixes a bug where Cake Wallet's Monero module could skip actually opening a wallet and instead leave the user looking at the previously opened wallet without any warning. The old code tracked the 'last opened wallet' path and, if the requested path matched it, simply did nothing. That state tracking was unreliable and could become stale, so the app might appear to load a wallet while silently staying on the wrong one. The fix removes that shortcut and always performs the real open-wallet work, including error checks.

AI review queuedfix: unify encryption across platforms (#3470)by cyan · 90e25afc · Sep 12, 2026 · 10 filesMessage 80 · StrongModerate 61Details
Commit message · cyan

fix: unify encryption across platforms (#3470)

* fix: unify encryption across platforms

* sync rename

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 61/100

This commit changes how Cake Wallet encrypts and decrypts wallet backup files. It removes an older, weaker encryption method (Salsa20) and switches to a stronger one (XChaCha20) for all platforms. It also adds automatic migration: when the app opens an old Salsa20 wallet file, it re-encrypts it with the stronger method. The change touches code that handles wallet seeds/private keys, so a mistake here could put users' funds at risk, but the patch itself appears to be a hardening fix rather than an introduction of a new vulnerability.

AI review queuedCW-1468 Home Screen Top Bar Layout (#3576)by Patrick · 5b0f0fcd · Sep 12, 2026 · 17 filesMessage 78 · AdequateInformational 12Details
Commit message · Patrick

CW-1468 Home Screen Top Bar Layout (#3576)

* Improve homescreen layout and account access

* Add homescreen layout regression tests

* address feedback

78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
fuzzing or regression evidencesigning or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 12/100

This commit is a routine user-interface redesign for the Cake Wallet home screen. It moves the wallet name and account customizer into a new top bar, adds an 'Accounts' entry in settings, and adds or updates widget tests. There is no indication in the commit that it fixes a security vulnerability or changes security-sensitive logic such as authentication, encryption, key handling, or transaction signing.

AI review queuedtiny review fixesby Robert Malikowski · 8bbaa3fe · Sep 11, 2026 · 2 filesMessage 28 · OpaqueLow 29Details
Commit message · Robert Malikowski

tiny review fixes

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Low 29/100

This commit makes two small UI/logic fixes in the buy/sell flow of the Cake Wallet app. It disables the Continue button when the amount field is empty, and it avoids a crash when converting an empty fiat amount to crypto or when no exchange rate is available. These are defensive hardening changes rather than a fix for an active security vulnerability.

Security candidaterefactor: adjust image height and add top spacingby Blazebrain · 65500659 · Sep 9, 2026 · 2 filesMessage 57 · ThinInformational 15Details
Commit message · Blazebrain

refactor: adjust image height and add top spacing

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100

This commit is a purely cosmetic UI tweak. It makes a hero image shorter (from about 228 pixels to 175 pixels) and adds 24 pixels of empty space above it on seed-related pages. There is no security relevance.

AI review queueddocs: update build instructions and fix stale doc links (#3559) (#3561)by Seth For Privacy · 09fdded7 · Sep 9, 2026 · 2 filesMessage 93 · StrongInformational 15Details
Commit message · Seth For Privacy

docs: update build instructions and fix stale doc links (#3559) (#3561)

Replace the README's placeholder build section and the stale
howto-build-android.md reference with links to the current
platform-specific guides in docs/builds/.

Also fix broken links in docs/ADDING_NEW_WALLET_TYPES.md that pointed
to a non-existent adding_new_l2_network_guide.md file and align the
README/docs copyright years with LICENSE.md (2018-2025).

93/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathdocumentation-only discountsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only updates documentation. It replaces placeholder build instructions in the README with links to current platform-specific guides, fixes two broken links in a developer guide that pointed to a renamed file, and updates copyright years from 2018-2023 to 2018-2025. No code, configuration, or executable files were changed, so there is no security impact.

Security candidatefix: switch "seed" to "recovery phrase" in more places and handle edgecases for seed verification remindersby Blazebrain · 6bb52fd7 · Sep 9, 2026 · 39 filesMessage 72 · AdequateInformational 19Details
Commit message · Blazebrain

fix: switch "seed" to "recovery phrase" in more places and handle edgecases for seed verification reminders

72/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
defensive validationseed or entropy pathsigning or wallet path
AI analysis · Informational 19/100

This commit is mostly a user-interface wording change: it replaces the word 'seed' with 'recovery phrase' across many languages and fixes a few related navigation and reminder-handling edge cases. The code changes do not introduce obvious security vulnerabilities, nor do they fix a clearly exploitable flaw. The most notable functional change is that the app now correctly decides when to show a recovery-phrase backup reminder, and it restores the previous reminder state if saving fails. This is a reliability/usability improvement rather than a security patch.

Security candidaterefactor: improve locale handling fixing issues with yoruba, hausa and guarani languagesby Blazebrain · 7e0f0fc3 · Sep 9, 2026 · 9 filesMessage 62 · AdequateInformational 22Details
Commit message · Blazebrain

refactor: improve locale handling fixing issues with yoruba, hausa and guarani languages

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 22/100

This commit fixes app crashes and broken number formatting that could happen when the wallet was set to certain less-common languages such as Yoruba, Hausa, or Guarani. It makes the app fall back to English formatting when the device's locale has no number-formatting data, and it prevents invalid locale codes from being restored from saved settings. There is no sign this was a security flaw that could steal funds; it is best described as a reliability/UX fix.

AI review queuedv6.4.4 Release Candidate (#3594)by Omar Hatem · 93201806 · Sep 4, 2026 · 41 filesMessage 68 · AdequateLow 27Details
Commit message · Omar Hatem

v6.4.4 Release Candidate (#3594)

- Monero sync patches
- Trezor bitcoin
- Solana NFTs sending
- Bug fixes

68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
second-pass: unusually broad change
AI analysis · Low 27/100

This is a routine version-bump release candidate for Cake Wallet/Monero.com (6.4.4). The visible code changes are mostly version numbers, localized changelogs, dependency updates, and two small functional tweaks: disabling the 'Swaps.XYZ' exchange provider by default and adding a re-entrancy guard to the Solana NFT send button so it cannot be double-pressed while the authentication prompt is showing. Nothing in the diff clearly indicates a security vulnerability or a malicious change, but the patch is a release candidate rather than a focused security fix, so the actual security-relevant code is only a small fraction of the commit.

AI review queuedsolana nft improvements and other fixes (#3581)by David Adegoke · ea4d7529 · Sep 2, 2026 · 68 filesMessage 81 · StrongLow 47Details
Commit message · David Adegoke

solana nft improvements and other fixes (#3581)

* feat: improvements covering solana nfts(send, ownership badge, persistent imports etc), closing emptied token accounts and other fixes from patch

* feat: more improvements for nfts including security hardening

* fix: display error in full

81/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference✓ Names security-relevant behavior explicitly
Why it was queued
defensive validationsigning or wallet pathsecond-pass: near security thresholdsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Low 47/100

This commit is a feature update for Cake Wallet that improves Solana NFT support (sending, ownership badges, persistent imports) and adds several security hardening measures. It does not appear to be a patch for an active exploit. The security-relevant changes include sanitizing NFT names/descriptions to stop malicious metadata from hiding or reordering text, restricting image URLs to HTTPS/IPFS gateways to avoid unsafe schemes, verifying an asset really is an NFT before sending, and adding safety checks when fetching off-chain metadata. There are also unrelated Monero background-sync and dependency changes.

AI review queueddisable mweb ad (#3593)by malik1004x · 87ba3838 · Sep 2, 2026 · 1 fileMessage 36 · OpaqueInformational 15Details
Commit message · malik1004x

disable mweb ad (#3593)

36/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100

This commit simply turns off an advertisement banner for a Litecoin privacy feature (MWEB) in the app's dashboard. It is a product/marketing change, not a security fix.

AI review queuedauto-select custom node on wallet creation (#3592)by malik1004x · 68eb1c3d · Sep 2, 2026 · 2 filesMessage 73 · AdequateLow 27Details
Commit message · malik1004x

auto-select custom node on wallet creation (#3592)

* auto-select custom node on wallet creation

* safeguard for wallet type

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This commit fixes a wallet setup flow where a user-added custom server node was saved but not actually selected for use. It also adds a safeguard so node-change notifications only reconnect the active wallet when the node's cryptocurrency type matches the wallet's type. The practical effect is to prevent the wallet from silently ignoring a user's custom node choice or from trying to connect a wallet to an incompatible node.

AI review queuedMonero: keep the sync progress redrawing during wallet2's warm-up (#3575)by cyan · 5a497bf0 · Sep 2, 2026 · 1 fileMessage 81 · StrongInformational 19Details
Commit message · cyan

Monero: keep the sync progress redrawing during wallet2's warm-up (#3575)

* Monero: keep the sync progress redrawing during wallet2's warm-up

* fix: double call in getNodeHeight()
fix: error handling in _refreshNodeHeight

---------

Co-authored-by: Vikrant Sharma <vik@cakewallet.com>

81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit fixes a UI progress-bar issue in the Monero wallet. During the initial warm-up of the underlying wallet engine, the sync progress could stop redrawing and appear frozen. The change also prevents the app from accidentally starting two simultaneous node-height checks and adds better error logging. There is no direct evidence this is a security vulnerability.

Security candidatefeat: enhance hardware wallet compatibility and improve transaction handling (#3517)by Konstantin Ullrich · 0d353a09 · Sep 1, 2026 · 17 filesMessage 100 · StrongLow 35Details
Commit message · Konstantin Ullrich

feat: enhance hardware wallet compatibility and improve transaction handling (#3517)

* feat: enhance hardware wallet compatibility and improve transaction handling

- Updated hardware wallet services for Bitcoin and Litecoin (Ledger & Trezor).
- Added `LitecoinTrezorService` for signing and managing Litecoin transactions.
- Improved `PSBTTransaction` builder to handle change outputs and derivation paths.
- Fixed exception handling in `wallet_hardware_restore_view_model`.
- Refactored output and input structures to ensure consistency and extend compatibility.

* refactor: address comments

* refactor: address comments

* refactor: address comments

100/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundarysigning or wallet path
AI analysis · Low 35/100

This commit refactors how Cake Wallet builds Bitcoin and Litecoin transactions for hardware wallets (Ledger, Trezor, BitBox). It mainly improves change-output handling, derivation-path reporting, and adds a new Litecoin Trezor signing path. There is no explicit security bug fix in the commit message, but the changes touch sensitive transaction-assembly code where mistakes could affect how much money is sent or which addresses are shown on the device screen.

Security candidatefix: lint issuesby Blazebrain · bb79edf3 · Sep 1, 2026 · 8 filesMessage 40 · ThinInformational 15Details
Commit message · Blazebrain

fix: lint issues

40/100 · ThinMessage clarity
✓ Subject identifies a change✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100

This commit is a routine code cleanup titled "fix: lint issues". It only refactors how theme colors are accessed in several user-interface screens and widgets, switching from a local variable to inline lookups. There is no change to app behavior, security logic, or user-facing functionality.

Security candidatefeat: remind users with a balance to back up their recovery phraseby Blazebrain · 323a1df6 · Sep 1, 2026 · 8 filesMessage 62 · AdequateInformational 15Details
Commit message · Blazebrain

feat: remind users with a balance to back up their recovery phrase

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
seed or entropy pathsigning or wallet path
AI analysis · Informational 15/100

This commit adds a friendly in-app reminder for users who have cryptocurrency in their wallet but have not yet backed up their recovery phrase. It shows a card on the home screen and offers a guided flow to view or dismiss the reminder. There is no security vulnerability here; it is a user-experience and safety feature.

Security candidatefeat: add fallback locktime support in PSBT deserialization (#3583)by Konstantin Ullrich · df87bab8 · Sep 1, 2026 · 1 fileMessage 70 · AdequateInformational 18Details
Commit message · Konstantin Ullrich

feat: add fallback locktime support in PSBT deserialization (#3583)

70/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 18/100

This commit adds one line to make sure a fallback locktime value is copied from a Bitcoin transaction into a PSBT (Partially Signed Bitcoin Transaction) data structure during parsing. A locktime is a standard Bitcoin field that controls when a transaction can be mined. The change appears to be a missing-field fix rather than a security patch, and there is no direct evidence in the commit that it fixes an active vulnerability.

AI review queuedupdate translationsby Robert Malikowski · 5474cfaa · Aug 31, 2026 · 30 filesMessage 18 · OpaqueInformational 15Details
Commit message · Robert Malikowski

update translations

18/100 · OpaqueMessage clarity
✓ Subject identifies a change! Too few words to establish purpose! No meaningful explanatory body
Why it was queued
second-pass: opaque commit messagesecond-pass: unusually broad change
AI analysis · Informational 15/100

This commit only updates translation files (string resources) for the Cake Wallet app across many languages. It adds new user-facing text labels and descriptions for upcoming or existing app features, but does not change any program logic, security code, cryptography, network handling, or wallet behavior. There is no indication of a security fix or vulnerability.