SW
← All projectsStack Wallet

Stack Wallet

Actively maintained multi-coin self-custody wallet with Monero support and on-device keys.

MoneroPrivacy protocolsSoftware walletsNormal
Repository coverage

1053 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.

338security candidates411second-pass queue749AI analyses
77commits · 30 days
175commits · 60 days
600commits · 180 days
1002commits · 365 days
Backfill bands
Sep 27 → Mar 31404 seen73 candidatesComplete
Mar 31 → Jul 29463 seen238 candidatesComplete
Jul 29 → Aug 2887 seen8 candidatesComplete
Aug 28 → Sep 2753 seen6 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.

51/100 average clarity
33Strong · 80–100
316Adequate · 60–79
513Thin · 40–59
191Opaque · 0–39
33security 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.
Navid Rahimi1017154
sneurlax339158241062
julian347112269044
Julian19741144043
Dan Miller831525053
Reuben Yap20318052
Cyrix12615211049
julian-CStack222049
levoncrypto24121043
Tritonn204412052
cassandras-lies413048
NyanCatTW1111045
Analysis record

Published AI watches

Last scanned 33 minutes ago

Informational 24 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1469 from Cyrix126/building_dialog_cancel

This commit fixes a mobile UI bug where pressing Cancel on a 'building transaction' dialog accidentally closed one too many screens. The fix moves the responsibility for closing the dialog into each screen's cancel handler, and prevents er…

No security-relevant signals in the diffUI-only navigation and error-dialog suppression changesNo cryptographic, authentication, authorization, or data-handling changes
94e6da66by Julian+68−8412 files
No security note in commit
Informational 20 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into building_dialog_cancel

This commit is a routine merge from the project's staging branch into a feature branch. The visible code changes fix small UI/UX bugs in Stack Wallet's send screens: clearing an internal address-validation cache when the form is reset, mak…

Clearing stale address-provider state on form reset reduces the risk of stale validation data influencing a subsequent transactionFee-form caching prevents repeated network calls and accidental fee UI flicker/state races on rebuildQR scan buttons are UX additions with no visible parser/validation logic changes
0485b166by Julian+194−56 files
No security note in commit
Informational 17 AI analysisMessage 58 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1468 from Cyrix126/desktop_fee_form_refetch

This commit fixes a desktop wallet bug where the send-fee form would repeatedly re-fetch fee estimates on every screen rebuild, wasting resources and possibly flickering. It now caches the fee estimate and only retries if the previous fetc…

No security-relevant signals present in diff or commit metadataChange is a UI/UX performance and reliability improvement
62432946by Julian+176−52 files
No security note in commit
Informational 17 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into desktop_fee_form_refetch

This commit merges a feature branch into another work-in-progress branch. It adds QR-code scanning buttons to two desktop token send screens and resets an internal address-validation state variable when the send form is cleared. There is n…

State reset added to clearForm() to avoid stale validation dataNew QR scan entry points in token send flows (UI feature, not a vulnerability signal)
8a72c82fby Julian+18−04 files
No security note in commit
Low 32 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1467 from Cyrix126/clear_send_form_validity

This change fixes a UI state bug in the cryptocurrency wallet's send form. When a user clears the send form, the app now also resets whether the entered address is considered valid. Without this fix, the form could incorrectly keep showing…

UI state desynchronization between form field and validity indicatorPotential user confusion from stale valid-address stateNo input validation, cryptographic, or network-layer changes
d3383b4eby Julian+2−02 files
No security note in commit
Informational 15 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into clear_send_form_validity

This commit adds a QR code scanner button to two desktop cryptocurrency send forms. It is a straightforward user-interface feature addition with no apparent security relevance.

22560a59by Julian+16−02 files
No security note in commit
Informational 20 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1466 from Cyrix126/desktop_token_qr_button

This commit adds a missing QR code scan button to two desktop token send screens in the Stack Wallet app. It is a straightforward user-interface fix that restores a feature already present on mobile and other send views; there is no indica…

47f6d369by Julian+16−02 files
No security note in commit
Informational 15 AI analysisMessage 18 · Opaque
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

style: format

This commit is purely a code-formatting cleanup. It changes line breaks and indentation in four user-interface files so the code is easier to read, but it does not change what the app actually does. There is no security relevance.

ae45aba8by Cyrix126+47−524 files
No security note in commit
Informational 23 AI analysisMessage 62 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix: stop estimating the desktop fee for a zero amount

This commit fixes a UI bug in the desktop version of Stack Wallet where the send amount could be lost while the app was trying to estimate transaction fees. The fix keeps the amount 'alive' in memory so fee estimation does not accidentally…

State lifecycle issue in UI provider could lead to loss of user inputFix prevents fee estimation from silently resetting send amount to zeroNo cryptographic, authentication, or network security changes present
90c91bdeby Cyrix126+22−02 files
No security note in commit
Low 32 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

show split tx warning on confirm screen

This commit updates the Stack Wallet app so that when a single payment is broken into multiple cryptocurrency transactions, the user sees a clear warning on the confirmation screen. It also changes the app's internal record-keeping to hand…

UI now warns users when a payment will be split into multiple on-chain transactionsInternal transaction model changed from single txid to list of txidsMultiple confirmation flows updated to iterate over all txids for notes and trade lookups
80343a5aby Julian+376−23916 files
No security note in commit
Informational 18 AI analysisMessage 62 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix: stop refetching the desktop fee rates on every rebuild

This commit fixes a performance bug in the desktop version of Stack Wallet where the app repeatedly re-fetched Bitcoin-style fee rates every time the on-screen fee form rebuilt. The change caches the fee result and only fetches again if th…

Unnecessary repeated network requests reducedFuture result cached to avoid re-execution on widget rebuildError path clears cache to allow retry
a1ca9292by Cyrix126+154−52 files
No security note in commit
Low 34 AI analysisMessage 62 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix: reset the address validity when clearing the send form

This commit fixes a UI state bug in Stack Wallet's send form. When a user clears the send form, the wallet now also resets whether the entered address is considered valid. Without this fix, the form could incorrectly keep showing an old ad…

Stale UI state after form resetAddress validity not synchronized with address field resetPotential UI confusion leading to incorrect send confirmation
43dd0477by Cyrix126+2−02 files
No security note in commit
Low 35 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1450 from Ez3kiel-dev/fix/xelis-integration

This is a large feature/fix merge that restores and rewrites the Xelis (XEL) cryptocurrency integration in Stack Wallet. It swaps the old hand-rolled Xelis code for a new generated native interface (XWF), adds wallet restore/backup support…

Send-flow lifecycle hardening: prepared Xelis transactions are now discarded via cancelSend when the user cancels or the widget is disposedSession-generation checks prevent stale wallet handles from being used after close/reopenMutex serialization added around send preparation, balance, history, and rescan operations
ad945d43by Julian+4298−162634 files
No security note in commit
Low 32 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into fix/xelis-integration

This commit is a large merge that mainly adds integration tests for a desktop 'forgot password' reset feature and makes supporting code changes to safely shut down background database workers during that reset. It also removes a large set …

New integration tests exercise a destructive 'forgot password' data-wipe featureTests assert that password store and wallet key store are deleted on successful resetTests assert that wallet files are deleted while backup and tor state are preserved
b0e5d35aby Julian+2678−330378 files
No security note in commit
Informational 19 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1361 from cypherstack/fix/305-multiline-transaction-notes

This commit lets users type multi-line notes when editing transaction and trade notes, and fixes the desktop layout so long notes scroll instead of breaking the screen. It also swaps the old `mounted` check for the newer `context.mounted` …

5172e63eby Julian+402−1113 files
No security note in commit
Low 32 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into fix/305-multiline-transaction-notes

This commit is a large merge that mainly removes old integration tests and adds new desktop 'forgot password' reset tests. It also adds a safe-shutdown path for background Firo cache workers and databases. The changes look like defensive h…

Added safe shutdown of Firo cache isolates/SQLite databases before reset exitNew integration tests verify desktop forgot-password reset deletes secrets and preserves backupsTest harness intercepts exit() and IOOverrides to observe reset side effects
21491edbby Julian+2352−319075 files
No security note in commit
Moderate 57 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1455 from cypherstack/fix/desktop-pw-reset

This commit fixes the desktop "forgot password" reset flow in Stack Wallet. It adds integration tests that verify the app can securely wipe its own data when a user forgets the desktop password, and it updates the Firo cache worker to clos…

Desktop password reset now closes Firo cache workers and SQLite databases before deleting app data, reducing the risk of data leakage or corruption during wipeNew integration tests assert that a successful reset removes password store (hive/desktopdata.hive), wallet key store (isar/desktopStore.isar), and wallet files while preserving backups and tor stateFailed reset scenario leaves a .reset-pending marker and removes password/key stores first, preventing the reset from being undone after partial deletion
055e6c6bby Julian+1077−297154 files
No security note in commit
Low 37 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into fix/desktop-pw-reset

This commit is a large merge that mainly adds a new 'prove you own a Spark address' feature to the Stack Wallet app, plus some related fixes. It also updates a dependency that handles SOCKS5 proxy connections and changes how the app decide…

New cryptographic signing path added: SparkInterface.signMessage now delegates to Spark ownership proof creation using the wallet's private key and spark derivation path.Ownership proof code rejects view-only wallets and blank messages, and searches a 100-address lookahead for the requested address before signing.Dependency upgrade: socks5_proxy 1.0.3+dev.3 -> 2.1.1, which may change SOCKS5/Tor proxy behavior; a new test verifies hostname/onion routing through a fake SOCKS server.
d9b5cc02by Julian+1275−21923 files
No security note in commit
Low 34 AI analysisMessage 83 · Strong
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1439 from navidR/dev/navidr/spark-name-verification

This commit adds a new feature to Stack Wallet that lets users prove they own a Spark (privacy) address by generating a cryptographic ownership proof. It also improves the sign/verify screens so view-only wallets can still verify proofs, a…

New cryptographic proof generation using private key material (privateKeyHex, spendKeyIndex, diversifier) inside an isolateView-only wallet guard added for proof creation (throws if isViewOnly)Message whitespace now preserved for pasted/typed challenge messages, preventing proof/verification mismatches caused by silent trimming
a5411a50by Julian+1097−16616 files
No security note in commit
Low 39 AI analysisMessage 60 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into dev/navidr/spark-name-verification

This commit merges several changes into a development branch. The most notable security-relevant change is a fix for how the Trocador exchange service routes traffic: it now automatically uses Tor (an anonymity network) when the user has T…

Trocador exchange API previously forced clearnet (`isOnion: false`) at every call site, bypassing Tor even when enabledNew `_useTor` getter centralizes Tor routing decision based on app feature flag and user preferenceOnion service address rotated to a new v3 .onion hostname
92955848by Julian+122−507 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 candidatefeat(epic): add per-wallet listenersby sneurlax · 7a932331 · Jan 10, 2026 · 3 filesMessage 57 · ThinLow 35Details
Commit message · sneurlax

feat(epic): add per-wallet listeners

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
cryptography-sensitive pathsigning or wallet path
AI analysis · Low 35/100

This commit changes how Stack Wallet manages background listeners for Epic Cash wallets. Previously, a single global listener was stopped and restarted during every wallet refresh, which could cause unnecessary reconnections and possibly interfere with other wallets' listeners in multi-wallet setups. The update makes listeners per-wallet, only stops the listener when there are actually new blocks to scan, and checks whether the listener is still alive before restarting it. The main security-relevant concern is that the old behavior may have left wallets briefly without a listener or restarted listeners unnecessarily, potentially causing missed transaction notifications or race conditions; the new behavior is a hardening improvement rather than an active vulnerability fix.

AI review queuedfiro restore and refresh optimizationsby julian · e5bbd328 · Jan 8, 2026 · 4 filesMessage 45 · ThinInformational 17Details
Commit message · julian

firo restore and refresh optimizations

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit is a performance optimization for the Firo wallet in Stack Wallet. It replaces many individual ElectrumX server lookups with batched requests when restoring or refreshing a wallet, and it removes some redundant confirmation checks. The changes are mostly about speed and efficiency, not about fixing a security vulnerability. There is one small behavior change: the code now assumes any transaction already recorded with a block height is confirmed, instead of double-checking it every refresh. That is a reasonable optimization for Firo but could theoretically miss a rare blockchain reorganization. No exploit or backdoor is visible in the diff.

Security candidatefix: flutter_libepiccash apple fixes for epic v4by sneurlax · 2f85d62c · Jan 7, 2026 · 1 fileMessage 57 · ThinInformational 3Details
Commit message · sneurlax

fix: flutter_libepiccash apple fixes for epic v4

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
cryptography-sensitive path
AI analysis · Informational 3/100

This commit is described as a one-line Apple-platform build fix for the Epic Cash cryptocurrency plugin. No diff is available, and the title/message do not mention any security issue, vulnerability, or user-facing bug. There is no evidence this change affects security.

Security candidatefix: apple flutter_libepiccash fixes and dev QoL changesby sneurlax · 92b96c43 · Jan 6, 2026 · 1 fileMessage 62 · AdequateInformational 0Details
Commit message · sneurlax

fix: apple flutter_libepiccash fixes and dev QoL changes

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 0/100

The commit title mentions Apple-related fixes and developer quality-of-life changes for a cryptocurrency plugin called flutter_libepiccash, but the actual code diff was not provided. Without seeing what changed, no security judgment can be made.

AI review queuedquick and dirty wizardswap integrationby julian · 71500159 · Jan 6, 2026 · 13 filesMessage 45 · ThinInformational 15Details
Commit message · julian

quick and dirty wizardswap integration

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds a new third-party exchange integration called WizardSwap to the Stack Wallet app. The changes are almost entirely normal product code: a new API client, exchange logic, UI widgets, and an SVG logo. The supplied diff does not show any obvious security bug, malicious behavior, or unsafe coding pattern. It is a feature commit, not a security patch or vulnerability disclosure.

Security candidatechore: update flutter_libepiccash refby sneurlax · e46387eb · Jan 6, 2026 · 1 fileMessage 47 · ThinInformational 4Details
Commit message · sneurlax

chore: update flutter_libepiccash ref

47/100 · ThinMessage clarity
✓ Descriptive subject✓ Uses a recognizable type or scope! No meaningful explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 4/100

This commit only updates a reference (likely a Git submodule pointer) to a dependency called flutter_libepiccash. No actual code changes are shown, and there is no description of any security fix or bug fix. On its own, this commit does not demonstrate any security issue.

AI review queuednanswap trade model fixby julian · 13ff0ca7 · Jan 6, 2026 · 1 fileMessage 28 · OpaqueLow 29Details
Commit message · julian

nanswap trade model fix

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 fixes a small but meaningful bug in the Nanswap cryptocurrency exchange integration. A trade object was being created with the wrong 'direction' field—it was accidentally copying the 'rateType' value instead of the actual trade direction. This could cause trade records to show incorrect buy/sell direction, potentially confusing users or downstream trade tracking. The rest of the change is just code formatting.

Security candidatemisc: update to locked Xelis deps, adopt unified FFI lib APIby Tritonn204 · c333b0dc · Dec 31, 2025 · 5 filesMessage 50 · ThinInformational 16Details
Commit message · Tritonn204

misc: update to locked Xelis deps, adopt unified FFI lib API

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
cryptography-sensitive pathsigning or wallet path
AI analysis · Informational 16/100

This commit updates the Xelis cryptocurrency integration in Stack Wallet. It switches from a development Git dependency to a pinned published package version, adds support for a new 'stage' test network, fixes a block explorer URL path, and makes address validation aware of which network an address belongs to. There is no direct evidence in the commit of a security vulnerability being fixed; it reads as a routine dependency and API alignment update.

Security candidatefix: fix randomx-rust related build issuesby sneurlax · 9376d9cc · Dec 27, 2025 · 1 fileMessage 57 · ThinInformational 2Details
Commit message · sneurlax

fix: fix randomx-rust related build issues

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
proof-of-work or emission validationcryptography-sensitive path
AI analysis · Informational 2/100

This commit is described as fixing a build problem with a component called randomx-rust. No actual code changes are visible because the diff was not provided. Based only on the title and message, this appears to be a routine build fix rather than a security issue.

AI review queuedoption to set restore/scan height for epiccash and a hacked in rescanby julian · 17077cc4 · Dec 19, 2025 · 6 filesMessage 50 · ThinLow 34Details
Commit message · julian

option to set restore/scan height for epiccash and a hacked in rescan

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 34/100

This commit adds a user-facing option to set a restore/scan height and perform a rescan for the Epic Cash (Mimblewimble) wallet in Stack Wallet. The code itself is a feature addition, but it uses a risky workaround: during a rescan it temporarily deletes and recovers the wallet from the seed phrase, and it rewrites existing transaction IDs by appending a counter so they don't collide in the local database. There is no direct evidence in the commit that this is a security fix or that it fixes a known vulnerability; it appears to be a functional improvement with some fragile data-handling code.

AI review queuedfix txv2 ui issuesby julian · 39612d0d · Dec 19, 2025 · 2 filesMessage 28 · OpaqueInformational 16Details
Commit message · julian

fix txv2 ui issues

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit fixes two user-interface bugs in the new transaction-details screen. First, notes attached to Mimblewimble/EPIC transactions were being saved under the wrong ID, so the note could be lost or mismatched. Second, trade cards were incorrectly shown for every outgoing transaction, even when no real trade existed, causing confusing or duplicate UI elements. These are correctness/UX fixes, not remote-exploitable security vulnerabilities.

Security candidatefeat(epic): use epic & epic-wallet v4, but with a patched epic-walletby sneurlax · 5c751905 · Dec 18, 2025 · 1 fileMessage 77 · AdequateInformational 21Details
Commit message · sneurlax

feat(epic): use epic & epic-wallet v4, but with a patched epic-wallet

Updated submodule crypto_plugins/flutter_libepiccash

77/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body
Why it was queued
cryptography-sensitive path
AI analysis · Informational 21/100

This commit updates a submodule called flutter_libepiccash to a newer version of the Epic Cash cryptocurrency library. The commit title says it uses a 'patched' version of epic-wallet v4, but the actual code changes are not visible in the provided diff. Without seeing the patch contents, we cannot tell whether this fixes a security bug, adds a feature, or changes behavior in a risky way.

AI review queuedtx details view ui code clean up (WIP)by julian · d3e56b6d · Dec 17, 2025 · 3 filesMessage 25 · OpaqueInformational 15Details
Commit message · julian

tx details view ui code clean up (WIP)

25/100 · OpaqueMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body! Contains work-in-progress language
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit is a user-interface code cleanup for the transaction details screen in Stack Wallet. It refactors repeated layout code into smaller reusable widgets, adjusts some text styles and dialog widths, and moves the block-explorer warning dialog into a new widget. There is no change to security-sensitive logic, cryptography, network handling, or data storage.

AI review queuedfix: spark mint fee vsize errorby julian · a1d458b1 · Dec 17, 2025 · 1 fileMessage 57 · ThinLow 35Details
Commit message · julian

fix: spark mint fee vsize error

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 35/100

This commit fixes a fee-calculation bug in the Spark privacy-coin minting code. The wallet was estimating transaction fees using a virtual size that was too small, which could lead to transactions paying too little in network fees. Such underpaid transactions may get stuck, fail to confirm, or be rejected by the network. The patch adds a 10-byte safety buffer to the size estimate and adds a debug log line to make future fee mismatches easier to spot.

AI review queuedmisc: update Xelis FFI lib, update deps to support flutter 3.35 out of the box (since sdk pinned to 3.9.0+ already)by Tritonn204 · d57249b9 · Dec 7, 2025 · 10 filesMessage 50 · ThinInformational 21Details
Commit message · Tritonn204

misc: update Xelis FFI lib, update deps to support flutter 3.35 out of the box (since sdk pinned to 3.9.0+ already)

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 21/100

This is a routine maintenance commit for the Stack Wallet app. It updates the Xelis cryptocurrency library, bumps several Flutter and Android build dependencies, and adjusts the code to match a newer version of the Xelis FFI API. There is no clear security fix or vulnerability being patched in the visible changes. The commit is described by its author as a miscellaneous compatibility update.

AI review queuedrefactor(spl) "spl"->"sol" where appropriateby sneurlax · 8d5cd8f4 · Nov 26, 2025 · 28 filesMessage 45 · ThinInformational 18Details
Commit message · sneurlax

refactor(spl) "spl"->"sol" where appropriate

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit is a large internal cleanup that renames Solana token-related code from 'SPL' naming to 'SOL' naming across the Stack Wallet app. It does not change how tokens are stored, validated, or sent. There is no visible security fix or vulnerability being patched in the diff.

AI review queuedrefactor(spl): align DefaultSplTokens usage w/ DefaultTokensby sneurlax · 70e42e84 · Nov 26, 2025 · 6 filesMessage 62 · AdequateLow 26Details
Commit message · sneurlax

refactor(spl): align DefaultSplTokens usage w/ DefaultTokens

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 26/100

This commit is a code cleanup that changes how the Stack Wallet app loads Solana token information. Previously, the app looked up tokens in a hard-coded default list and then in the local database. Now it relies primarily on the local database. The change removes duplicated lookup logic and moves wallet initialization to happen when a user selects a token rather than when the token view screen opens. There is no direct evidence in the commit that this fixes a security vulnerability; it appears to be a refactoring to make Solana token handling consistent with how other tokens are handled.

AI review queuedfix(spl): handle Sol tokens the same way Eth tokens areby sneurlax · 14c506c4 · Nov 26, 2025 · 2 filesMessage 62 · AdequateLow 27Details
Commit message · sneurlax

fix(spl): handle Sol tokens the same way Eth tokens are

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 27/100

This commit refactors how Solana (SPL) tokens are added and managed in Stack Wallet so they follow the same pattern already used for Ethereum tokens. It removes a large block of debug-only ownership-check code and replaces direct database updates with a new wallet method, `updateSolanaTokens`. It also makes sure the default Solana token list is seeded into the database if it is empty, mirroring existing Ethereum behavior. There is no direct evidence in the commit that this fixes an active security vulnerability, but it removes code that performed RPC calls and ownership checks from the UI layer, which reduces the attack surface and potential for mistakes.

AI review queuedfix(spl): Set->List to match Ethby sneurlax · 659f76f1 · Nov 26, 2025 · 3 filesMessage 57 · ThinInformational 16Details
Commit message · sneurlax

fix(spl): Set->List to match Eth

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 16/100

This commit changes how custom Solana token addresses are stored internally from a 'Set' (which automatically removes duplicates and ignores order) to a 'List' (which preserves order and allows duplicates) to match how Ethereum tokens are handled. There is no direct evidence in the commit that this fixes an active security vulnerability; it appears to be a consistency or data-type alignment change.

AI review queuedchore(spl): "SPL" -> "SOL" (we use both SPL and Token-2022 SOL tokens)by sneurlax · 7b0a23e5 · Nov 25, 2025 · 6 filesMessage 62 · AdequateInformational 15Details
Commit message · sneurlax

chore(spl): "SPL" -> "SOL" (we use both SPL and Token-2022 SOL tokens)

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only renames user-facing labels and code comments from 'SPL' to 'SOL' to reflect that the wallet supports both older SPL and newer Token-2022 Solana tokens. No program logic, calculations, network calls, or security behavior was changed.

AI review queuedrefactor(spl): reduce default spl token listby sneurlax · 71fa54d9 · Nov 25, 2025 · 2 filesMessage 80 · StrongInformational 17Details
Commit message · sneurlax

refactor(spl): reduce default spl token list

the sol token list could also be trimmed down but I am not comfortable with that yet or without changing the initialization process there bc as it's async, we may need to wait

80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100

This commit trims the built-in list of Solana tokens shown in the wallet. Instead of shipping a hardcoded default token list and merging it with user-added tokens, the app now only shows tokens that are already stored in its local database. This is a code cleanup/refactoring change; it does not fix a known exploit or change cryptographic behavior.

AI review queuedfeat(spl): add sol tokens to add wallet listby sneurlax · 6e345170 · Nov 25, 2025 · 6 filesMessage 57 · ThinInformational 15Details
Commit message · sneurlax

feat(spl): add sol tokens to add wallet list

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
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit adds support for Solana SPL tokens in the wallet's 'add wallet' list. It is a feature addition that mirrors existing Ethereum token functionality, with no apparent security-relevant changes.

AI review queuedupdate fee estimateby julian · 7d8ef179 · Nov 25, 2025 · 11 filesMessage 28 · OpaqueLow 38Details
Commit message · julian

update fee estimate

28/100 · OpaqueMessage clarity
✓ Subject identifies a change! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 38/100

This commit changes how transaction fees are estimated across many cryptocurrency wallets in the Stack Wallet app. The old formula used regular math with decimal numbers, which could lose precision or round incorrectly on very large fee values. The new formula uses exact integer (BigInt) arithmetic. The change is likely a bug-fix or hardening improvement rather than an active vulnerability, but it touches fee logic for many coins so it has broad reach.

AI review queuedspark min fee error info loggingby julian · ada6142f · Nov 25, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · julian

spark min fee error info logging

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100

This commit only adds a warning log message when a Spark mint transaction's calculated fee is too low. It does not change any logic, checks, or behavior. The same exception was already being thrown before; now the app also records an explanatory message for debugging.

AI review queueddart format and a couple tweaks/fixesby julian · 44fed9a2 · Nov 25, 2025 · 4 filesMessage 45 · ThinInformational 23Details
Commit message · julian

dart format and a couple tweaks/fixes

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 23/100

This commit is mostly code formatting, but it includes two small functional changes in the Solana custom-token screen: it now safely parses the 'decimals' value from fetched metadata instead of assuming it is a whole number, and it reads wallet info once with a non-reactive lookup rather than setting up a live watch. These are minor robustness fixes; there is no clear security vulnerability being patched.