Additions
This commit is contained in:
parent
e48e0a8ae6
commit
bf03211c35
@ -11,3 +11,6 @@ wants to understand why it's safe to put your moneys into Coldcard.
|
||||
- [`bitcoin-core-usage.md`](bitcoin-core-usage.md) How to use with Bitcoin Core.
|
||||
- [`limitations.md`](limitations.md) Documented limitations, policy choices, and TODO items.
|
||||
- [`paperwallet.pdf`](paperwallet.pdf) Example paper wallet template file.
|
||||
- [`seed-xor.md`](seed-xor.md) More about XOR Seed feature, including fFully worked Seed XOR example, and useful XOR lookup chart.
|
||||
- [`menu-tree.txt`](menu-tree.txt) Dump of the menu system. Incomplete, may be out of date.
|
||||
|
||||
|
||||
193
docs/menu-tree.txt
Normal file
193
docs/menu-tree.txt
Normal file
@ -0,0 +1,193 @@
|
||||
|
||||
No PIN Set
|
||||
Choose PIN Code
|
||||
Advanced
|
||||
View Identity
|
||||
Upgrade firmware
|
||||
Show Version
|
||||
From MicroSD
|
||||
Bless Firmware
|
||||
Paper Wallets [MAYBE]
|
||||
Perform Selftest
|
||||
Secure Logout
|
||||
Bag Number
|
||||
Help
|
||||
|
||||
Empty Wallet
|
||||
New Wallet
|
||||
Import Existing
|
||||
24 Words
|
||||
18 Words
|
||||
12 Words
|
||||
Restore Backup
|
||||
Clone Coldcard
|
||||
Import XPRV
|
||||
Dice Rolls
|
||||
Seed XOR
|
||||
Help
|
||||
Advanced
|
||||
View Identity
|
||||
Upgrade
|
||||
Show Version
|
||||
From MicroSD
|
||||
Bless Firmware
|
||||
Paper Wallets [MAYBE]
|
||||
Perform Selftest
|
||||
I Am Developer.
|
||||
Secure Logout
|
||||
Settings
|
||||
Idle Timeout
|
||||
2 minutes
|
||||
5 minutes
|
||||
15 minutes
|
||||
1 hour
|
||||
4 hours
|
||||
8 hours
|
||||
Never
|
||||
Login Countdown
|
||||
Disabled
|
||||
5 minutes
|
||||
15 minutes
|
||||
30 minutes
|
||||
1 hour
|
||||
2 hours
|
||||
4 hours
|
||||
8 hours
|
||||
12 hours
|
||||
24 hours
|
||||
48 hours
|
||||
3 days
|
||||
1 week
|
||||
28 days later
|
||||
Max Network Fee
|
||||
10% (default)
|
||||
25%
|
||||
50%
|
||||
no limit
|
||||
PIN Options
|
||||
Multisig Wallets
|
||||
Set Nickname
|
||||
Scramble Keypad
|
||||
Delete PSBTs
|
||||
Disable USB
|
||||
Normal
|
||||
Disable USB
|
||||
Display Units
|
||||
BTC
|
||||
mBTC
|
||||
bits
|
||||
sats
|
||||
|
||||
Normal
|
||||
Ready To Sign
|
||||
Passphrase [MAYBE]
|
||||
Start HSM Mode [MAYBE]
|
||||
Address Explorer
|
||||
Secure Logout
|
||||
Advanced
|
||||
View Identity
|
||||
Upgrade
|
||||
Show Version
|
||||
From MicroSD
|
||||
Bless Firmware
|
||||
Backup
|
||||
Backup System
|
||||
Verify Backup
|
||||
Restore Backup
|
||||
Clone Coldcard [MAYBE]
|
||||
Dump Summary
|
||||
MicroSD Card
|
||||
Verify Backup
|
||||
Backup System
|
||||
Dump Summary
|
||||
Export Wallet
|
||||
Bitcoin Core
|
||||
Electrum Wallet
|
||||
Wasabi Wallet
|
||||
Generic JSON
|
||||
Sign Text File [MAYBE]
|
||||
Upgrade From SD
|
||||
Clone Coldcard [MAYBE]
|
||||
List Files
|
||||
Format Card
|
||||
Paper Wallets [MAYBE]
|
||||
User Management [MAYBE]
|
||||
Derive Entropy
|
||||
Danger Zone
|
||||
Debug Functions
|
||||
Debug: assert
|
||||
Debug: except
|
||||
Check: BL FW
|
||||
Warm Reset
|
||||
Seed Functions
|
||||
View Seed Words
|
||||
Seed XOR
|
||||
Split Existing
|
||||
Restore Seed XOR
|
||||
Destroy Seed
|
||||
Lock Down Seed
|
||||
I Am Developer.
|
||||
Wipe Patch Area
|
||||
Perform Selftest
|
||||
Set High-Water
|
||||
Wipe HSM Policy [MAYBE]
|
||||
Clear OV cache
|
||||
Testnet Mode
|
||||
Settings space
|
||||
Settings
|
||||
Idle Timeout
|
||||
2 minutes
|
||||
5 minutes
|
||||
15 minutes
|
||||
1 hour
|
||||
4 hours
|
||||
8 hours
|
||||
Never
|
||||
Login Countdown
|
||||
Disabled
|
||||
5 minutes
|
||||
15 minutes
|
||||
30 minutes
|
||||
1 hour
|
||||
2 hours
|
||||
4 hours
|
||||
8 hours
|
||||
12 hours
|
||||
24 hours
|
||||
48 hours
|
||||
3 days
|
||||
1 week
|
||||
28 days later
|
||||
Max Network Fee
|
||||
10% (default)
|
||||
25%
|
||||
50%
|
||||
no limit
|
||||
PIN Options
|
||||
Multisig Wallets
|
||||
Set Nickname
|
||||
Scramble Keypad
|
||||
Delete PSBTs
|
||||
Disable USB
|
||||
Normal
|
||||
Disable USB
|
||||
Display Units
|
||||
BTC
|
||||
mBTC
|
||||
bits
|
||||
sats
|
||||
|
||||
Factory Mode
|
||||
Bag Me Now
|
||||
DFU Upgrade
|
||||
Show Version
|
||||
Ship W/O Bag
|
||||
Debug Functions
|
||||
Debug: assert
|
||||
Debug: except
|
||||
Check: BL FW
|
||||
Warm Reset
|
||||
Perform Selftest
|
||||
|
||||
|
||||
|
||||
96
docs/seed-xor.md
Normal file
96
docs/seed-xor.md
Normal file
@ -0,0 +1,96 @@
|
||||
## XOR Lookup Table
|
||||
|
||||
|
||||
| XOR | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
|
||||
|----:|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---
|
||||
|**0**| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
|
||||
|**1**| 1 | 0 | 3 | 2 | 5 | 4 | 7 | 6 | 9 | 8 | B | A | D | C | F | E
|
||||
|**2**| 2 | 3 | 0 | 1 | 6 | 7 | 4 | 5 | A | B | 8 | 9 | E | F | C | D
|
||||
|**3**| 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | B | A | 9 | 8 | F | E | D | C
|
||||
|**4**| 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3 | C | D | E | F | 8 | 9 | A | B
|
||||
|**5**| 5 | 4 | 7 | 6 | 1 | 0 | 3 | 2 | D | C | F | E | 9 | 8 | B | A
|
||||
|**6**| 6 | 7 | 4 | 5 | 2 | 3 | 0 | 1 | E | F | C | D | A | B | 8 | 9
|
||||
|**7**| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | F | E | D | C | B | A | 9 | 8
|
||||
|**8**| 8 | 9 | A | B | C | D | E | F | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
|
||||
|**9**| 9 | 8 | B | A | D | C | F | E | 1 | 0 | 3 | 2 | 5 | 4 | 7 | 6
|
||||
|**A**| A | B | 8 | 9 | E | F | C | D | 2 | 3 | 0 | 1 | 6 | 7 | 4 | 5
|
||||
|**B**| B | A | 9 | 8 | F | E | D | C | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4
|
||||
|**C**| C | D | E | F | 8 | 9 | A | B | 4 | 5 | 6 | 7 | 0 | 1 | 2 | 3
|
||||
|**D**| D | C | F | E | 9 | 8 | B | A | 5 | 4 | 7 | 6 | 1 | 0 | 3 | 2
|
||||
|**E**| E | F | C | D | A | B | 8 | 9 | 6 | 7 | 4 | 5 | 2 | 3 | 0 | 1
|
||||
|**F**| F | E | D | C | B | A | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
|
||||
|
||||
|
||||
- XOR = EOR = ⊕ = Exclusive OR [Wikipedia](https://en.wikipedia.org/wiki/Exclusive_or)
|
||||
- values in table are: x ⊕ y in hex
|
||||
- go sideways for first digit, then look down for second digit
|
||||
- in fact, doesn't matter if you do row or column first
|
||||
- example: 2 XOR 6 => 4 same as 6 XOR 2 => 4
|
||||
- any values XOR itself is zero (diagonal on this table)
|
||||
- alternative view: (x) XOR (y) = flip bits of (x) that are set in (y)
|
||||
- XOR with zero does nothing (flips no bits)
|
||||
- XOR with 0xF flips all four bits
|
||||
- XOR with self flips all set bits, so gives zero
|
||||
- to XOR three values together, do (a⊕b)=X then (X⊕c)=answer
|
||||
- right to A, down to B ... take that number, and go to that column
|
||||
- down to C, that is answer: a ⊕ b ⊕ c
|
||||
|
||||
---
|
||||
|
||||
# XOR Seed Example Using 3 Parts
|
||||
|
||||
## Seed A (1 of 3)
|
||||
|
||||
1=romance [5DC], 2=wink [7DE], 3=lottery [420], 4=autumn [07D], 5=shop [635], 6=bring [0E1],
|
||||
7=dawn [1BF], 8=tongue [723], 9=range [58E], 10=crater [194], 11=truth [74E], 12=ability [001],
|
||||
13=miss [46E], 14=spice [68C], 15=fitness [2BF], 16=easy [22E], 17=legal [3FB], 18=release [5A9],
|
||||
19=recall [59B], 20=obey [4BF], 21=exchange [275], 22=recycle [59F], 23=dragon [210], 24=room [5DF]
|
||||
|
||||
A = 5DC 7DE 420 07D 635 0E1 1BF 723 58E 194 74E 001 46E 68C 2BF 22E 3FB 5A9 59B 4BF 275 59F 210 5DF
|
||||
|
||||
|
||||
## Seed B (2 of 3)
|
||||
|
||||
1=lion [411], 2=misery [46D], 3=divide [1FF], 4=hurry [37D], 5=latin [3EB], 6=fluid [2CD], 7=camp [106],
|
||||
8=advance [01F], 9=illegal [388], 10=lab [3E0], 11=pyramid [578], 12=unaware [763], 13=eager [227],
|
||||
14=fringe [2E8], 15=sick [63E], 16=camera [105], 17=series [620], 18=noodle [4B0], 19=toy [733],
|
||||
20=crowd [1A2], 21=jeans [3BD], 22=select [61A], 23=depth [1D9], 24=lounge [422]
|
||||
|
||||
B = 411 46D 1FF 37D 3EB 2CD 106 01F 388 3E0 578 763 227 2E8 63E 105 620 4B0 733 1A2 3BD 61A 1D9 422
|
||||
|
||||
|
||||
## Seed C (3 of 3)
|
||||
|
||||
1=vault [78E], 2=nominee [4AF], 3=cradle [18F], 4=silk [644], 5=own [4F0], 6=frown [2EC], 7=throw [70A],
|
||||
8=leg [3FA], 9=cactus [100], 10=recall [59B], 11=talent [6EB], 12=worry [7EE], 13=gadget [2F5],
|
||||
14=surface [6D1], 15=shy [63C], 16=planet [52F], 17=purpose [573], 18=coffee [169], 19=drip [219],
|
||||
20=few [2AC], 21=seven [625], 22=term [6FB], 23=squeeze [69C], 24=educate [234]
|
||||
|
||||
C = 78E 4AF 18F 644 4F0 2EC 70A 3FA 100 59B 6EB 7EE 2F5 6D1 63C 52F 573 169 219 2AC 625 6FB 69C 234
|
||||
|
||||
|
||||
## Calculation (XOR each hex digit)
|
||||
|
||||
A = 5DC 7DE 420 07D 635 0E1 1BF 723 58E 194 74E 001 46E 68C 2BF 22E 3FB 5A9 59B 4BF 275 59F 210 5DF
|
||||
B = 411 46D 1FF 37D 3EB 2CD 106 01F 388 3E0 578 763 227 2E8 63E 105 620 4B0 733 1A2 3BD 61A 1D9 422
|
||||
C = 78E 4AF 18F 644 4F0 2EC 70A 3FA 100 59B 6EB 7EE 2F5 6D1 63C 52F 573 169 219 2AC 625 6FB 69C 234
|
||||
| | | | | | |
|
||||
XOR = 643 71C 450 544 12E 0C0 7B3 4C6 706 7EF 4DD 08C 4BC 2B5 2BD 604 0A8 070 0B1 7B1 7ED 57E 555 3xx
|
||||
|
||||
|
||||
## Resulting Seed Phrase
|
||||
|
||||
1=silent [643], 2=toe [71C], 3=meat [450], 4=possible [544], 5=chair [12E], 6=blossom [0C0],
|
||||
7=wait [7B3], 8=occur [4C6], 9=this [706], 10=worth [7EF], 11=option [4DD], 12=bag [08C],
|
||||
13=nurse [4BC], 14=find [2B5], 15=fish [2BD], 16=scene [604], 17=bench [0A8], 18=asthma [070],
|
||||
19=bike [0B1], 20=wage [7B1], 21=world [7ED], 22=quit [57E], 23=primary [555]
|
||||
|
||||
final word between: gas [300] - lend [3FF]
|
||||
correct final word: indoor [398]
|
||||
- It's not possible to calculate the checksum of the final seed phrase on paper (needs SHA256).
|
||||
- But it must start with the indicated digit, and there will be only one
|
||||
suitable choice offered by the Coldcard in that range (x00 to xFF),
|
||||
once you have entered the other 23 words.
|
||||
- The checksum of each of the XOR-parts protects the final result, assuming your XOR
|
||||
math is correct.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user