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

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

332security candidates400second-pass queue732AI analyses
62commits · 30 days
156commits · 60 days
602commits · 180 days
1013commits · 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
32Strong · 80–100
307Adequate · 60–79
505Thin · 40–59
190Opaque · 0–39
32security 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
sneurlax338158241062
julian347112269044
Julian18637134042
Dan Miller831525053
Reuben Yap20318052
julian-CStack222049
levoncrypto24121043
Tritonn204412052
cassandras-lies413048
NyanCatTW1111045
Cyrix126804045
Analysis record

Published AI watches

Last scanned 41 minutes ago

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
Informational 24 AI analysisMessage 60 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Spark: add address ownership proof signing and verification

This commit adds a new feature to Stack Wallet that lets Spark (Firo privacy) address owners prove they control an address, and lets others verify that proof. It also fixes a few related UI issues: view-only wallets can now only verify (no…

New cryptographic signing/verification API integrated into walletView-only wallet restriction added to prevent signing with private keysWhitespace preservation in pasted messages reduces signature/verification mismatch risk
eb370258by Navid Rahimi+1097−16616 files
No security note in commit
Informational 20 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into feat/trocador-onion

This commit adds a small convenience feature in Stack Wallet: when a user scans or opens a Firo payment QR code that contains a 'message' field and the payment address is a Spark privacy address, the wallet now automatically copies that me…

Untrusted paymentData.message is copied into a transaction memo field without visible escaping/sanitizationRelies on SparkInterface.validateSparkAddress to gate memo population; correctness of that helper is not shown in the diffBehavior parity with firo-qt suggests a UX fix rather than a vulnerability fix
a0a72593by Julian+20−02 files
No security note in commit
Informational 19 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1463 from cypherstack/fix/firo-uri-message-to-spark-memo

This commit fixes a small user-experience gap in the Stack Wallet app for Firo cryptocurrency users. When someone scans or opens a Firo payment link (URI) that includes a message and the payment is going to a Spark privacy address, the app…

No security-relevant signals detected in the diff.Change is a UI autofill feature for Firo Spark memos from payment URI messages.No input sanitization changes beyond existing address validation.
48d10009by Julian+20−02 files
No security note in commit
Informational 19 AI analysisMessage 85 · Strong
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

fix(firo): fill spark memo from payment URI message

This commit fixes a small user-experience bug in Stack Wallet for Firo cryptocurrency. When a user scanned or pasted a firo: payment link containing a message, the app previously put that message only in the local private note field. Now, …

No input sanitization on URI-derived memo before assigning to controllerBehavior aligned with firo-qt reference implementationNo changes to signing, encryption, address parsing, or network calls
60a6112dby sneurlax+20−02 files
No security note in commit
Low 30 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1452 from levoncrypto/masternode-operator-reward

This commit removes the user-facing 'operator reward' field from the Firo masternode registration screen and hard-codes that value to zero in the wallet logic. It is a feature removal rather than a fix for an active security flaw, but it d…

Removal of user-supplied numeric field that directly influenced on-chain transaction payload (nOperatorReward basis points)Elimination of locale-dependent decimal parsing and rounding path for a consensus-relevant valueHard-coding of a transaction field that previously had range/validation checks
7d9cba12by Julian+1−622 files
No security note in commit
Low 42 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into masternode-operator-reward

This commit changes how a Firo cryptocurrency wallet picks a special 'owner address' when setting up a masternode. Previously, the wallet only made sure the owner address was different from the collateral address. Now it also checks that t…

Address reuse prevention for masternode owner/payout rolesDefensive validation of derived addresses before useException raised when a suitable distinct address cannot be derived
e88cb980by Julian+9−81 file
No security note in commit
Low 42 AI analysisMessage 58 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1453 from levoncrypto/masternode-payout-ui

This change updates the Firo wallet's masternode owner address selection so that the chosen owner address is different from both the collateral address and the payout address. Previously, the code only ensured the owner address differed fr…

Defensive address-distinctness check added for masternode owner addressPrevents owner address from matching payout address, not just collateral addressError message updated to reflect new dual-distinctness requirement
fb70bccaby Julian+9−81 file
No security note in commit
Informational 19 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into masternode-payout-ui

This commit is a routine feature merge that adds support for a new Ethereum token called rsFIRO across several app variants. It updates token lists, adds an icon, and includes a database migration so existing users automatically see the ne…

No security-relevant code changes observedNew asset and token configuration onlyDatabase migration is additive and idempotent (checks for existing contract before insert)
1324e37aby Julian+454−29520 files
No security note in commit
Informational 19 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge branch 'staging' into masternode-operator-reward

This commit is a routine feature merge that adds support for a new Ethereum token called rsFIRO, updates some app configuration scripts, refreshes a privacy-related Git dependency, and fills in missing API-key placeholders for exchange int…

Database migration inserts a hardcoded token contract if the app config includes it and the contract is not already presentExternal Git dependency mobile_app_privacy changed to a new commit; content of new commit not suppliedNew exchange API key placeholders added (Trocador, LetsExchange, CypherGoat) in test/prebuild scripts
8cc81383by Julian+500−30528 files
No security note in commit
Informational 19 AI analysisMessage 73 · Adequate
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge pull request #1448 from reubenyap/codex/rsfiro-app-config

This commit adds support for a new Ethereum token called rsFIRO and makes the list of default Ethereum tokens configurable for each app flavor (Stack Wallet, Stack Duo, Campfire). It also includes a database migration so existing users get…

Database migration inserts a hardcoded ERC-20 contract address into user data based on app configurationMigration checks for existing contract by case-insensitive address comparison before insertionToken icon rendering now branches on contract address equality, which is a presentation-layer change
6203aeaeby Julian+454−29520 files
No security note in commit
Informational 24 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

allow owner address to equal voting address

This small change relaxes a wallet rule for the Firo cryptocurrency. Previously, when setting up a masternode-like service, the wallet required the 'owner address' to be different from the 'voting address'. Now it allows them to be the sam…

Removal of address distinctness check between owner and voting addressesChange affects Firo masternode address derivation logicNo input validation, cryptographic, or memory-safety changes present
19add823by levoncrypto+3−41 file
No security note in commit
Moderate 59 AI analysisMessage 50 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

pick owner address distinct from payout and voting addresses

This change fixes how Stack Wallet picks a special 'owner address' for Firo masternode-related operations. Previously, the wallet only made sure the owner address was different from the collateral address. Now it also ensures it differs fr…

Address reuse prevention across masternode rolesFiro masternode owner/payout/voting address separationPrivacy improvement by avoiding identical addresses for distinct transaction roles
86b9ec97by levoncrypto+10−81 file
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

assets: clean rsFIRO SVGs with svgcleaner

This commit simply runs a cleanup tool on three SVG image files used for the rsFIRO cryptocurrency icon. It removes unnecessary formatting and metadata from the image files without changing their visual appearance. There is no security rel…

570e3e2aby Reuben Yap+3−333 files
No security note in commit
Informational 18 AI analysisMessage 45 · Thin
SW Stack WalletStack Wallet MoneroPrivacy protocolsSoftware wallets

Merge staging and keep the upstream CI workflow

This commit is a routine merge from a staging branch that mostly tidies up build scripts and CI. The only user-visible change is that the Firo wallet now groups 'revoked' and 'banned' masternodes together under a single red 'banned' label,…

Dependency version bump for mobile_app_privacy (git ref changed).gitignore relaxation for cs_monero build artifacts and diff filesCI/build scripts now auto-generate API key template with additional Trocador placeholders
2dbadce6by Reuben Yap+63−1610 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 queuedMerge pull request #1361 from cypherstack/fix/305-multiline-transaction-notesby Julian · 5172e63e · Oct 5, 2026 · 3 filesMessage 73 · AdequateInformational 19Details
Commit message · Julian

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

fix: support multiple lines in transaction note editing

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 pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 19/100

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` pattern. There is no security issue here; it is a straightforward user-interface improvement with added tests.

Security candidateMerge branch 'staging' into fix/305-multiline-transaction-notesby Julian · 21491edb · Oct 5, 2026 · 75 filesMessage 50 · ThinLow 32Details
Commit message · Julian

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

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathauthentication pathmerge-commit duplicate discount
AI analysis · Low 32/100

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 hardening for a data-wipe feature rather than an active security vulnerability. There is no clear exploit or malicious change in the diff, but the merge is broad and the actual production reset logic is only partially visible, so we cannot fully verify it is safe.

Security candidateMerge pull request #1455 from cypherstack/fix/desktop-pw-resetby Julian · 055e6c6b · Oct 5, 2026 · 54 filesMessage 73 · AdequateModerate 57Details
Commit message · Julian

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

fix(desktop): desktop forgot password flow and app startup process re…

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 pathauthentication pathmerge-commit duplicate discount
AI analysis · Moderate 57/100

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 close cleanly during that wipe. The change is defensive: it makes sure databases and background workers shut down before files are deleted, so leftover data or crashed workers do not leave sensitive information behind.

AI review queuedMerge branch 'staging' into fix/desktop-pw-resetby Julian · d9b5cc02 · Oct 5, 2026 · 23 filesMessage 45 · ThinLow 37Details
Commit message · Julian

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

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

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 decides whether it is running on a desktop or phone. The changes look like ordinary feature work rather than an obvious security patch, but a few areas could affect security: the new ownership-proof code uses private keys, the proxy library upgrade could change how Tor/proxy traffic is routed, and the desktop-detection refactor changes platform assumptions across the app.

AI review queuedMerge pull request #1439 from navidR/dev/navidr/spark-name-verificationby Julian · a5411a50 · Oct 5, 2026 · 16 filesMessage 83 · StrongLow 34Details
Commit message · Julian

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

Spark Names: add ownership proof generation

83/100 · StrongMessage clarity
✓ Specific, 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
defensive validationsigning or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 34/100

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, and it fixes message handling so pasted or typed messages keep their exact spaces and line breaks instead of being silently trimmed. The changes are mostly new feature code plus hardening of the UI around message integrity.

AI review queuedMerge branch 'staging' into dev/navidr/spark-name-verificationby Julian · 92955848 · Oct 5, 2026 · 7 filesMessage 60 · AdequateLow 39Details
Commit message · Julian

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

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
defensive validationsigning or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 39/100

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 Tor enabled, instead of callers hardcoding non-Tor connections. Previously, exchange calls always used the regular internet even if Tor was turned on, which could leak a user's IP address and trading activity to Trocador. The commit also updates the SOCKS5 proxy library and adds a test to verify that proxy requests correctly send hostnames (including .onion addresses) to the SOCKS server. Separately, it adds a small UI convenience: when paying a Spark private address, a payment message is auto-filled into the memo field, matching Firo-QT's behavior.

Security candidateSpark: add address ownership proof signing and verificationby Navid Rahimi · eb370258 · Oct 5, 2026 · 16 filesMessage 60 · AdequateInformational 24Details
Commit message · Navid Rahimi

Spark: add address ownership proof signing and verification

60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing boundarydefensive validationsigning or wallet path
AI analysis · Informational 24/100

This commit adds a new feature to Stack Wallet that lets Spark (Firo privacy) address owners prove they control an address, and lets others verify that proof. It also fixes a few related UI issues: view-only wallets can now only verify (not sign) Spark proofs, pasted messages keep exact spaces/newlines instead of being trimmed, and the signing/verification screens scroll properly on desktop. There is no direct evidence in the commit that this fixes an active security vulnerability; it reads as a feature addition with some hardening improvements.

AI review queuedMerge branch 'staging' into feat/trocador-onionby Julian · a0a72593 · Oct 5, 2026 · 2 filesMessage 45 · ThinInformational 20Details
Commit message · Julian

Merge branch 'staging' into feat/trocador-onion

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

This commit adds a small convenience feature in Stack Wallet: when a user scans or opens a Firo payment QR code that contains a 'message' field and the payment address is a Spark privacy address, the wallet now automatically copies that message into the Spark memo field. Spark memos are like short notes attached to private Firo transactions. The change is a user-experience improvement to match how the official Firo desktop wallet (firo-qt) behaves. There is no obvious security bug in the code itself, but it does involve handling untrusted payment data and trusting a third-party address-validation helper.

AI review queuedMerge pull request #1463 from cypherstack/fix/firo-uri-message-to-spark-memoby Julian · 48d10009 · Oct 5, 2026 · 2 filesMessage 73 · AdequateInformational 19Details
Commit message · Julian

Merge pull request #1463 from cypherstack/fix/firo-uri-message-to-spark-memo

Firo: fill spark memo from payment URI message

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 pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit fixes a small user-experience gap in the Stack Wallet app for Firo cryptocurrency users. When someone scans or opens a Firo payment link (URI) that includes a message and the payment is going to a Spark privacy address, the app now correctly copies that message into the Spark memo field. Previously, the message was apparently ignored for Spark addresses. There is no indication this is a security vulnerability; it is a feature-completion/fix for wallet behavior matching the official Firo wallet (firo-qt).

AI review queuedfix(firo): fill spark memo from payment URI messageby sneurlax · 60a6112d · Oct 4, 2026 · 2 filesMessage 85 · StrongInformational 19Details
Commit message · sneurlax

fix(firo): fill spark memo from payment URI message

Scanning or pasting a firo: URI only ever applied the message param to
the local note. firo-qt treats message as the spark memo when the
recipient is a spark address, so do the same in both send views.

85/100 · StrongMessage clarity
✓ Specific, 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 19/100

This commit fixes a small user-experience bug in Stack Wallet for Firo cryptocurrency. When a user scanned or pasted a firo: payment link containing a message, the app previously put that message only in the local private note field. Now, if the recipient is a Spark privacy address, the message is also placed in the Spark memo field, matching how the official Firo desktop wallet (firo-qt) behaves. This is a feature-parity fix, not a security patch.

AI review queuedMerge pull request #1452 from levoncrypto/masternode-operator-rewardby Julian · 7d9cba12 · Sep 25, 2026 · 2 filesMessage 73 · AdequateLow 30Details
Commit message · Julian

Merge pull request #1452 from levoncrypto/masternode-operator-reward

remove operator reward option from masternode registration

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 pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 30/100

This commit removes the user-facing 'operator reward' field from the Firo masternode registration screen and hard-codes that value to zero in the wallet logic. It is a feature removal rather than a fix for an active security flaw, but it does close off a potential input-validation and transaction-construction risk surface.

AI review queuedMerge branch 'staging' into masternode-operator-rewardby Julian · e88cb980 · Sep 25, 2026 · 1 fileMessage 50 · ThinLow 42Details
Commit message · Julian

Merge branch 'staging' into masternode-operator-reward

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

This commit changes how a Firo cryptocurrency wallet picks a special 'owner address' when setting up a masternode. Previously, the wallet only made sure the owner address was different from the collateral address. Now it also checks that the owner address is different from the payout address. This prevents the same address from being accidentally reused for two different roles, which could reduce privacy or cause bookkeeping problems. There is no direct evidence in the commit that this fixes an active security vulnerability, but it is a defensive improvement.

AI review queuedMerge pull request #1453 from levoncrypto/masternode-payout-uiby Julian · fb70bcca · Sep 25, 2026 · 1 fileMessage 58 · ThinLow 42Details
Commit message · Julian

Merge pull request #1453 from levoncrypto/masternode-payout-ui

pick owner address distinct from payout

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing or wallet pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Low 42/100

This change updates the Firo wallet's masternode owner address selection so that the chosen owner address is different from both the collateral address and the payout address. Previously, the code only ensured the owner address differed from the collateral address. The change appears to prevent a configuration where the owner, collateral, and payout addresses overlap, which could cause issues with masternode registration or rewards. There is no direct evidence in the commit that this fixes an active security vulnerability, but address reuse or overlap in masternode operations can have privacy and operational risks.

Security candidateMerge branch 'staging' into masternode-payout-uiby Julian · 1324e37a · Sep 25, 2026 · 20 filesMessage 45 · ThinInformational 19Details
Commit message · Julian

Merge branch 'staging' into masternode-payout-ui

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathauthentication pathmerge-commit duplicate discount
AI analysis · Informational 19/100

This commit is a routine feature merge that adds support for a new Ethereum token called rsFIRO across several app variants. It updates token lists, adds an icon, and includes a database migration so existing users automatically see the new token. There is no indication this change fixes a security vulnerability or introduces a known dangerous behavior.

Security candidateMerge branch 'staging' into masternode-operator-rewardby Julian · 8cc81383 · Sep 25, 2026 · 28 filesMessage 50 · ThinInformational 19Details
Commit message · Julian

Merge branch 'staging' into masternode-operator-reward

50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathauthentication pathmerge-commit duplicate discount
AI analysis · Informational 19/100

This commit is a routine feature merge that adds support for a new Ethereum token called rsFIRO, updates some app configuration scripts, refreshes a privacy-related Git dependency, and fills in missing API-key placeholders for exchange integrations. There is no direct evidence in the diff of a security vulnerability, malicious code, or a fix for a disclosed security issue. The changes are mostly product/configuration plumbing.

Security candidateMerge pull request #1448 from reubenyap/codex/rsfiro-app-configby Julian · 6203aeae · Sep 25, 2026 · 20 filesMessage 73 · AdequateInformational 19Details
Commit message · Julian

Merge pull request #1448 from reubenyap/codex/rsfiro-app-config

feat: add rsFIRO with configurable Ethereum token defaults

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 pathauthentication pathmerge-commit duplicate discount
AI analysis · Informational 19/100

This commit adds support for a new Ethereum token called rsFIRO and makes the list of default Ethereum tokens configurable for each app flavor (Stack Wallet, Stack Duo, Campfire). It also includes a database migration so existing users get rsFIRO added automatically. There is no obvious security vulnerability in the changes, but the migration logic has a subtle edge case that could, in theory, affect token data consistency.

AI review queuedallow owner address to equal voting addressby levoncrypto · 19add823 · Sep 25, 2026 · 1 fileMessage 45 · ThinInformational 24Details
Commit message · levoncrypto

allow owner address to equal voting address

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

This small change relaxes a wallet rule for the Firo cryptocurrency. Previously, when setting up a masternode-like service, the wallet required the 'owner address' to be different from the 'voting address'. Now it allows them to be the same. The change itself does not look like a typical security bug; it is more likely a feature or bug-fix for valid user setups. However, because it removes a deliberate separation between two addresses, it could slightly weaken privacy or governance separation in some configurations. There is no evidence in the commit of a vulnerability, exploit, or security disclosure.

AI review queuedpick owner address distinct from payout and voting addressesby levoncrypto · 86b9ec97 · Sep 25, 2026 · 1 fileMessage 50 · ThinModerate 59Details
Commit message · levoncrypto

pick owner address distinct from payout and voting addresses

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 · Moderate 59/100

This change fixes how Stack Wallet picks a special 'owner address' for Firo masternode-related operations. Previously, the wallet only made sure the owner address was different from the collateral address. Now it also ensures it differs from the payout and voting addresses. Using the same address for multiple roles could weaken privacy or cause operational problems in how the wallet tracks funds and masternode rewards.

AI review queuedassets: clean rsFIRO SVGs with svgcleanerby Reuben Yap · 570e3e2a · Sep 24, 2026 · 3 filesMessage 45 · ThinInformational 15Details
Commit message · Reuben Yap

assets: clean rsFIRO SVGs with svgcleaner

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 simply runs a cleanup tool on three SVG image files used for the rsFIRO cryptocurrency icon. It removes unnecessary formatting and metadata from the image files without changing their visual appearance. There is no security relevance.

AI review queuedMerge staging and keep the upstream CI workflowby Reuben Yap · 2dbadce6 · Sep 24, 2026 · 10 filesMessage 45 · ThinInformational 18Details
Commit message · Reuben Yap

Merge staging and keep the upstream CI workflow

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

This commit is a routine merge from a staging branch that mostly tidies up build scripts and CI. The only user-visible change is that the Firo wallet now groups 'revoked' and 'banned' masternodes together under a single red 'banned' label, instead of showing them as two separate statuses. It also updates a privacy-related internal dependency and makes sure empty API key templates are created automatically during builds and tests. There is no obvious security vulnerability in the diff itself.

AI review queuedremove operator reward option from masternode registrationby levoncrypto · 77ea7c04 · Sep 23, 2026 · 2 filesMessage 50 · ThinInformational 23Details
Commit message · levoncrypto

remove operator reward option from masternode registration

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

This commit removes the user-facing 'operator reward' field from the Firo masternode registration screen and hard-codes that value to 0. The change simplifies the form and prevents users from entering an operator reward percentage. There is no direct evidence in the commit that this fixes an active security vulnerability, but it does eliminate a potential source of user error or misuse in how masternodes are registered.

AI review queuedclean up and fix ciby Julian · abae853a · Sep 23, 2026 · 6 filesMessage 38 · OpaqueInformational 13Details
Commit message · Julian

clean up and fix ci

38/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 13/100

This commit is routine build and continuous-integration housekeeping. It adds missing placeholder API key entries for several exchange partners (including Trocador) to test and prebuild scripts, removes some stale gitignore entries, and fixes a minor string formatting issue in an error message. There is no indication of a security vulnerability being fixed.

AI review queuedMerge pull request #1451 from levoncrypto/masternode-statusby Julian · 2a92caba · Sep 23, 2026 · 2 filesMessage 73 · AdequateInformational 19Details
Commit message · Julian

Merge pull request #1451 from levoncrypto/masternode-status

use ACTIVE/BANNED masternode statuses, revoked masternodes are banned

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 pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit simplifies how the Stack Wallet app displays Firo masternode status. Previously, the app distinguished between masternodes that were 'banned' and those that were 'revoked'. Now both conditions are shown as 'BANNED' with a red color. This is a user-interface labeling change; it does not appear to alter wallet security, transaction handling, or private keys.

AI review queueduse ACTIVE/BANNED masternode statuses, revoked masternodes are bannedby levoncrypto · 3d724b93 · Sep 23, 2026 · 2 filesMessage 50 · ThinInformational 16Details
Commit message · levoncrypto

use ACTIVE/BANNED masternode statuses, revoked masternodes are banned

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

This commit simplifies how the Stack Wallet app labels Firo masternodes. Previously, the app distinguished between 'banned' and 'revoked' masternodes, showing banned ones in orange and revoked ones in red. Now both states are treated as 'banned' and shown in red. This is a UI/status-label change; it does not appear to alter how transactions are signed, validated, or how funds are handled.

AI review queuedMerge branch 'staging' into codex/rsfiro-app-configby Reuben Yap · fee7936d · Sep 23, 2026 · 2 filesMessage 50 · ThinInformational 20Details
Commit message · Reuben Yap

Merge branch 'staging' into codex/rsfiro-app-config

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

This commit is a routine merge that improves how the Stack Wallet app displays Firo masternode status. Previously, a masternode was shown as simply 'ACTIVE' or 'REVOKED' based only on whether it had been revoked. Now it can also show 'BANNED' when the masternode has been banned for misbehavior (a 'poseBanHeight' value other than -1). The colors in the UI were also updated so banned nodes appear orange instead of green or red. There is no indication this fixes a security vulnerability; it is a user-interface accuracy improvement.