Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
altcoin key recovery using pywallet

These are the steps to properly recover altcoin privkeys if you end up with a corrupt wallet.dat
I was unable to use the otherversion=<version number> for some reason so the idea here is to change the python script to suit the needs of your specific altcoin.
Download pywallet: git clone https://github.com/jackjack-jj/pywallet.git
Find decimal prefix of your altcoin.
I've successfully used https://github.com/MichaelMure/WalletGenerator.net to find my altcoin prefix.
Follow the steps in his wiki in order to determine your address prefix decimal.
You'll need to know your privkey prefix as well which you will also be able to get using the WalletGenerator.
You'll also likely need to find a hex to decimal converter for this.
After finding your altcoin decimal and privkey prefixes, edit the pywallet.py file in your pywallet directory
Change line 75 from addrtype = 0 to addrtype = <altcoin decimal prefix>
After that you'll need to change the privkey prefix from the default Bitcoin 128 to that of your altcoin.
Lines 1240 & 1241

ADDRESS PREFIX LIST

Decimal version Leading symbol Address length
0 1 up to 34
1 Q-Z, a-k, m-o 33
2 o-z, 2 33 or 34
3 2 34
4 2 or 3 34
5-6 3 34
7 3 or 4 34
8 4 34
9 4 or 5 34
10-11 5 34
12 5 or 6 34
13 6 34
14 6 or 7 34
15-16 7 34
17 7 or 8 34
18 8 34
19 8 or 9 34
20-21 9 34
22 9 or A 34
23 A 34
24 A or B 34
25-26 B 34
27 B or C 34
28 C 34
29 C or D 34
30-31 D 34
32 D or E 34
33 E 34
34 E or F 34
35-36 F 34
37 F or G 34
38 G 34
39 G or H 34
40-41 H 34
42 H or J 34
43 J 34
44 J or K 34
45-46 K 34
47 K or L 34
48 L 34
49 L or M 34
50-51 M 34
52 M or N 34
53 N 34
54 N or P 34
55-56 P 34
57 P or Q 34
58 Q 34
59 Q or R 34
60-61 R 34
62 R or S 34
63 S 34
64 S or T 34
65-66 T 34
67 T or U 34
68 U 34
69 U or V 34
70-71 V 34
72 V or W 34
73 W 34
74 W or X 34
75-76 X 34
77 X or Y 34
78 Y 34
79 Y or Z 34
80-81 Z 34
82 Z or a 34
83 a 34
84 a or b 34
85 b 34
86 b or c 34
87-88 c 34
89 c or d 34
90 d 34
91 d or e 34
92-93 e 34
94 e or f 34
95 f 34
96 f or g 34
97-98 g 34
99 g or h 34
100 h 34
101 h or i 34
102-103 i 34
104 i or j 34
105 j 34
106 j or k 34
107-108 k 34
109 k or m 34
110 m 34
111 m or n 34
112-113 n 34
114 n or o 34
115 o 34
116 o or p 34
117-118 p 34
119 p or q 34
120 q 34
121 q or r 34
122-123 r 34
124 r or s 34
125 s 34
126 s or t 34
127-128 t 34
129 t or u 34
130 u 34
131 u or v 34
132-133 v 34
134 v or w 34
135 w 34
136 w or x 34
137-138 x 34
139 x or y 34
140 y 34
141 y or z 34
142-143 z 34
144 z or 2 34 or 35
145-255 2 35

table source: https://en.bitcoin.it/wiki/List_of_address_prefixes

sample command for pywallet.py:
python pywallet.py --recover --recov_size 50Gio --recov_device $HOME/.neoscoin/wallet.dat --recov_outputdir $HOME/.neoscoin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.