Cryptocalc 0.1.17
1. Purpose
Cryptocalc is a standalone desktop application which generates Crypto wallets
with the Hierarchical Deterministic (BIP32
) paradigm.
Even though there is already a similar tools online, the purpose is to use these features
locally on your computer in order to reduce the risk of your Private Key / WIF
or Seedphrase informations being stolen.
NB: Cryptocalc uses ElectronJS as well as many modern and popular
Desktop applications
- Setup
- 2.1. Fast and Furious (for end users)
- 2.1.1. Download Cryptocalc installer
from SourceForge (NB: the installer was generated with
electron packager and
Inno Setup.
Notice that the installer is not signed so Windows Defender Smartscreen
will require that you validate yourself the application source. If you dont't want
to so then proceed to Wizard's Lair setup instead (see 2.2)
- 2.1.2. Default setup folder is
C:\Users\$CURRENT_USER\AppData\Local\Programs\Cryptocalc
- 2.1.3. Default subfolder where Wallet informations are saved:
$DEFAULT_SETUP_FOLDER\resources\app\_output
-
2.2. Wizard's Lair (for custom local setup and developers)
- 2.2.1. Prerequisites
- 2.2.2. Open a command line interpreter
- Use Windows Menu Start then input
cmd
- Change current disk to where you plan to install (eg. if its
D
then type D:
)
- Change current directory to where you to install (eg.
md tools
then cd tools
)
- 2.2.3. Import Cryptocalc from github
- Open the Cryptocalc repository
- Use the [<> Code v] green button
- Copy the displayed .git URL
- In the command line interpreter, type
git clone
followed by the .git
URL\
e.g. git clone https://github.com/ALADAS-org/Cryptocalc.git
- Type
cd Cryptocalc
- Type
npm install
-
Release notes
- 3.1. Features in
0.1.17
- Picture at last step of setup with Cryptocalc Standalone installer
- 3.2. Features in
0.1.16
- When saving a wallet the Popup dialog allows to show where it is saved
- Bug fix in the behavior of [Save...] button in
Tools/Options
dialog
- Update of Screenshots
- 3.3. Features in
0.1.15
- Cryptocalc Standalone installer (see 4.1.1)
- Bigger icons in the main toolbar (
16x16px
> 24x24px
)
- Logo in desktop shortcut and .exe (Standalone installer) and in the
the Task Bar (when Cryptocalc is launched) as well
- Default Blockchain is Bitcoin (with 128 bits of Entropy by default)
- Progress in the implemention of the Simple Wallet mode (where Entropy is
both the Private Key (in hexadecimal) and Seedphrase (when converted
to Mnemonics)
- Update of
README.md
- 3.4. Features in
0.1.14
- Added
Tools/Options
menu item: allows to set Options values for
Default Blockchain
and Entropy Size
. These values are defined
in www/config/options.json
file.
- Bug Fix: when switching to
Fortunes
, Entropy Source
was undefined
- 3.5. Features in
0.1.12
- Added Border to generated QR codes
- Added
svg
version of the QR code
for WIF
(if applicable, only Bitcoin
ATM)
- Rename of
mnemonics
field of wallet_info.txt
to Seedphrase
- Rename of
Entropy_MicroQR.svg
(or .png
) to Entropy_rMQR.svg
(or .png
)
- Optimized
rMQR
(Rectangular Micro QR code) variant depending on Entropy Size
- Experimental generation of
Ultracode
for Entropy
(2D color Barcode,
46% less space than regular B&W QR code
). Didn't found yet a compatible
Android app reader yet.
-
Cryptocalc User Guide
Double click on _run.bat
: this will launch Cryptocalc desktop standalone application
- 4.1. Features
- 4.1.1. Cryptocalc Standalone installer
- 4.1.1.a: Download Cryptocalc installer
- 4.1.1.b. Default subfolder where Wallet informations are saved:
$DEFAULT_SETUP_FOLDER\resources\app\_output
: Node that this folder
won't be deleted automatically if you uninstall Cryptocalc
- 4.1.2. Generate Entropy from Entropy Source
Use [Generate] button to draw a random image (cf. 4.1.3)
which then will be used as the Entropy (with the Salt) to generate a new Seedphrase (between 12 and
24 words) which is derived to get the Private Key from which the Wallet Address is obtained
(NB: Private Key and Wallet Address are in the Wallet Tab).
There is also a conversion to the Shortened Seedphrase: as only the 4 first characters of each mnemonic
are useful (cf. BIP39
specification) then in the Shortened Seedphrase each mnemonic is represented
only by its 4 first characters (with the first character in Uppercase as a mean to separate mnemonics).
NB: As some mnemonics are only 3 characters long, the abbreviation will of course only be whole mnemonic.
Here is an example below:
Seedphrase
rent expand super sea summer pull catalog mobile proud solve oven goose
Shortened Seedphrase
RentExpaSupeSeaSummPullCataMobiProuSolvOvenGoos
NB: Please notice that the Shortened Seedphrase is not meant to be used
to import a wallet in a Wallet Manager, it's only a trick to compress
the Seedphrase and make it easier to store on a device with limited memory
like a NTAG213 NFC
(see 4.2.3).
- 4.1.3. Entropy Source :
Image
or Fortunes
Entropy Source may be switched between Image
(Default source)
and Fortunes
(drawn from a compilation of 12803 Fortune Cookies).
Please notice that a text is not considered as random enough
for an Entropy Source thus Image
is now the default Entropy Source
(Notice that an image is much better in terms of randomness than a text).
- 4.1.3.a: You can Drag'n'Drop images (
png
, jpg
or svg
) from you local folders.
- 4.1.3.b: Image samples are provided in
www/js/img
folder.
- 4.1.3.c: When using [Generate], Cryptocurrency logos are drawn
from the www/js/img/CryptoCurrency
folder and the first image
is always our logo (Zilver_64px.svg
).
- 4.1.4. Several wallets in the same BIP32 HD wallet tree
The BIP32
HD wallet tree_ is determined by the Entropy or Seedphrase.
These are 2 isomorphic representations of the SRP (Secret Recovery Passphrase).
So you can generate new wallets (Address + Private Key or WIF)
by Pasting a previous Entropy or Seedphrase.
This will hide the Entropy Source and Salt fields which are meaningless in
this situation. You can then change either the Account or Address Index
fields in the Wallet tab page. This will show a new [Refresh] button
to recompute the wallet once you gave finished editing these fields
(you can input a decimal value between 0 and 9999).
Pushing the [Refresh] button (or hitting either [ Return ] or [ Enter ] keys)
will recompute the wallet accordingly.
- 4.1.5. Check generated wallets against Ian Coleman BIP39
an item in the menu (Help/Resources/Ian Coleman BIP39) eases the checking
by opening Ian Coleman BIP39.
- 4.1.6. Import a wallet in Guarda
an item in the menu (Help/Resources/Guarda) eases importing a wallet in a
Wallet Manager application by opening Guarda.
- 4.1.7. Salted Entropy
The Salting is adding a unique information (e.g. a UUID) so that
even if the Entropy Source is the same, the Entropy will be unique
at each press of [Generate] button.
- 4.1.8. Choose Entropy Size
The Entropy Size is between 128 to 256 bits (32 to 64 hexadecimal digits).
This is equivalent to a Seedphrase size between 12 and 24 words.
Changing Entropy Size impacts the Seedphrase size and conversely.
- 4.1.9. Display of the Checksum bits (see explanations in 4.1.12)
- 4.1.10. Save Wallet Informations
With File/Save
(or the Save icon in the main toolbar), you can save
the Wallet Informations in a timestamped subfolder (eg. 2024_03_07_21h-4m-4s-3_BTC
)
under _output
folder.
This subfolder contains wallet_info.txt
and a wallet.json
with the informations displayed in Seed and Wallet tab pages.
A popup dialog confirms the saving and allows to show where
this subfolder is located.
The Wallet Informations subfolder contains QR Codes (png
images) for Address
, Private Key
, Seedphrase
,
Entropy
, Entropy_rMQR
(a Rectangular Micro QRCode of Entropy)
and WIF
(if applicable, BTC
only ATM).
Notice that there is a svg
subfolder where these QR codes are provided
in the svg
format and there is also a Rectangular Micro QR code (rMQR
) of the
Entropy
(Rectangular Micro QR Code, R15x59
or R15x77
version depending on
Entropy size
).
- 4.1.10.a: How to retrieve a Wallet Address from the Rectangular Micro QR Code
- 4.1.10.a.I: Notice that most Android QR Code reader apps will
not be compatible with Rectangular Micro QR Code but it works with
QRQR
an Android QR Code reader published by Arara on the Google Play Store.
- 4.1.10.a.II: Then convert the Entropy to the matching Seedphrase
by doing a copy/paste in the Entropy
field of Cryptocalc.
Caution: Take care to set Cryptocalc with the same Entropy Size
and
Derivation path
(if applicable, don't forget to use the [Refresh] button)
than those used when the wallet was created (these informations
are provided in the wallet_info.txt
file).
- 4.1.11. Select Seedphrase Language
You can select the Wordlist Language (eg. English, French, Deutsh, etc...).
Please notice that only English is accepted for most Wallet Manager applications.
Changing Wordlist Language is indeed a mean to add a scramble step in order
to make it harder to steal your Secret Recovery Passphrase because
it should be translated to English to be used with a Wallet Manager.
NB: the translation between languages is native in Cryptocalc
because the reference is the Word Indexes (see 4.1.11) not the words.
- 4.1.12. Display of Word Indexes
The Word Indexes are between 0 and 2047, it is the index of each of the
Seedphrase words in the BIP39
dictionary (see also 6.1.1).
You can choose to display these indexes in Decimal or Binary
(in Binary you can check that the computed Checksum bits are added at the end
of the converted Entropy to determine the index of the last word).
- 4.1.13. Display of the BIP32 Derivation Path
The BIP32 Derivation Path is displayed in the Wallet tab page.
You can edit the Account or Address Index fields to generate new wallets
which belong to the same BIP32
hierarchy that is determined by the
Seedphrase (also called the Secret Recovery Passphrase).
- 4.1.14. Change/Reset of Options (
Tools/Options
)
Currently it allows to set default values for Default Blockchain
and Entropy Size
.
These values are defined in www/config/options.json
file.
It is also possible to reset Options to Default Options
(defined in www/config/defaults/options.json
)
- 4.1.15. Support of Localization
In Cryptocalc, the Localization (l10n
) feature is the translation of
GUI Labels to adapt to the locale (eg. en
).
A locale name can be composed of a base language, country (territory) of use,
and optionnally a codeset (eg. de_CH.UTF-8
).
The locale is provided as part of your machine's environment.
Cryptocalc only uses the 2 letter language part (eg. en
).
Localization is enabled by a JSon file in the www/js/L10n
folder
(eg. gui-msg-en.json
) .
Currently only en
and fr
are provided.
- 4.2. Use cases
- 4.2.1. Generate a new Wallet and import it in a Wallet manager
With a Wallet Manager like Guarda you can import
a wallet generated by Cryptocalc:
- 4.2.1.a. Choose a coin (e.g.
BTC
,ETH
,DOGE
,LTC,``SOL
)
- 4.2.1.b. Enter Private Key (NB: or WIF for
BTC
wallets)
- 4.2.3. Store Shortened Seedphrase in a NFC SmartRing
The entry level SmartRings (price range: 7..15$) contains a NTAG213 NFC
with
144 bytes useable capacity. This is enough to store the Shortened Seedphrase,
with a 24 words Shortened Seedphrase
the maximum required capacity is 96 bytes/characters (24*4, cf. 4.1.1)
or even less (as some mnemonics have only three characters).
- 4.2.4. Store Master password
This is similar to the previous case, but the Shortened Seedphrase
can be used as a Master password for a Password Manager or for tools like
PGP Tool which provide encryption/decryption
of your documents.
-
Appendix