https://www.youtube.com/watch?v=3amZLwUk7C4
Crypto FX Wallet is a layer working above the command line wallet of a crypto node. It handles just a limited subset of all the available commands.
It should work on Bitcoin and all the cryptocoins derivated from it, like Bitcoin Cash, ZCash, Bitcoin Gold, etc.
Crypto FX Wallet started as a personal project to see my BitcoinZ wallet using a GUI.
Previous to the fork in June 2018, there was a graphical Java Swing wallet based on a ZenCash project,
but after the fork it didn't work anymore for me. Of course, I could do the usual operations through
the command line, but I wanted something faster and less prone to errors.
The project is based on JavaFX 11 and the Eclipse IDE and allows to change some features (explained below) avoiding the
process of rebuilding everything.
This is basically a layer over the command line of a crypto node, so you should follow the official instructions to set up your desired node.
https://github.com/bitcoin/bitcoin (for Bitcoin Core),
https://github.com/btcz/bitcoinz (for BitcoinZ),
etc.
Download and install the last Java SE Development Kit 11 for your OS.
https://www.oracle.com/technetwork/java/javase/downloads/index.html
Download JavaFX 11 for your OS and unzip it in a known folder.
https://gluonhq.com/products/javafx/
The current version of the application allows to configure this file directly from the GUI. There are default options for every single cryptocoin configured in the wallet, you can modify at your will.
You can use the package for your OS in the tab Releases or build the jar file from the source code
and run them with the corresponding parameters to call the JavaFX libraries, but I advise you to use
the scripts to make it easier.
I couldn't test it in Mac OS, but it should be able to run it too.
Maybe it is not the best advice, but it was the easier way to me. The code was managed from an Eclipse IDE,
so I have created the jar files doing the following from Eclipse:
File->Export...->Java->Runnable JAR file->Extract required libraries into generated JAR->Finish.
It is a Maven project, but I have used Maven just to manage the dependencies. I didn't find a way to
set up a convincing building task. Maybe in the next release.
If you want to run the jar file directly, remember to run it with the required parameters to <javafx_sdk_folder>/lib.
That is what the included scripts are for.
After the application is started you can see in the top of the window a bar menu with options to backup or import the addresses of your wallet. The backup will save a file called "cryptoBackup.txt" in the folder you choose. To import an addresses
you need to choose a file with an UTF-8 encode from your file system (it doesn't matter its name or its extension), but the application will expect to find the character '-' in every line. If the left side of the character '-' starts with a z, then the address to import is a Z address. If the left side of the character '-' starts with anything else, then it tries to import the transparent address handled by the wallet. The right side of the character '-' should be the private key of the address.
Next I show you a few valid lines you can set in the file, replacing <private_key> by your own private key:
-<private_key> (for T address)
z-<private_key> (for Z address)
zzzzzasddss-<private_key> (for Z address)
3*/3/\4re-<private_key> (for T address)
Below the bar menu, in the left side, there are three panels.
The top panel shows the balance of the wallet.
The middle panel shows the synchronization of the node respect to a full synchronized node.
The bottom panel shows the balance of the addresses of your wallet and allows to send coins
to another addresses.
To send money you should choose an Address from the table 'My addresses', set a destination
address in the corresponding text field, put the amount to send in the corresponding
text field and click on the send button.
Donate button is just a stupidity showing an animation, but its only utility is to change
the destination address to one of my addresses. Next you should click on the send button
if you really want to donate.
The right side of the application shows the last 100 transactions associated with addresses of the wallet.
If you are not a coder you can do several changes to the application without rebuilding the whole thing.
You can change it for one of your election, but remember to call it splashScreenVideo.mp4 and to put it
inside the folder resources.
You can edit the files style.css and messagePopupStyle.css inside the resources folder to do it.
I suggest you to keep an eye on the .fxml files in the source code to get a better understanding about what
you are changing.
Yoo should edit the english.properties file inside the resource folder.
You can edit the foreign.properties file with your own language.
Change the images background.png and mainLogo.png for your desired images. Remember to keep the same
names and keep in mind that mainLogo.png is hide when the synchronization is not of 100%. So play with that.
You can do it modifying the files wallet.properties and command.properties as it's explained above.
The application is expecting to find those name.
Ok, do it.
BTC: 3PcmYiCNsFUJiqwqNcJ78RAk9zhC7b3t2m
ETH: 0xe897cF267CE2bad3C571940F5a1176Ddcf0819f7
Any token based on ETH like OMG, USDT, TUSD, BTM, PAY, etc.: 0xe897cF267CE2bad3C571940F5a1176Ddcf0819f7
BTCZ: t1NmxPMWY8EPELxAKRnHi9NGW9NWNypzLzo
XMR: 45jzGRAM3pAJ19fdtVagrTUzwfpL6EbKo7bvK8jybRJaQcpQYXd4pWE7DKurUvq7pe7w2TbnEatuWAw7ArfRu1Jd33oBWTb
IOTA: T9LERQPWWYOUFPJKQPRSWUTJWOCG9TLPMOROFNZV9IGYQEPINZPGUFFGYFPREMWFWATZNTQFNYMEYMMEAUDECTMZMW
ETC: 0x009e9791b8da25bBda05aD0b92f83615a623D544
BTG: GNDeARn5SG9EpZKCWqWT1FAyp8DjtTRtyx
QTUM: QRoxfYMNadqeQmtNWhajVjX5JgRgZczaC9
DOGE: DDKL7UuK6jEATb87BMxRP5bWJi18soqKD3
XLM: GA2BI5XZ6DXITCF36TSPFTOACUONI2524Z4IF2CGWR7CRIPN6MRBC7ZT
ZEC: t1ZzxhxiXcUWsaSCTUzKxBNepq5ScBQsFLK
BCH: 1Lw5m8KVU9ww9mpK92mvAzgu1xXhygDQLp
LTC: LNAGuJFRSaahaGYi7cGAbYfdANtwAw6BcS
I'm getting this error 'Error: JavaFX runtime components are missing, and are required to run this application' when I try to run the application from my IDE or running directly the executable jar file.
Probably, you have forgotten (or mistyped) to set the parameters to the absolute JavaFX SDK 11 path.
If you are trying to run the jar file directly, then you should put the following in between java -jar and cryptoFXWallet.jar.
If you are trying to run it from your console, then you should add the following in the VM arguments options (Run as...->Run Configurations...->Arguments->VM Arguments for the Eclipse IDE):
--module-path=<javafx_sdk_folder>/lib --add-modules=javafx.controls --add-modules=javafx.fxml --add-modules=javafx.media
That's why run it using the script is easier once you set the required absolute paths there.
The wallet will look for updates every minute. If you do an operation that should be super fast
(to create a new address, for example), hopefully it will be visible in the next updating.
Every kind of transfer from my Z address to another address set the balance of my Z address almost to zero
Don be panic! In a few minutes it will be normalized again. It's a weird behavior, at least of BitcoinZ,
that I don't know why is happening.
Crypto FX Wallet is just a subset of the command line wallet, handling the more relevant commands to me.
I guess it should be as safe as your command line wallet, but I'm not a security expert, so I can't confirm that.
Use it at your own risk.
Let me know it and I'll be glad to create a new wallet for that cryptocoin.
Ok, then send me a direct message through twitter to @donlaiq.
Why would you do that? There's nothing interesting to follow.
Yes, definitely.
Well... you'll get a proper discount with your next donation.
Crypto FX Wallet is released under the terms of the MIT license. See https://opensource.org/licenses/MIT.