What changed, and why it matters
This commit is a collection of tiny cleanups ('nits'): documentation wording and punctuation fixes, a comment tweak, a grammar fix, and adding one setting key ('lfr') to the list of values excluded from backups because it is a temporary error message. None of these changes affect security-relevant code behavior.
No security action needed; routine review/merge is appropriate.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff contains only cosmetic/non-functional changes. docs/spending-policy.md receives wording and punctuation edits. shared/exceptions.py and shared/web2fa.py receive comment/string grammar fixes. shared/backups.py adds ‘lfr’ to an existing allowlist of settings keys skipped during backup rendering, alongside existing skips like ‘ccc’ and ‘ktrx’. No logic, control flow, cryptographic, or authorization behavior is changed.
Changed components
docs/spending-policy.mdshared/backups.pyshared/exceptions.pyshared/web2fa.pyInspect captured patch +12 / −12
diff --git a/docs/spending-policy.md b/docs/spending-policy.md
index eca3f45..6938198 100644
--- a/docs/spending-policy.md
+++ b/docs/spending-policy.md
@@ -26,16 +26,17 @@ When a Spending Policy is in effect, there are limitations
in effect:
- Firmware updates are blocked.
-- There is no way to backup the COLDCARD
+- There is no way to backup the COLDCARD.
- Seed vault and Secure Notes are read-only (and can also be hidden).
- Settings menu is inaccessible.
+- BIP-39 passphrases may be blocked (optional).
We recommend getting the COLDCARD fully configured and setup
for typical transactions before enabling the Spending Policy.
# Setup Spending Policy
-Visit `Advanced / Tool > Spending Policy` menu and choose
+Visit `Advanced / Tools > Spending Policy` menu and choose
"Single-Signer". First some background information is shown,
then you are prompted to define the "Bypass PIN". This PIN code
is only used when you need to disable the spending policy, but is
@@ -137,21 +138,18 @@ holding a copy of the seed words.
## Passphrase Considerations
-If you are using a BIP-39 passphrase for everything, you should
+If you are using the same BIP-39 passphrase for everything, you should
probably do a "Lock Down Seed" (Advanced/Tools > Danger Zone > Seed
Functions) first. This takes your master seed and BIP-39 passphrase
and cooks them together into an XPRV which then is stored as your
-master secret. (It is not a seed phrase anymore.) This process
+master secret. (Replacing the master seed phrase.) This process
cannot be reversed, so other funds you may have on the same seed
words are protected. Once you are operating in XPRV mode, you can
-define a spending policy and know that it is restricted to only
+define a spending policy, and know that it is restricted to only
that wallet.
-You could, alternatively, can also block access to other related
-keys, which removes the "Passphrase" entry option from the main
-menu, but that protection doesn't seem as strong. When operating in
-XPRV mode, the "Passphrase" menu item is not shown because
-BIP-39 passwords cannot be applied to XPRV secrets.
+When operating in XPRV mode, the "Passphrase" menu item is not shown
+because BIP-39 passwords cannot be applied to XPRV secrets.
## Trick PIN Thoughts
@@ -208,3 +206,4 @@ reset except for the main PIN code which is unchanged. Once you've
done that, you can enter your seed words from backup (or restore a
backup file) and continue to use the COLDCARD again.
+
diff --git a/shared/backups.py b/shared/backups.py
index 3a4ef4e..faf0232 100644
--- a/shared/backups.py
+++ b/shared/backups.py
@@ -101,6 +101,7 @@ def render_backup_contents(bypass_tmp=False):
if k == 'words': continue # words length is recalculated from secret
if k == 'ccc': continue # not supported, security issue
if k == 'ktrx': continue # not useful after the fact
+ if k == 'lfr': continue # temporary error msg value
if k == 'seedvault' and not v: continue
if k == 'seeds' and not v: continue
ADD('setting.' + k, v)
diff --git a/shared/exceptions.py b/shared/exceptions.py
index b19175f..e701d78 100644
--- a/shared/exceptions.py
+++ b/shared/exceptions.py
@@ -51,7 +51,7 @@ class QRDecodeExplained(ValueError):
class UnknownAddressExplained(ValueError):
pass
-# We're not going to co-sign using spending policy features
+# We're not going to (co-)sign using spending policy features
class SpendPolicyViolation(RuntimeError):
pass
diff --git a/shared/web2fa.py b/shared/web2fa.py
index 80f774e..b78fc1d 100644
--- a/shared/web2fa.py
+++ b/shared/web2fa.py
@@ -123,7 +123,7 @@ async def web2fa_enroll(ss=None):
await show_qr_code(qr, is_alnum=False, msg="Import into 2FA Mobile App",
force_msg=True)
- # important: force them to prove they store it correctly
+ # important: force them to prove they stored it correctly
ok = await perform_web2fa('Enroll: COLDCARD', ss)
if ok: break
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.