@aladas-org/cryptocalc
v0.3.4
Published
Crypto Calculator
Downloads
216
Readme
Cryptocalc 0.3.4
Purpose
Cryptocalc is a standalone desktop application which generates Crypto wallets with either the Non Deterministic (Simple Wallet) or 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 seed phrase informations being stolen.
Supported Blockchains: Bitcoins (BTC
), Ethereum (ETH
), Solana (SOL
), Ripple (XRP
), DogeCoin (DOGE
), Cardano (ADA
), TRON (TRON
), Avalanche (AVX
), Bitcoin Cash (BCH
), LiteCoin (LTC
), Dash (DASH
) and Firo (FIRO
)
NB: Cryptocalc uses ElectronJS as well as many modern and popular Desktop applicationsSetup
- 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, 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 cryptocalc_setup.txt
) - 2.1.1.b. Else you can proceed to Wizard's Lair setup instead (see 2.2)
- 2.1.1.a. Rebuild yourself the Installer by downloading
- 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.1.1. Download Cryptocalc installer
from SourceForge (NB: the installer was generated with
- 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 typeD:
) - Change current directory to where you to install (eg.
md tools
thencd tools
)
- Use Windows Menu Start then input
- 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
- 2.1. Fast and Furious (advised for end users)
Release notes
- 3.1. Features in
0.3.4
- Added password feature for
HD Wallet
(see 4.1.5) Seed
tab renamed toEntropy
- Bug fix: crash when saving
SWORD Wallet
- Update of
Cryptocalc installer
onSourceForge
- Added password feature for
- 3.2. Features in
0.3.3
- Added
SWORD Wallet
in Wallet Types.SWORD
is an acronym which meansSimple Wallet Over Randomized Deterministic
, it's an hybrid betweenSimple Wallet
andHD Wallet
because it hides theDerivation Path
logic (which containsAccount
andAddress 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 byHD Wallet
. - Bug fix: when changing 'Entropy Size' to 224 bits, Cryptocalc was blocked while trying to split the seedphrase in 2 parts for the traces.
- Added
- 3.3. Features in
0.3.2
- Added
File.New
,File.Open...
andFile.Save As...
menu items - Wallet informations are also saved as a
.wits
file (JSON
format). This file can be opened either withFile.Open...
or withCryptocalc.exe
by double clicking on it. - This README can now be opened from within Cryptocalc by means of the
Help / Resources / Setup guide and User's Manual
menu item Wallet Mode and
Cryptocurrency` are now displayed in the title bar (e.g. Simple Wallet: BTC)
- Added
- 3.4. Features in
0.2.2
- Added
Dash
blockchain in HD Wallet - Bug fixes for
Firo
andBitcoin Cash
- Added
- 3.5. Features in
0.2.1
- Choice between Simple Wallet (Default mode) and HD Wallet
- New cryptocurrencies supported:
Cardano
(HD Wallet only) andAvalanche
- GUI enhancements esp.
Copy to Clipboard
button for Address, seed phrase, Private Key and WIF - Enhancement in log feature
- Update of Screenshots
- 3.6. Features in
0.1.17
- Picture at last step of setup with Cryptocalc Standalone installer
- 3.7. 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.8. 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 seed phrase (when converted to Mnemonics)
- Update of
README.md
- 3.1. Features in
Cryptocalc User Guide
You can launch Cryptocalc either by using the Cryptocalc Standalone installer (see 2.1) or by downloading thenpm package
(see 2.2) then double clicking on_run.bat
.- 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 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 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:
seed phrase
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 seed phrase and make it easier to store on a device with limited memory like aNTAG213 NFC
(see 4.2.3). - 4.1.3. Entropy Source :
Image
orFortunes
Entropy Source may be switched betweenImage
(Default source) andFortunes
(drawn from a compilation of 12803 Fortune Cookies). Please notice that a text is not considered as random enough for an Entropy Source thusImage
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
orsvg
) 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.3.a: You can Drag'n'Drop images (
- 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) of wallets in the same BIP32 tree this hierarchy is generated from the Entropy (and optionnaly a password, not yet supported).
TheBIP32
HD wallet tree_ is fully by the Entropy or seed phrase. The Entropy is isomorphic with the Mnemonics Sequence which may be called either a seed phrase, Mnemonics or even SRP (Secret Recovery Passphrase).
You can generate new wallets (Address + Private Key / WIF) by Pasting a previous Entropy or seed phrase (within theEntropy
wallet tab). 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.4.c. SWORD Wallet:
SWORD
is an acronym which meansSimple Wallet Over Randomized Deterministic
, it's an hybrid betweenSimple Wallet
andHD Wallet
because it hides theDerivation Path
logic (which containsAccount
andAddress 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 byHD Wallet
. - 4.1.4.d. Please notice that for
Cardano
HD wallets, theAccount
andAddress Index
parameters are not taken into account by the Wallet Managers which I have tested (namelyGuarda
andYoroi
) because they ask for theMnemonics
(Seedphrase
in Cryptocalc). This is why in by Cryptocalc, these parameters are hard-coded to Zero (forCardano
HD wallets only). - 4.1.4.e. You can check generated HD Wallets by using Ian Coleman BIP39 homepage.
It's URL is provided as an item in theHelp menu
(Help / Resources / Ian Coleman BIP39)
- 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
- 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.
Save
Wallet Informations
WithFile/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 containswallet_info.txt
and awallet.json
with the informations displayed in Entropy and Wallet tab pages.- 4.1.9.a. When you save the current generated wallet a Popup dialog confirms the saving and allows to show where it is saved.
- 4.1.9.b. The Wallet Informations subfolder contains QR Codes (
png
images) forAddress
,Private Key
,Seedphrase
,Entropy
andWIF
(if applicable).
Notice that there is axtras
subfolder where these QR codes are provided in thesvg
format. There is also a Rectangular Micro QR code (rMQR
) of theEntropy
(Rectangular Micro QR Code,R15x59
orR15x77
version depending onEntropy size
) and an experimentalUltracode
color QR code of theEntropy
. - 4.1.9.c: How to retrieve a Wallet Address from the Rectangular Micro QR Code
- 4.1.9.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.9.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 sameEntropy Size
andDerivation 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 thewallet_info.txt
or inwallet_info.wits
).
- 4.1.9.c.I: Notice that most Android QR Code reader apps will
not be compatible with Rectangular Micro QR Code but it works with
- 4.1.10.
Open
_ a previous Wallet Informations of a previously saved wallet- 4.1.10.a. Wallet informations are saved both as a
.txt
but also as a.wits
file (JSON
format). - 4.1.10.b. A
.wits
file can be opened either withFile.Open...
menu item or 'Open...' icon in the toolbar. It can be also be opened inCryptocalc.exe
by double clicking on the.wits
(File extension to Application feature): this will launchCryptocalc.exe
(cf. 2.1 for installingCryptocalc.exe
with the Cryptocalc Standalone installer) / - 4.1.10.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.10.d. Notice that for a HD Wallet you can change the
Account
and/or theAddress Index
(dont forget to push the [Refresh] button). Now you can save the new wallet withFile.Save As...
and if you didn't change theEntropy
then this new wallet will belong to the sameBip32 HD Wallet Tree
(see 5.2) than the original one.
- 4.1.10.a. Wallet informations are saved both as a
- 4.1.11. Import a wallet in
Guarda
An item in the menu (Help / Resources / Guarda) eases importing a wallet in a Wallet Manager application by openingGuarda
. - 4.1.12. 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.13. Display of Word Indexes
The Word Indexes are between 0 and 2047, it is the index of each of the Seedphr3ase words in theBIP39
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.14. 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 sameBIP32
hierarchy that is determined by the seed phrase (also called the Secret Recovery Passphrase). - 4.1.15. Change/Reset of Options (
Tools/Options
)
Currently it allows to set default values forDefault Blockchain
,Wallet Mode
andEntropy Size
. These values are defined inwww/config/options.json
file.
It is also possible to reset Options to Default Options (defined inwww/config/defaults/options.json
) - 4.1.16. 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 thewww/js/L10n
folder (eg.gui-msg-en.json
) . Currently onlyen
andfr
are provided.
- 4.1.1. Cryptocalc Standalone installer
- 4.2. Use cases
- 4.2.1. Generate a new Wallet and import it in a Wallet manager
With a Wallet Manager likeGuarda
you can import a wallet generated by Cryptocalc:- 4.2.1.a. Choose Wallet Mode: Simple Wallet or HD Wallet
- 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 aNTAG213 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.
- 4.2.1. Generate a new Wallet and import it in a Wallet manager
- 4.1. Features
Appendix
- 5.1.
BIP39
: a Dictionary of 2048 wordsBIP39
(BIP
is the acronym of Bitcoin Improvement Proposal) is a specification regarding:- 5.1.1. A Dictionary of 2048 words
The Dictionary contains 2048 English words each with a their unique 4 starting characters (or 3 if the word is 3 characters long). This dictionary exists also in other languages (e.g. French, Deutsh, Spanish, Italian_, Portuguese, etc...) but Wallet Managers (e.g. Guarda, Metamask, Atomic Wallet, etc...) and Hardware Wallets (eg. Ledger, Trezor, Tangem, etc...) will most probably accept only English words. - 5.1.2. Conversion of seed phrase from and to Entropy
The seed phrase is obtained by drawing words (also called or menemonics) from the dictionary.
Drawing a word is indeed choosing an index between 0 and 2047. This index can be represented
by 11 bits in Binary (because 2^11 = 2048).
- Conversion from Entropy to seed phrase The Entropy is represented in Binary and divided in 11 bits segements but the entropy is a multiple of 8 bits (128, 160, 192, 224, 256) there are "missing bits" for choosing the last word. These "missing bits" are provided by computing the Entropy Checksum. e.g. For an Entropy Size of 128 bits (converted to a 12 words seed phrase), 132 bits are needed (11 * 12), so the Entropy Checksum provides the missing 4 bits.
- Conversion from seed phrase to Entropy For each word its index is retrieved from the Dictionary, its value is represented as a 11 bits segment and a number of bits corresponding to tne Entropy Checksum are removed at the end of the concatenation of 11 bits segments. e.g. For a seed phrase of 12 words (converted to a 128 bits Entropy), 132 bits are obtained from the Word Indexes (11 * 12), and because the Entropy Checksum is 4 bits long then the 4 bits at the end are removed.
- Reference
BIP39 — Mnemonic Generation with detailed explanation
- 5.1.1. A Dictionary of 2048 words
- 5.2.
BIP32
: Hierarchic Deterministic walletsBIP32
specifies how to generate wallets with are all derived from the same Entropy or seed phrase (also called the Secret Recovery Passphrase). A seed phrase of only 12 words is enough is most Wallet Managers but it is much more secure to use a 24 words seed phrase if possible (e.g. Ledger hardware wallet manager).
Example: meaning of each part form/44'/60'/0'/0/0
:- Start at the master key (m)
- Follow the
BIP44
specification (44′) - Derive the key for Ethereum (for which Coin type is 60) (60′)
- Access the first account (0′)
- Choose the external chain, used for public addresses (0)
- And finally, generate the first address in this sequence (0)
- 5.1.