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
999commits · 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 28 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.

AI review queuedfix(particl): override bitcoindart in order to resolve dependency issueby sneurlax · 4958bfd3 · Mar 24, 2026 · 2 filesMessage 89 · StrongLow 26Details
Commit message · sneurlax

fix(particl): override bitcoindart in order to resolve dependency issue

had to `sudo apt-get install -y lld-18` tho

89/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Explains rationale or failure mode
Why it was queued
second-pass: broader security terminology
AI analysis · Low 26/100

This commit updates the Stack Wallet app's package dependencies and adds an override so that a specific Bitcoin-related library (bitcoindart) is pinned to a CypherStack-controlled version. The stated reason is to fix a dependency conflict introduced by another package (bip47). The change itself is a build/dependency configuration update, not a code-level security fix. There is no direct evidence in the commit that this resolves a vulnerability, only that it resolves a dependency issue.

Security candidatefix(windows): enable secp256k1 recovery module in batch build scriptby sneurlax · ab43945b · Mar 24, 2026 · 1 fileMessage 62 · AdequateInformational 19Details
Commit message · sneurlax

fix(windows): enable secp256k1 recovery module in batch build script

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

This commit updates a Windows build script for a cryptographic library (secp256k1) used by Stack Wallet. It turns on the 'recovery' module, which is needed to recover public keys from signatures, and cleans up old build directories before compiling. There is no direct evidence in the commit that this fixes an active security vulnerability; it appears to be a build-configuration correction to make the wallet compile and function correctly on Windows.

Security candidatefix(linux): enable secp256k1 recovery module in build scriptby sneurlax · 290eae2d · Mar 24, 2026 · 1 fileMessage 62 · AdequateLow 44Details
Commit message · sneurlax

fix(linux): enable secp256k1 recovery module in build script

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 · Low 44/100

This commit changes a Linux build script for the secp256k1 cryptographic library so that it explicitly enables the 'recovery' module. The recovery module allows a wallet to recover the public key from a digital signature, which is needed for some Bitcoin-style transaction verification. Without this module enabled, the built library would lack those functions, which could cause wallet operations to fail or fall back to less secure behavior. The change itself is a build-configuration fix, not an active exploit.

Security candidatefix(windows): enable secp256k1 recovery module in WSL build scriptby sneurlax · 0b9bbf15 · Mar 24, 2026 · 1 fileMessage 62 · AdequateInformational 23Details
Commit message · sneurlax

fix(windows): enable secp256k1 recovery module in WSL build script

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

This commit changes a Windows build script used in WSL to compile the secp256k1 cryptographic library. It turns on the 'recovery' module, which adds support for recovering public keys from signatures, and adds a cleanup step to remove old build files. This is most likely a build-fix or feature-enablement rather than a security patch, but enabling extra cryptographic modules can have security implications depending on how the resulting library is used.

Lower-priorityfix(paynym): handle claim success check and add null-token guardby sneurlax · 20817730 · Mar 24, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax

fix(paynym): handle claim success check and add null-token guard

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix(paynym): handle bool "claimed" field in PaynymClaim.fromMapby sneurlax · ec0542ff · Mar 24, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax

fix(paynym): handle bool "claimed" field in PaynymClaim.fromMap

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatefix(paynym): use Bitcoin message signature for PayNym claimby sneurlax · 8bcc1659 · Mar 24, 2026 · 1 fileMessage 67 · AdequateModerate 57Details
Commit message · sneurlax

fix(paynym): use Bitcoin message signature for PayNym claim

67/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Names security-relevant behavior explicitly! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Moderate 57/100

This commit changes how Stack Wallet proves ownership of a PayNym identity. PayNyms are reusable payment codes in Bitcoin-style wallets. The old code signed raw bytes directly with the notification key; the new code signs using the standard 'Bitcoin message' format (the same kind of signature used by wallet message-signing features). The change likely fixes a compatibility or security issue where PayNym servers or counterparties could not properly verify the old signature, which could prevent claiming a PayNym or allow signature misuse.

Lower-prioritytest(paynym): add PayNym.rs POST tests for endpointsby sneurlax · 92084c0e · Mar 23, 2026 · 2 filesMessage 87 · StrongTriage 0Details
Commit message · sneurlax

test(paynym): add PayNym.rs POST tests for endpoints

TODO: refactor `paynym_is`->`paynym_rs`

chore: dart format

87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
Lower-priorityfix(paynym): handle empty/non-JSON response bodies in _post()by sneurlax · 0471b6de · Mar 23, 2026 · 1 fileMessage 97 · StrongTriage 0Details
Commit message · sneurlax

fix(paynym): handle empty/non-JSON response bodies in _post()

wrap jsonDecode(response.body) in a try/catch with isEmpty guard to prevent FormatException when paynym.rs returns non-200 with empty body

97/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
Lower-priorityfeat(shopinbit): add Services and Gift Cards content pages with routesby sneurlax · fad4d54c · Mar 20, 2026 · 5 filesMessage 62 · AdequateTriage 0Details
Commit message · sneurlax

feat(shopinbit): add Services and Gift Cards content pages with routes

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Security candidatefeat(shopinbit): add ShopInBit offer review and shipping address viewsby sneurlax · 61d73111 · Mar 20, 2026 · 3 filesMessage 62 · AdequateInformational 16Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit offer review and shipping address views

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
authentication path
AI analysis · Informational 16/100

This commit adds two new screens to the Stack Wallet app for a third-party shopping service called ShopInBit: one screen lets users review a purchase offer, and another lets them enter a shipping address. The code itself is a normal feature addition, but it does a few things that could matter for security and privacy: it sends the user's shipping address (name, street, city, postal code, country) to ShopInBit's servers, it silently ignores server errors and continues to the payment screen anyway, and it splits the full name into first/last name in a crude way. There is no sign in the commit that this is described as a security fix or that any vulnerability was reported.

Security candidatefeat(shopinbit): add ShopInBit confirm send viewsby sneurlax · ef514217 · Mar 20, 2026 · 3 filesMessage 57 · ThinInformational 11Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit confirm send views

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
authentication path
AI analysis · Informational 11/100

This commit adds two new user interface screens for a feature called ShopInBit: one for collecting a billing address for a car research fee, and another for confirming and sending a cryptocurrency payment. It also registers the new address screen in the app's route list. There is no indication in the code that this fixes a security bug; it appears to be ordinary feature development.

Security candidatefeat(shopinbit): add ShopInBit order creation flow (steps 1-4)by sneurlax · c9f7808d · Mar 20, 2026 · 5 filesMessage 62 · AdequateInformational 15Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit order creation flow (steps 1-4)

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
authentication path
AI analysis · Informational 15/100

This commit adds four new screens that walk a user through creating a ShopInBit order inside the Stack Wallet app. It is purely a feature addition: collecting a display name, showing service guidelines, and submitting a request description and delivery country to the ShopInBit service. There is no indication in the commit that this fixes a security bug or introduces a vulnerability.

Security candidatefeat(shopinbit): add ShopInBit ticket management viewsby sneurlax · f3f6f42f · Mar 20, 2026 · 4 filesMessage 62 · AdequateInformational 13Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit ticket management views

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
authentication path
AI analysis · Informational 13/100

This commit adds new screens for managing ShopInBit support tickets inside the Stack Wallet app. It lets users view ticket status, read messages, and send replies. The code also renders images embedded in messages by decoding base64 data. There is no clear security bug, but the image decoding and HTML stripping are done with simple regular expressions, which could be fragile if a malicious server sends unusual message content. The commit itself is a feature addition, not a fix.

Security candidatefeat(shopinbit): add ShopInBit data models and DB schemaby sneurlax · afe46d6e · Mar 19, 2026 · 5 filesMessage 62 · AdequateInformational 15Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit data models and DB schema

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
authentication path
AI analysis · Informational 15/100

This commit adds new data models and database schema for a feature called ShopInBit. It defines how the app will store shopping/concierge ticket information locally, including order details, shipping addresses, messages, and status. There is no security fix or vulnerability present in this commit—it is purely new feature code.

Security candidatefeat(shopinbit): add ShopInBit API client and service layerby sneurlax · 14983c1a · Mar 19, 2026 · 7 filesMessage 62 · AdequateLow 26Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit API client and service layer

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
authentication path
AI analysis · Low 26/100

This commit adds a new feature: a Dart client and service layer for integrating with the ShopInBit API inside the Stack Wallet app. It lets the wallet talk to ShopInBit to create support tickets, upload messages/attachments, manage vouchers, handle car-research invoices, register push notifications, and verify webhooks. The code also adds generic HTTP PATCH and DELETE helpers. From the diff alone there is no clear security bug, but several design choices are worth reviewing: the service defaults to sandbox mode, customer keys are stored in the app's general preferences box, and attachment URLs can optionally put authentication tokens in query parameters where they may leak in logs or referrers.

Security candidatefeat(shopinbit): add ShopInBit API data modelsby sneurlax · b22b047a · Mar 19, 2026 · 12 filesMessage 57 · ThinInformational 15Details
Commit message · sneurlax

feat(shopinbit): add ShopInBit API data models

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
authentication path
AI analysis · Informational 15/100

This commit only adds new Dart data-model classes for a third-party shopping service called ShopInBit. It defines how the app represents things like addresses, tickets, payments, vouchers, and API errors. There is no executable network, authentication, or business logic here, and nothing in the commit changes existing behavior or fixes a known problem. It is a routine feature addition with no direct security relevance.

AI review queuedFix Firo masternode registration to use external collateral instead of redundantly re-sending 1000 FIROby Navid Rahimi · 1069b40b · Mar 15, 2026 · 7 filesMessage 50 · ThinHigh 70Details
Commit message · Navid Rahimi

Fix Firo masternode registration to use external collateral instead of redundantly re-sending 1000 FIRO

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 · High 70/100

This commit fixes a bug in Stack Wallet's Firo masternode registration feature. Previously, the wallet would redundantly send another 1000 FIRO inside the registration transaction itself, using that new output as collateral. The updated code instead uses an existing 1000 FIRO unspent output (UTXO) in the wallet as collateral, which is the correct behavior for Firo masternodes. The change also adds checks that the collateral exists, is confirmed, is exactly 1000 FIRO, and is signed with the correct private key. This prevents users from accidentally spending an extra 1000 FIRO and makes the registration compatible with standard Firo masternode requirements.

Lower-priorityfix: _getLastAutoBackup() reading from wrong Hive keyby sneurlax · a4b97e8c · Mar 5, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax

fix: _getLastAutoBackup() reading from wrong Hive key

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix: PayNym following list serialization bugby sneurlax · 825acf18 · Mar 5, 2026 · 1 fileMessage 57 · ThinTriage 0Details
Commit message · sneurlax

fix: PayNym following list serialization bug

57/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix: show error screen instead of black screen when second instance launchedby sneurlax · ce46d2fe · Mar 5, 2026 · 1 fileMessage 62 · AdequateTriage 0Details
Commit message · sneurlax

fix: show error screen instead of black screen when second instance launched

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
Lower-priorityfix: show themed error screen when second instance tries to startby sneurlax · f4ff1fd0 · Mar 5, 2026 · 2 filesMessage 62 · AdequateTriage 0Details
Commit message · sneurlax

fix: show themed error screen when second instance tries to start

62/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope! No meaningful explanatory body
AI review queuedfeat: use token ticker in confirm send dialog if it's availableby sneurlax · 6fca0f15 · Mar 3, 2026 · 1 fileMessage 62 · AdequateInformational 15Details
Commit message · sneurlax

feat: use token ticker in confirm send dialog if it's available

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 is a minor user-interface improvement. It changes the transaction confirmation screen so that when sending a token, the token's short name (ticker) is shown in the desktop send-authorization widget instead of falling back to the main coin name. There is no security-relevant change visible in the code.

Lower-priorityfeat: update cypherstack/bitcoindart to point to fix/particl off masterby sneurlax · ea7c0d55 · Mar 3, 2026 · 1 fileMessage 95 · StrongTriage 0Details
Commit message · sneurlax

feat: update cypherstack/bitcoindart to point to fix/particl off master

had been testing this locally
TODO: merge https://github.com/cypherstack/bitcoindart/pull/9 and update it again

95/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Security candidatefix: Particl wallet P2PKH signing and checkBlockUTXO castby sneurlax · b3d5017b · Mar 3, 2026 · 1 fileMessage 62 · AdequateLow 40Details
Commit message · sneurlax

fix: Particl wallet P2PKH signing and checkBlockUTXO cast

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 boundarysigning or wallet path
AI analysis · Low 40/100

This commit fixes two bugs in Stack Wallet's support for the Particl cryptocurrency. First, it corrects how the app reads transaction data returned by ElectrumX servers, replacing a brittle type cast with safer loop-based lookup. Second, it removes a hack that stripped trailing zero bytes from raw Particl transaction hex, and instead passes a flag so the underlying library produces the correct hex directly. These are correctness fixes for transaction building and UTXO parsing; they do not appear to be security patches for an exploitable vulnerability, but the removed hex-stripping hack could theoretically have produced malformed transactions.