Mojo Wallet

From Mochimo Wiki
Revision as of 10:03, 27 December 2018 by Acrotiger (talk | contribs) (Installation)
Jump to: navigation, search

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).


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 is sufficient to run the application. If this fails, it can be started by entering the following command into a CMD or Shell terminal: java -jar [Mojo jar file].

Create a wallet file

  1. Start Mojo and click on New
  2. Enter a name for the wallet (optional) and a password
  3. PBKDF2 value can be change for faster loading of the wallet (at the cost of a lower resistance to a brute force attack)
  4. 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.

  1. Under tab New, click on Expand and select the number of addresses to generate
  2. 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 an 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

  1. 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 on Export secret? y/n
  2. Open Mojo and navigate to the Import tab
  3. Select the appropriate import (Legacy for legacy address file, QR code or default JSON)
  4. Use tag resolve icon to resolve the tag if needed
  5. Click Add to add the address to the wallet. Use Add offline to skip tag check
  6. 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:

  1. JSON export (text file)
  2. QR code export ([PNG] file)
  3. Legacy export (binary file)

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

  1. Import the recipient address into the wallet (see Import address)
  2. Make sure there is at least one address available in the pool. If not, Expand the pool (see Address pool)
  3. Navigate to tab Send
  4. Select the source address to spend
  5. Select the destination address
  6. 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
  7. 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
  8. Click Send to send the transaction to the network


Restore from backup file

  1. Create a new wallet (see Create a wallet file)
  2. Navigate to tab Restore
  3. Select the backup file and input the password
  4. Click Restore
  5. After a while, the restored address will be available on Accounts tab

Advanced

Offline transaction

On the cold wallet:

  1. Navigate to tab Send
  2. Input source, destination and change address (see Send Mochimo)
  3. Tick the checkbox Offline
  4. Input the balance of source address and the amount to send
  5. Click on Sign only
  6. Save the transaction file

On the hot wallet:

  1. Navigate to tab Push
  2. Use Import TX to import the transaction file
  3. Click Send to send the transaction to the network

Tor Network

Mojo can be used through the Tor Network .

  1. Install and start Tor Browser
  2. Open a CMD/Shell terminal
  3. 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 MAVEN 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