Get acquainted with MNX friendly Atomic Swaps GUI and know how it works.

Hi, dear community! We are pleased to present you our user-friendly graphical interface (GUI) for the atomic exchange technology testing, as we promised a week ago. However, this is only the first alpha-version which requires further fine-tuning, but it already allows you to understand how the basic Atomic Swap technology works and even conduct a test-exchange with your friends without bothering with console commands and complex technical documentation.

As you will recall, in our previous release we mentioned that our cross-chain exchange uses two blockchains — MNX and BTC — in Testnet mode. These are alternative chains that are separate and distinct from actual blockchains named Mainnets. Coins in Testnets don’t have any value and allow developers or testers to test new technologies (like Atomic Swap) without worrying about breaking the main chain or risk their assets.

Well, let’s move to the main today’s subject. This is how our GUI looks at its first iteration:

You can download it from our official Github now or at official MNX site a little later.

How it works?

Firstly, to start Atomic Swap process, Minexcoin and Bitcoin nodes should be configured in right way. To do this use the instruction below.

1) Testnet

First of all, Testnet should be activated. To do this, add `testnet=1` to the conf file of both of nodes. Or simply type it into command line while starting the nodes, e.g. `minexcoind -testnet`

2) RPC credentials

Add RPC credentials to conf files like this:

```

rpcuser=my_user_name

rpcpassword=my_awesome_password

```

or type it to command line like this:

`minexcoind … -rpcuser=my_user_name -rpcpassword=my_awesome_password`

Where `my_user_name` and `my_awesome_password` are your own username and password.

3) ZMQ

Add ZMQ host and port number for notifications from node in conf file:

```

zmqpubhashblock=tcp://127.0.0.1:dddd

zmqpubhashtx=tcp://127.0.0.1:dddd

```

or to command line like:

`minexcoind … -zmqpubhashblock=tcp://127.0.0.1:dddd -zmqpubhashtx=tcp://127.0.0.1:dddd`

Where `dddd` is a port number (Numbers from 1024 to 65535 except numbers from this table.

4) Starting as a daemon

It’s an optional item. Enable it if you want to start node as a daemon.

```

daemon=1

```

5) Conclusion

If all configurations are set right, your conf file should be similar to this:

```

daemon=1

testnet=1

rpcuser=my_user_name

rpcpassword=my_awesome_password

zmqpubhashblock=tcp://127.0.0.1:dddd

zmqpubhashtx=tcp://127.0.0.1:dddd

```

Or similar to this command line:

```

minexcoind -testnet -rpcuser=my_user_name -rpcpassword=my_awesome_password \

-zmqpubhashblock=tcp://127.0.0.1:dddd -zmqpubhashtx=tcp://127.0.0.1:dddd

```

These configurations are applicable for both cryptocurrencies — MNX and BTC.

Atomic Swap test

As we said earlier, GUI was developed to make Atomic Swap process more friendly. However, it has a lot of fields you should to know. Here’s an explanation for atomic swap GUI components.

Firstly, IP addresses of both participants should be set. For this purpose, there are two blocks named **My inet settings** and **Partner inet settings**. These blocks represent your IP address(named *Host*) and port number(named *Port*), and your partner accordingly.

Port number can be set to a random number, but be sure that it is in a range from 1024 to 65535, and don’t overlap any port number from this list.

Provide your IP address and port number to your partner and ask a partner to do the same for you. Then fill up each field from both blocks.

Tip: If you don’t know your IP address, you may visit any source displaying your IP address, e.g. ICanHazIP.

Block named **Minexcoin settings** should contain data related to your Minexcoin node. Description of each field is listed below.

**Login** — RPC access credential. It should be equal to “rpcuser” parameter which was typed in the configuration file or terminal command line starting the node.

Password** — RPC access credential that should be equal to “rpcpassword” parameter which was typed in the configuration file or terminal command line starting the node.

**Notification port** is a ZMQ port number to receive event message from the node.

**My private key** — your private key (uncompressed, raw) for spending transaction to yourself.

**Partner public key** — partner’s public key (uncompressed, raw) for spending transaction to a partner.

**Amount** — the number of coins (**in satoshi**) you want to spend or receive.

**Confirmations** — the number of confirmations needed to assume transaction is trusted.

*Expire** is the number of confirmations needs to refund your transaction back to you. Should be greater than **Confirmations’** value (make sure that time needed to achieve this number of confirmations on your blockchain is as close to your partner’s blockchain time as possible).

*Bitcoin settings** block is actually the same as **Minexcoin settings** but for Bitcoin node.

Thr last block allows to to **Run** Atomic swap. After you fill out all the fields with actual data:

1. Select a right action from the drop&down list.

2. Press **Exchange** button.

3. Follow on execution at Status window.

If all the settings are correct and the atomic exchange is successful, the GUIs of Seller and Buyer will look like this:

Buyer’s and Seller’s versions of GUIs

Important clarification: everything described above is provided for MNX and BTC Testnets. We strongly urge you not to try to make an atomic exchange on Mainnets with real coins, in mind of your fund’s safety.

What’s next?

Our team, who is in charge of the decentralized exchanger, has begun to expand the functionality of the exchange processes. They are adding new coins, working on improving the flow and the whole UI/UX of this product. In the future, this basic version will become the foundation for the trustless MNX exchange.