CryptoCalc 0.3.23

1. Purpose
CryptoCalc is a Cryptocurrency wallet generator provided as a standalone non custodial desktop application.
These wallets can be Non Deterministic (Simple Wallet) or Hierarchical Deterministic (BIP32
).
Even though there is already similar tools online, the purpose is to provide these features
locally on your computer (non custodial) in order to reduce the risk of your Private Key / WIF
or seed phrase informations being stolen.
NB: Since its first release CryptoCalc has been downloaded 7414 times (even if there is also bots involved
in downloads, it seems that there is at least 100 frequent users).
Supported Blockchains: Bitcoin, Ethereum, Solana, Ripple, DogeCoin, Cardano, TRON,
Avalanche, Bitcoin Cash, LiteCoin, Dash and Firo
Supported Languages: English, French, Spanish, Italian, Czech, Portuguese, Deutsch,
Simplified Chinese, Traditional Chinese, Japanese, Korean, Esperanto, Russian and Hindi.
NB: CryptoCalc uses ElectronJS as well as many modern and popular
Desktop applications
- Setup
- 2.1. Fast and Furious (advised 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 don't trust the installer (because it is not signed as this is a 350$ cost per year), you can either:
- 2.1.1.a. Rebuild yourself the Installer by downloading
Inno Setup
and following the Howto
provided in the _inno_setup
subfolder (Howto build cryptowallet_setup.txt
)
- 2.1.1.b. Else you can 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 (advised for custom local setup and/or software 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 GitHub 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.3.23
- "Rollback" of Cryptocalc rename to cryptowallet. In fact this was motivated by a better visibility
on SourceForge but cryptowallet was rejected by SourceForge backend because it is a category.
- Now using the latest release of ElectronJS (37.2.1)
- 3.2. Features in
0.3.21
- Rename of Cryptocalc (now deprecated) to cryptowallet.
- 3.3. Features in
0.3.19
- Added support of Hindi for the Seed phrase.
- 3.4. Features in
0.3.18
- Changed HD Wallet mode so that it the Derivation Path is
Hardened
by default
and mandatory (for Security reason, see 5.2.3.
- HD Wallet: Augmentation of
account
and address_index
digits from 4 to 9
- Fixed bug: useless twice loading of
index.html
- 3.5. Features in
0.3.17
- Added support of Russian language.
- 3.6. Features in
0.3.16
- Changed license to 'BSD-3-Clause' and added support of Esperanto language.
- 3.7. Features in
0.3.15
- Added feature 'Internet Connection status' (see 4.1.9) for securing Offline wallet creation
- 3.8. Features in
0.3.14
- Bug fixes on Ripple (XRP) HD Wallet:
- Bug 1. [Apply] button displayed when password input manually
- Bug 2. WIF and Private Key displayed for Ripple (XRP) HD Wallet
- Bug 3. WIF and Private Key in 'wallet_info.txt'
- 3.9. Features in
0.3.11
- Added support of Simplified Chinese and Traditional Chinese for the
Seed phrase
- 3.10. Features in
0.3.8
- Added support of Korean for the
Seed phrase
- 3.11. Features in
0.3.7
- Added support of Japanese for the
Seed phrase
(taking into account the Ideographic Space
as a separator between words instead of the Normal Space).
- Code enhancement: in
renderer_gui.js
and electron_main.js
. The Singleton design pattern
now uses Symbol()
for the value of the static field #key
.
- 3.12. Features in
0.3.4
- Added password feature for
HD Wallet
(see 4.1.5)
Seed
tab renamed to Entropy
- Bug fix: crash when saving
SWORD Wallet
- Update of
Cryptocalc installer
on SourceForge
-
CryptoCalc User Guide
You can launch CryptoCalc either by first installing it with the CryptoCalc Standalone installer (see 2.1)
or by downloading the npm package
(see 2.2) then double clicking on _run.bat
.
- 4.1. Features
- 4.1.1. Cryptocalc Standalone installer
- 4.1.1.a: Downloadlc CryptoCalc installer
- 4.1.1.b. Default subfolder where Wallet informations are saved:
$DEFAULT_SETUP_FOLDER\resources\app\_output
: Notice that this folder won't be automatically deleted 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 seed phrase (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 seed phrase: as only the 4 first characters of each mnemonic
are useful (cf. BIP39
specification) then in the Shortened seed phrase 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:
seed phrase
rent expand super sea summer pull catalog mobile proud solve oven goose
Shortened Seedphrase
RentExpaSupeSeaSummPullCataMobiProuSolvOvenGoos
NB: Please notice that the Shortened seed phrase is not meant to be used
to import a wallet in a Wallet Manager, it's only a trick to compress the seed phrase 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. Choose Wallet_Mode: Simple Wallet, HD Wallet or SWORD Wallet (choice is in the
Wallet
tab)
- 4.1.4.a. Simple Wallet
This is the default Wallet Mode. In this mode, each wallet is separated.
and there is no need to understand the principles of the HD Wallet Wallet Tree
and the purpose of the Derivation Path
used by HD Wallets. So a it's a good fit to
Give it a Try and start creating your Cryptocurrency Wallets with minimum knowledge.
On the other hand it's less secure than HD Wallets and it becomes clumsy if you need to manage
multiple wallets (for example to secure your assets by splitting them among many wallets).
- 4.1.4.b. HD Wallet
This Wallet Mode allows to create / manage a whole hierarchy of Wallets (HD is the acronym for
Hierarchical Deterministic) in the same BIP32 tree.
Please notice that the Derivation Path
is now Hardened
by default and mandatory (since 0.3.18
).
This is for Security purpose (see 5.2.3)
The BIP32
HD wallet tree_ is fully determined by the Entropy (or seed phrase which is equivalent)
and an optional Password.
The Entropy may be represented by a more human friendly representation: the Mnemonics Sequence which
may also be called a seed phrase, Mnemonics or even SRP (Secret Recovery Passphrase).
How to Generate a new wallet with a given Entropy:
Paste a new Entropy (or seed phrase) in the Entropy
wallet tab.
Notice that this will hide the Entropy Source and Salt fields
(meaningless in this situation).
You can then change either the Account or Address Index fields
(the maximum number of digits is 9 so you can input a decimal value
between 0 and 999999999 for each field) in the Wallet tab page.
This will show a [Refresh] button to recompute the wallet once you have finished.
Pushing the [Refresh] button (or hitting either [Return] or [Enter] keys
while the cursor is in either Account or Address Index field) will recompute the
wallet address (and Private key or WIF) accordingly.
- 4.1.4.c. SWORD Wallet
SWORD
is an acronym which means Simple Wallet Over Randomized Deterministic
,
it's an hybrid between Simple Wallet
and HD Wallet
because it hides the Derivation Path
logic
(which contains Account
and Address Index
), thus you don't need to care or understand the principles
of Hierarchical Deterministic wallets, but it allows to generate all the cryptocurrencies provided by HD Wallet
.
- 4.1.4.d. Please notice that for
Cardano
HD wallets, the Account
and Address Index
parameters are not taken
into account by the Wallet Managers which I have tested (namely Guarda
and Yoroi
) because they ask for
the Mnemonics
(Seed phrase
in CryptoCalc). This is why in CryptoCalc, these parameters are hard-coded
to Zero (for Cardano
HD wallets only).
- 4.1.4.e. You can check generated HD Wallets with Ian Coleman BIP39 homepage
It's URL is provided as an item in the Help menu
(Help/Resources/Ian Coleman BIP39
)
- 4.1.5. Password feature (HD Wallet only)
With a password (also called Passphrase) a completely different HD hierarchy is generated.
You can either input or generate (with the [Generate] button represented by a Refresh
icon, like in the main toolbar).
Important Notice: Once a password is provided, you must use the [Apply] button to recompute the HD hierarchy,
this is the reason why Save is disabled (in the main toolbar and in the 'File' menu) until you click on the [Apply] button.
- 4.1.6. Salted Entropy
Entropy is generated from Entropy Source (either Image or Fortune Cookie ATM) and adding
a Salt (UUID
) to ensure that the Entropy will be different at each Generation even if the Entropy Source
is the same. Thus the Entropy will be unique at each press of [Generate] button.
- 4.1.7. 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.8. Wallet Address
Wallet Address is displayed in the Wallet
tab page. There's also an [Explorer...] button which allows to check
the generated address in the appropriate Blockchain Explorer.
- 4.1.9. Internet Connection Status
This is to secure Offline wallet creation (non custodial). An icon at the right of the Main Toolbar shows
if the Internet is connected (Wifi ON
red icon) or not connected (Wifi OFF
green icon)
- 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_10_07_21h-4m-4s-3_BTC_EN
) under _output
folder.
This subfolder contains wallet_info.txt
and a wallet.json
with the informations displayed in Entropy and Wallet tab pages.
- 4.1.10.a. When you save the current generated wallet a Popup dialog confirms the saving and allows to show where it is saved.
- 4.1.10.b. The Wallet Informations subfolder contains QR Codes (
png
images) for Address
, Private Key
, Seedphrase
,
Entropy
and WIF
(if applicable).
Notice that there is a xtras
subfolder where these QR codes are provided
in the svg
format. There is also a Rectangular Micro QR code (rMQR
) of the
Entropy
(Rectangular Micro QR Code, R15x59
or R15x77
version depending on
Entropy size
) and an experimental Ultracode
color QR code of the Entropy
.
- 4.1.10.c: How to retrieve a Wallet Address from the Rectangular Micro QR Code
- 4.1.10.c.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.c.II: Then convert the Entropy to the matching seed phrase
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 either in the wallet_info.txt
or in wallet_info.wits
).
- 4.1.11.
Open
Wallet Informations of a previously saved wallet
- 4.1.11.a. Wallet informations are saved both as a
.txt
but also as a .wits
file (JSON
format).
- 4.1.11.b. A
.wits
file can be opened either with File.Open...
menu item or 'Open...' icon
in the toolbar. It can be also be opened in Cryptocalc.exe
by double clicking on the .wits
(File extension to Application feature): this will launchlc Cryptocalc.exe
(cf. 2.1 for installing
Cryptocalc.exe
with the CryptoCalc Standalone installer) /
- 4.1.11.c. Once opened, a wallet can't be saved on itself (it is to prevent accidental overwrite of the original wallet),
but you can use File.Save As...
which will save the wallet with a different timestamp than the original one.
- 4.1.11.d. Notice that for a HD Wallet you can change the
Account
and/or the Address Index
(dont forget to push
the [Refresh] button). Now you can save the new wallet with File.Save As...
and if you didn't change the Entropy
then this new wallet will belong to the same Bip32 HD Wallet Tree
(see 5.2) than the original one.
- 4.1.12. 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.13. 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.10) not the words.
- 4.1.14. Display of Word Indexes
The Word Indexes are between 0 and 2047, it is the index of each of the
Seed phrase 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.15. 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
seed phrase (also called the Secret Recovery Passphrase).
- 4.1.16. Change/Reset of Options (
Tools/Options
)
Currently it allows to set default values for Default Blockchain
, Wallet Mode
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.17. 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 Wallet Mode: Simple Wallet, HD Wallet or SWORD
- 4.2.1.b. Choose a coin:
BTC
,ETH
,XRP
,ADA
,DOGE
,LTC
,SOL
,AVX
,TRON
,BCH
,DASH
,Firo
- 4.2.1.c. 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 provides encryption/decryption of your documents.
-
Appendix