Skip to content

Using the Atomic Swap Marketplace QT Wallet

MrT edited this page Jun 12, 2021 · 23 revisions

Contents :

Requirements

To follow this tutorial, you will need the following:

Up-to-date MWC QT-Wallet Software: https://github.com/mwcproject/mwc-qt-wallet/releases
Before you start, make sure your Software is up to date and to carefully read through needed instructions.


Explanation Videos

In addition to this document there is also a Video explaining the Marketplace process.
For more Information consider checking the Video explaining the Swap process or reading through the Atomic Swap Documentation.


Important to know

Atomic Swaps are a special way to make sure a crosschain peer to peer trade either completes on both sides, or not at all. This enables trustless trades between 2 parties without an exchange, but for this to work there are 2 important requirements, 1 relates to "acting in a timely manner" and a second one relates to not setting mining fees values high enough.

Due to the nature of Swaps using Multisigs there are technically 2 transactions connected to a trade, the first one "locks" the assets into the multisig. The second transaction redeems the locked funds once both parties know required secrets (or in simpler words, the trade was succesfull). This second redeem transaction however is required to be mined "in a timely manner" which is set in the Trade Offer initially.

The marketplace allows you to post Swap offers to everyone, or to accept offers of others. Please make sure to choose high enough confirmation times (Blocks) to ensure trades are not vulnerable to small Reorgs!

What to take away from this paragragh?

For a Swap Offer you'll pay a reoccuring integrity fee to keep the offer posted and you need to define "Number of Confirmations", let's explain those terms and important caviats here.

  1. Make sure needed Block confirmation fit your security needs.

Number of confirmations need to be large enough so the cost of attack will be higher than your swap amount. The QT wallet calculates what should be a reasonable default value for you; however, you may adjust them as you see fit.

Furhtermore the wallet requests the BTC transaction fee to be included in 2 Blocks from now using www.bitgo.com API's. BTC fees are fluctuating over time, therefore the optimal fee value might be slightly different when the BTC redeem/refund transcation happens. During the trade you can adjust the transaction fee. If you see that your transaction is stuck at the transaction pool, please increase the fee and it will be reposted to the blockchain. For BCH the fee doesn't need to be adjusted, normally each block includes all transactions from the memory pool.

  1. Your Wallet needs to be online for certain steps during the Swap process. The same applies to Marketplace offers, your wallet needs to stay online for others to accept-, and execute on the offer.

  2. You are using Atomic Swaps to trade if you use the marketplace, make sure you understand the implications of this trading method. For example, a "swap fee" is required to redeem a swap transaction which is deducted from the Total you receive. (So if you receive 0.001 BTC for a trade, but fees total at 0.0001 BTC you will only receive 0.0009 BTC after the redeem transaction was confirmed. This fee is needed to execute an atomic Swap trade and is set when executing a Swap)

  3. Required MWC for the Offer you post on the Marketplace will get locked on your wallet level, to unlock them again cancel the Offer.
    See here for more information about locked outputs

  4. In order to post an Offer you need to pay an "Integrity Fees", this is required to make sure the marketplace isn't polluted by malicious offers. This fee is paid daily, and you can choose the percentage of fees you are willing to pay to keep an offer posted. It may endorse Market takers to accept your Offer if the fee is higher.


Create a Marketplace offer

1.1) Select the marketplace Tab, select "my Offers" and make sure to choose a backup directory (this is only required once)


1.2) Select the Secondary Currency you want to Swap your MWC for and how many MWC to buy or sell

There are some Limitations on what type of addresses&Secondary Currencies can be used for Swaps, please make sure you use a supported address type from This List!


1.3) Enter your Secondary Currency Address to receive funds from the Swap. (or a refund from the offer if it fails)
1.4) Set a TX Fee to make sure the Transaction is included in a Block by Miners before the BTC Redeem time window is over. The default fee value is usually reasonable for the current time.
1.5) Make sure the Locktimes are long enough for your preference and Click "continue"


1.6) When you are sure everything is correct Click "Submit"

Transaction fees can be adjusted at any moment. If your transaction is stuck at the memory pool, you can increase the fee to decrease the time needed for confirmations.

At this point you will need to wait for your offer to propagate through Nodes and for a Buyer/seller to accept the Trade Offer. Once accepted whoever created the offer will lock his Funds first and wait for the Buyer/seller to post the collateral. Leave the wallet online and it will complete the Swap for you. Take note that required MWC for the Offer will get locked on your wallet level. See here for more information about locked outputs


Accept a Marketplace offer

To accept a marketplace offer you like, you can just click "accept" and follow the on-screen Instructions:

1.1) Select "Details" on the offer you like


1.2) Select "Accept" if you want to accept this offer


1.3) Wait for the Hostwallet of the Offer to send you the Swap Offer Details.


1.4) Now the Wallet will display the Swap offer details in a Pop-up, click on "Review and accept" to get to the familiar Swap offer process.

Note you could still decline the offer if the details don't match up.


1.5) If the details are correct, enter a Refund address for your secondary currency and click "accept".
1.6) Now the "tradeplan" is showing and is a normal Swap transaction, see the Swap docs for detailed information. Otherwise follow the onscreen Instructions.


Monitoring and troubleshooting

If there are some errors during a swap trade after an offer was accepted, the “Swap” icon will start blinking. Please check the status of the Swap for error messages. You might just have a connection problem, please restore your connection if possible.


Integrity Fees

Integrity fees are required to ensure posted offers are of honest participants. The fees are always determined based on the MWC amount of the Trade offer. You can change the amount of fees you are willing to pay which may indicate that this offer is "more serious" than offers with lower fees.

In order to change the Fee Amount you can select the "Fees"-section of the marketplace and select a fee-level.

You can also see how long your already paid integrity fee is valid if you paid one already. This fee is automatically paid if you post an offer. Please note it always reserves 1 MWC for Fees after you first participated in the marketplace to ensure there are funds to renew posted offers after 24 hours.

Those fees are paid to miners as an incentive to secure the network and to divert a potential attackers funds to miners, creating a "positive feedback loop" strengthening the network if someone would try to spam the marketplace with offers.


FAQ

Q: Does my wallet need to stay online?
A: Yes.

Q: What happens if I close my wallet while an offer is active?
A: The wallet will detect this and ask you if you want to "continue" those offers!

Q: Will I need to pay an Integrity fee to keep Offers broadcasted?
A: Yes. The configured fees are paid daily, unless you cancel your offer it will renew itself after 24 hours. (1440 blocks)

Q: Will I need to pay an Integrity fee to accept Offers?
A: No! You will pay the fee's required for the Swap TX's however. (deducted from the total received, this fee is technically required to do a swap)

Q: What is renewing itself? What does that mean?
A: Fee's are renewed daily to keep your offer "alive", see above.

Q: How does this work?
A: Its mostly a wrapper around Atomic Swaps, feel free to check the Atomic Swaps Documentation for further conext.

Q: My offer was Accepted but isn't getting completed.
A: There's not much you can do about that. If someone accepts an offer and doesn't follow through in a timely manner you will need to repost your offer once your funds got refunded.

Q: Why can't I spend my funds while I have an offer on the Marketplace?
A: The required MWC for the Swap are locked on the walletside, once you cancel the offerthe funds are availlable again. See here for more information about locked outputs

Q: Why are more funds locked than I need for the Offer I posted?
A: You can only lock "an Output". You may have an Output that contains alot of MWC. To break this down into "smaller volumes per Output" do a selfspend with an amount slightly above what you want to post an Offer for.

Clone this wiki locally