Difference between revisions of "Mojo Wallet"
Line 46: | Line 46: | ||
# Open Mojo and navigate to the ''Import'' tab | # Open Mojo and navigate to the ''Import'' tab | ||
# Select the appropriate import (''Legacy'' for legacy address file, [https://en.wikipedia.org/wiki/QR_code QR code] or default [https://en.wikipedia.org/wiki/JSON JSON]) | # Select the appropriate import (''Legacy'' for legacy address file, [https://en.wikipedia.org/wiki/QR_code QR code] or default [https://en.wikipedia.org/wiki/JSON JSON]) | ||
− | # Click ''Add'' to add the address to the wallet. Use ''Add offline'' to skip tag | + | # Use tag resolve icon to resolve the tag if needed |
+ | # Click ''Add'' to add the address to the wallet. Use ''Add offline'' to skip tag check | ||
# If you imported a secret, backup the wallet file | # If you imported a secret, backup the wallet file | ||
Line 61: | Line 62: | ||
===Receive Mochimo=== | ===Receive Mochimo=== | ||
− | In order to receive Mochimo, the recipient must provide the sender with an address for which he/she holds the secret. Export the recipient address (see [[Mojo_Wallet#Export_address|Export address]]) '''without the secret''' and share the export file with the sender | + | In order to receive Mochimo, the recipient must provide the sender with an address for which he/she holds the secret. Export the recipient address (see [[Mojo_Wallet#Export_address|Export address]]) '''without the secret''' and share the export file with the sender. A tag can also be shared in place of a full address. |
===Send Mochimo=== | ===Send Mochimo=== | ||
Line 86: | Line 87: | ||
===Offline transaction=== | ===Offline transaction=== | ||
− | + | On the cold wallet: | |
+ | # Navigate to tab ''Send'' | ||
+ | # Input source, destination and change address (see [[Mojo_Wallet#Send_Mochimo|Send Mochimo]]) | ||
+ | # Tick the checkbox ''Offline'' | ||
+ | # Input the balance of source address and the amount to send | ||
+ | # Click on ''Sign only'' | ||
+ | # Save the transaction file | ||
+ | |||
+ | On the hot wallet: | ||
+ | # Navigate to tab ''Push'' | ||
+ | # Use ''Import TX'' to import the transaction file | ||
+ | # Click ''Send'' to send the transaction to the network | ||
+ | |||
===Tor Network=== | ===Tor Network=== | ||
Mojo can be used through the [https://en.wikipedia.org/wiki/Tor_(anonymity_network) Tor Network] . | Mojo can be used through the [https://en.wikipedia.org/wiki/Tor_(anonymity_network) Tor Network] . | ||
Line 96: | Line 109: | ||
===Settings=== | ===Settings=== | ||
− | * | + | * ''Wallet update'': how often does the wallet check the height of the network and update balance |
+ | |||
+ | ===Command-line interface=== | ||
+ | Mojo offer a Command-line interface (CLI) with features similar to the GUI. The complete list of CLI operations can be seen with the command <code>java -jar [Mojo jar file] -h</code> | ||
+ | |||
==Implementation== | ==Implementation== | ||
− | * | + | The Mojo wallet has been developed following the principle of [https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming) abstraction] making it highly flexible and easier to be reviewed. |
+ | The code is split in several modules: | ||
+ | * mojo-core: the core engine of the wallet responsible for all access to the wallet file | ||
+ | * mojo-gui-swing: a [https://en.wikipedia.org/wiki/Graphical_user_interface GUI] implementation in [https://en.wikipedia.org/wiki/Swing_(Java) JAVA Swing] | ||
+ | * mojo-gui-jfx: a proof of concept GUI implementation in [https://en.wikipedia.org/wiki/JavaFX JAVA FX] | ||
+ | * mojo-cli: a CLI implementation | ||
+ | * mojo-api: a set of [https://en.wikipedia.org/wiki/Interface_(computing)#Software_interfaces interfaces] allowing low coupling between the core and the GUI | ||
+ | * mojo-app: the final Mojo application |
Revision as of 22:15, 26 December 2018
The Mojo wallet is the official wallet of the Mochimo cryptocurrency. It was released for open beta on December 25, 2018. It is build in Java 8, making it available for all major operating system (Windows, Linux, OS X).
Contents
Installation
Mojo itself is a portable application that does not need to be installed, but requires at least Java version 8 to be installed in order to run. In most cases, double clicking the JAR file suffice to run the application. If this failed, it can be started by entering the following command into a CMD or Shell terminal: java -jar [Mojo jar file]
.
Create a wallet file
- Start Mojo and click on New
- Enter a name for the wallet (optional) and a password
- PBKDF2 value can be change for faster loading of the wallet (at a cost of a lower resistance to brute force attack)
- Default compression GZIP reduce the size of the wallet file
Address management
Address pool
The wallet file contains a pool of addresses which are used during operation (creating a new address, rolling a source address into a change address, etc). This pool must be expanded before any operation can happen.
- Under tab New, click on Expand and select the number of addresses to generate
- Backup the wallet file after the expand is completed
The Mojo wallet will use these addresses as needed to process user requests. Once the pool is exhausted a new expand must be performed (note: expand can be done at any time and certainly before the pool dries out).
Activate an address
Address can be activated from the pool under the tab New. Use Register to activate a tagged address through a fountain. The fountain will register the tag in the network by sending a specific transaction. Depending on the fountain and the network state, the registration can take several block to be processed. Until the registration is completed, the account will displayed Tag not found
status. Once the address is funded, the status will show Active
and will hold a small amount of Mochimo (currently 0.000000501 MCM which is the smallest possible amount for an address to exist on the network).
Use Create without registration if you do not want to use a fountain service or that you are not using a tag. Use Offline registration to skip network checks.
Account dashboard
All addresses can be found under the Accounts tab. By default, only Active
and Spent
address are being displayed. You can displayed all address by setting the Search field (on the top) to *
.
You can remove an address (for example a Spent address) from the default dashboard by deleting the address (see Account window).
Account window
Double click add account from the dashboard to open the Account window. This window is account specific and contain all the info about an account. You can copy the name, tag or address of an account into the clipboard by double clicking it. Use the various export option to share and address. The Delete button will flag the account and remove it from the default dashboard.
Import address
Mojo cannot read the CLI legacy *.wal file but allows importing legacy address file *.maddr
- Export the desired address from the legacy CLI wallet. To export the secret along with the address, select yes when prompted
Export balance ? y/n
and again yes onExport secret? y/n
- Open Mojo and navigate to the Import tab
- Select the appropriate import (Legacy for legacy address file, QR code or default JSON)
- Use tag resolve icon to resolve the tag if needed
- Click Add to add the address to the wallet. Use Add offline to skip tag check
- If you imported a secret, backup the wallet file
Export address
Account address and secret can be export from the Account window. Different type of export are available:
Be careful not to export the secret of an account when sharing your export file with a thrid party
Receive Mochimo
In order to receive Mochimo, the recipient must provide the sender with an address for which he/she holds the secret. Export the recipient address (see Export address) without the secret and share the export file with the sender. A tag can also be shared in place of a full address.
Send Mochimo
- Import the recipient address into the wallet (see Import address)
- Make sure there is at least one address available in the pool. If not, Expand the pool (see Address pool)
- Navigate to tab Send
- Select the source address to spend
- Select the destination address
- By default, the wallet will automatically activate a new address from the pool as the change address of the transaction. You can specify a change address by unticking the checkbox Roll source address
- Input the amount to send. By default, the amount is set in MCM but can be change to Satochi (SMCM) by ticking the checkbox SatoChi
- Click Send to send the transaction to the network
Restore from backup file
- Create a new wallet (see Create a wallet file)
- Navigate to tab Restore
- Select the backup file and input the password
- Click Restore
- After a while, the restored address will be available on Accounts tab
Advanced
Offline transaction
On the cold wallet:
- Navigate to tab Send
- Input source, destination and change address (see Send Mochimo)
- Tick the checkbox Offline
- Input the balance of source address and the amount to send
- Click on Sign only
- Save the transaction file
On the hot wallet:
- Navigate to tab Push
- Use Import TX to import the transaction file
- Click Send to send the transaction to the network
Tor Network
Mojo can be used through the Tor Network .
- Install and start Tor Browser
- Open a CMD/Shell terminal
- Start Mojo with
java -Dsocket.proxyHost=localhost -Dsocket.proxyPort=9005 -jar [Mojo jar file]
Note: Mojo have been successfully used on Tails OS using the same command
Settings
- Wallet update: how often does the wallet check the height of the network and update balance
Command-line interface
Mojo offer a Command-line interface (CLI) with features similar to the GUI. The complete list of CLI operations can be seen with the command java -jar [Mojo jar file] -h
Implementation
The Mojo wallet has been developed following the principle of abstraction making it highly flexible and easier to be reviewed. The code is split in several modules:
- mojo-core: the core engine of the wallet responsible for all access to the wallet file
- mojo-gui-swing: a GUI implementation in JAVA Swing
- mojo-gui-jfx: a proof of concept GUI implementation in JAVA FX
- mojo-cli: a CLI implementation
- mojo-api: a set of interfaces allowing low coupling between the core and the GUI
- mojo-app: the final Mojo application