blog-contributions/opsec/haveno-client-f2f/index.html

449 lines
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../../../../../assets/img/favicon.png">
<title>Haveno DEX Direct Fiat to Monero transactions</title>
<!-- Bootstrap core CSS -->
<link href="../../assets/css/bootstrap.css" rel="stylesheet">
<link href="../../assets/css/xt256.css" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="../../assets/css/main.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Static navbar -->
<div class="navbar navbar-inverse-anon navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand-anon" href="\index.html">nihilist`s Blog</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="/about.html">About</a></li>
<li><a href="/blog.html">Categories</a></li>
<li><a href="https://blog.nowhere.moe/donate.html">Donate</a></li>
<li><a href="/contact.html">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
<!-- +++++ Posts Lists +++++ -->
<!-- +++++ First Post +++++ -->
<div id="anon2">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<a href="../index.html">Previous Page</a></br></br><p><img src="../../assets/img/user.png" width="50px" height="50px"> <ba>nihilist@mainpc - 2024-05-14</ba></p>
<h1>Haveno DEX Direct Fiat to Monero transactions</h1>
<img src="0.png" style="width:250px">
<p>In this tutorial we're going to cover how to do a Fiat to Monero trade from the brand new (and long awaited!) <b>Haveno Decentralised Exchange</b>, using the Face-to-Face (F2F) payment method.</p>
<img src="0.1.png" class="imgRz">
<p><u>Sidenote</u>: i don't recommend face-to-face as a payment option of choice, this is just to try out how a basic trade Haveno DEX works!</p>
<p>Before reading through this tutorial, <b>make sure you understand why Decentralised Exchanges are the next step in Decentralised Finances</b> in this <a href="../finances/index.html">blogpost</a> i previously made, so that you have all the context.</p>
<p>As we are covering a DEX (Decentralised Exchange), <b>it means we are not covering how to use a website onto which you are purchasing monero</b> (like the now defunct Localmonero (RIP)), <b>we are covering a software that you install on your computer</b> (hence the Decentralisation in "DEX"), <b>to trade Peer to Peer (P2P) with the other users.</b></p>
<img src="28.png" class="imgRz">
<p>The resilliency of Haveno is on multiple levels: First of all the more Seed nodes there are, the harder to take down the Haveno network is. The anonymity provided by the Tor network of Haveno for all nodes (which is on by default), also adds up to the resiliency.</p>
<p>Clientside, the more peers (users) there are, the more diverse and bigger the exchange will be, and so will the decentralised market be at large. <b>The sooner the Monero market moves to Decentralised Exchanges, the more unstoppable it will become.</b> </p>
<p>Lastly if the Haveno network is completely taken down (let's say if all the seed nodes are taken down somehow), all that's left is for another administrator to spin up a new haveno network since the code is all open source, to repeat the cycle again. </p>
<p>You can check out my quick coverage of Haveno DEX on Monero Topia <a href="https://iv.nowhere.moe/watch?v=hWcwin8bDpc&t=1h9m11s">here</a>. (Definitely check out MoneroTopia for the latest news in the Monero world, awesome show!)</p>
<p><b>DISCLAIMER: THERE ARE NO OFFICIAL HAVENO NETWORK INSTANCES, THERE ARE ONLY THIRD PARTY HAVENO NETWORKS LIKE <a href="https://monero.town/post/3143272">HAVENO RETO</a>. </b></p>
<p><b> IF YOU SEE A HAVENO CLAIM TO BE THE OFFICIAL NETWORK <a href="https://monero.town/post/3260716">LIKE THIS ONE</a>, DONT FALL FOR THEIR SCAM!</b></p>
<p><img src="haveno-reto.png" style="width:200px"></br>You can check out the Reto team over at their official website at <a href="https://haveno-reto.com">https://haveno-reto.com</a></p>
<p><h2><u>OPSEC Recommendations:</u></h2></p>
<ol>
<li><p>Hardware : (Personal Computer / Laptop)</p></li>
<li><p>Host OS: <a href="../linux/index.html">Linux</a></p></li>
<li><p>Hypervisor: <a href="../hypervisorsetup/index.html">libvirtd QEMU/KVM</a></p></li>
<li><p>Virtual Machine: <a href="../hypervisorsetup/index.html">Linux</a> or <a href="../whonixqemuvms/index.html">Whonix</a> or <a href="../tailsqemuvm/index.html">Tails</a> </p></li>
</ol>
<p>I recommend using this setup into one of the above mentionned VMs, either for <a href="../privacy/index.html">Private use</a>, or <a href="../anonymityexplained/index.html">Anonymous use</a>, as per the <a href="../opsec4levels/index.html">4 basic OPSEC levels</a>. (Note that Deanonymization will happen during the Fiat transaction, but it is minimized as you're revealing your identity to an other peer, rather than to a centralised exchange)</p>
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /grey -->
<!-- +++++ Second Post +++++ -->
<div id="anon3">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2><b>How to install Haveno ? </b></h2>
<p>First, we need to find a Haveno Network, <a href="https://monero.town/post/3143272">Haveno Reto</a> being one of the first ones to show up, we're going to try them out:</p>
<p>Let's get the Haveno binaries from <a href="https://github.com/retoaccess1/haveno-reto/releases">Reto's github repository</a>, (which was forked from the <a href="https://github.com/haveno-dex/haveno">original Haveno repository</a>, maintained by <a href="https://github.com/woodser">Woodser</a>)</p>
<!--<p>You can just pick the latest successful CI build from <a href="https://github.com/retoaccess1/haveno-reto/actions">here</a>, for example from this successful <a href="https://github.com/retoaccess1/haveno-reto/actions/runs/9081479642">build</a>:</p>-->
<h2><b>For Debian Users</b></h2>
<p>Here, we are on a debian machine, so we download the ubuntu package (which contains the .deb and .rpm file)</p>
<img src="1.png" class="imgRz">
<h2><b>For Arch Linux Users</b></h2>
<p>You can either extract the .rpm (which is originally intended for Fedora users) package and run the haveno binary yourself, or use the <a href="https://aur.archlinux.org/packages/haveno-reto">AUR package maintained by duje</a></p>
<h2><b>For Windows Users </b></h2>
<p> If you are a windows user (know that it cant be trusted as <a href="../closedsource/index.html">it's not an open source operating system</a>, check out my tutorial here on <a href="../linux/index.html">how to install linux</a> instead), if you're too lazy you can check out darknetreporter's tutorial: </p>
<iframe class="rumble" width="640" height="360" src="https://rumble.com/embed/v4wro7n/?pub=4" frameborder="0" allowfullscreen></iframe>
<h2><b>For Debian Users</b></h2>
<p><b>Back on Debian (note: these instructions are the same if you are on Whonix!)</b>, the zip package is downloaded:</p>
<img src="2.png" class="imgRz">
<p>Then unpack the zipfile wherever you want:</p>
<pre><code class="nim">
[ mainpc ] [ /dev/pts/5 ] [~]
→ unzip ~/Downloads/HavenoInstaller-ubuntu-latest.zip -d ~/Documents/
Archive: /home/nihilist/Downloads/HavenoInstaller-ubuntu-latest.zip
inflating: /home/nihilist/Documents/desktop-1.0.3-SNAPSHOT-all.jar.SHA-256
inflating: /home/nihilist/Documents/haveno-1.0.3-1.x86_64.rpm
inflating: /home/nihilist/Documents/haveno_1.0.3-1_amd64.deb
[ mainpc ] [ /dev/pts/5 ] [~]
→ cd ~/Documents/haveno-reto
[ mainpc ] [ /dev/pts/5 ] [~/Documents/haveno-reto]
→ ls
desktop-1.0.3-SNAPSHOT-all.jar.SHA-256 <b>haveno_1.0.3-1_amd64.deb</b> haveno-1.0.3-1.x86_64.rpm
</code></pre>
<p>Here since we are currently on a debian machine, we're going to use the .deb file to install haveno, as follows:</p>
<pre><code class="nim">
[ mainpc ] [ /dev/pts/1 ] [~/Documents/haveno-reto]
→ sudo dpkg -i haveno_1.0.3-1_amd64.deb
[sudo] password for nihilist:
Selecting previously unselected package haveno.
(Reading database ... 214512 files and directories currently installed.)
Preparing to unpack haveno_1.0.3-1_amd64.deb ...
Unpacking haveno (1.0.3-1) ...
Setting up haveno (1.0.3-1) ...
#if it fails, run "apt install -f" to install the missing dependencies and then dpkg -i haveno.deb again.
</code></pre>
<p>If you previously used haveno, make sure you delete the folder in ~/.local/share/Haveno-reto as follows, to clear up all the previous wallet infos</p>
<pre><code class="nim">
[ mainpc ] [ /dev/pts/1 ] [~/Documents/haveno-reto]
→ rm -rf ~/.local/share/Haveno-reto
</code></pre>
<p>if you want to see the haveno logs from the CLI as you use it, you can do as follows:</p>
<pre><code class="nim">
[ mainpc ] [ /dev/pts/6 ] [~/Nextcloud/blog]
→ cd ~/.local/share/Haveno-reto
[ mainpc ] [ /dev/pts/6 ] [.local/share/Haveno-reto]
→ ls
haveno.log haveno.properties monerod monero-wallet-rpc monero-wallet-rpc.log version xmr_mainnet
[ mainpc ] [ /dev/pts/6 ] [.local/share/Haveno-reto]
→ tail -f haveno.log
May-29 20:55:23.829 [pool-16-thread-5] INFO h.c.t.TaskRunner: Run task: SendOfferAvailabilityRequest
May-29 20:55:23.830 [pool-16-thread-5] INFO h.c.o.a.t.SendOfferAvailabilityRequest: Send OfferAvailabilityRequest with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and uid d85caa9c-840c-45eb-8642-4cb12828fc93 to peer rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999
May-29 20:55:23.930 [JavaFX Application Thread] INFO h.c.o.a.t.SendOfferAvailabilityRequest: OfferAvailabilityRequest arrived at peer: offerId=mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106; uid=d85caa9c-840c-45eb-8642-4cb12828fc93
May-29 20:55:25.292 [JavaFX Application Thread] INFO h.d.c.c.c.PopOver: hide:200.0 ms
May-29 20:55:25.903 [pool-48-thread-1] INFO h.c.o.a.OfferAvailabilityProtocol: Received OfferAvailabilityResponse from rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999 with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and uid 986ee04a-47d2-4303-a9fc-12d18cc158ce
May-29 20:55:25.905 [pool-48-thread-1] INFO h.c.t.TaskRunner: Run task: ProcessOfferAvailabilityResponse
May-29 20:55:25.905 [pool-48-thread-1] INFO h.c.o.a.OfferAvailabilityProtocol: Send AckMessage for OfferAvailabilityResponse to peer rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999 with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and sourceUid 986ee04a-47d2-4303-a9fc-12d18cc158ce
May-29 20:55:25.907 [JavaFX Application Thread] INFO h.c.o.a.OfferAvailabilityProtocol: AckMessage for OfferAvailabilityResponse arrived at makersNodeAddress rlrsc6nfqbvqhly3qjcb36qzvw44xnxqhcht3nqndy324ewg4dut4iqd.onion:9999. offerId=mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106, sourceUid=986ee04a-47d2-4303-a9fc-12d18cc158ce
May-29 20:55:26.108 [pool-48-thread-1] INFO h.c.o.OpenOfferManager: Received AckMessage for OfferAvailabilityRequest with offerId mqbtqDh-1ec9fa64-e5e7-4766-9936-519951bc5f36-106 and uid d85caa9c-840c-45eb-8642-4cb12828fc93
May-29 20:55:27.427 [JavaFX Application Thread] INFO h.d.c.c.c.PopOver: hide:200.0 ms
</code></pre>
<p>next just launch Haveno as it should have been added to your system:</p>
<img src="3.png" class="imgRz">
<h2><b>For Whonix Users: use tor bridges to make Haveno connect!</b></h2>
<p>Next, haveno is going to connect to Tor. WHONIX USERS: If it is facing issues connecting wait for the client to ask you to set the tor settings:</p>
<img src="4.png" class="imgRz">
<p>then just get a torbridge from torproject.org:</p>
<img src="5.1.png" class="imgRz">
<p>and add them inside haveno, and restart it:</p>
<img src="5.2.png" class="imgRz">
<p>Then it should connect just fine:</p>
<img src="6.png" class="imgRz">
<p>you may need to wait a bit for your haveno node to sync up initially: (probably 1-2 minutes)</p>
<img src="7.png" class="imgRz">
<p>and once it finishes synchronising, you're in Haveno!</p>
<img src="8.png" class="imgRz">
<h2><b>For Tails OS Users: Use BrandyJson's Script!</b></h2>
<p>If you want to have a TailsOS VM running, check out my latest tutorial on it <a href="../tailsqemuvm/index.html">here</a>.</p>
<p>Download the latest haveno package just like on debian, then put it in the persistant storage:</p>
<pre><code class="nim">
amnesia@amnesia:~$ mv ~/Tor\ Browser/haveno_1.0.7-1_amd64.zip ~/Persistent/
amnesia@amnesia:~$ cd Persistent/
amnesia@amnesia:~/Persistent$ ls -lash
total 266M
4.0K drwx------ 3 amnesia amnesia 4.0K Jun 14 09:58 .
0 drwx------ 24 amnesia amnesia 600 Jun 14 09:19 ..
266M -rw-r--r-- 1 amnesia amnesia 266M Jun 14 09:57 haveno_1.0.7-1_amd64.zip
amnesia@amnesia:~/Persistent$ sudo apt install unzip
amnesia@amnesia:~/Persistent$ unzip haveno_1.0.7-1_amd64.zip
Archive: haveno_1.0.7-1_amd64.zip
inflating: desktop-1.0.7-SNAPSHOT-all.jar.SHA-256
inflating: haveno_1.0.7-1_amd64.deb
</pre></code>
<p>Then we can use <a href="https://github.com/BrandyJSon/haveno-install-tails/tree/main">BrandyJson's script</a> to install haveno on tails:</p>
<pre><code class="nim">
amnesia@amnesia:~/Persistent$ wget https://raw.githubusercontent.com/BrandyJSon/haveno-install-tails/main/haveno-install.sh
--2024-06-14 10:29:07-- https://raw.githubusercontent.com/BrandyJSon/haveno-install-tails/main/haveno-install.sh
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3393 (3.3K) [text/plain]
Saving to: \u2018haveno-install.sh\u2019
haveno-install.sh 100%[=====================================================================================================================>] 3.31K 14.3KB/s in 0.2s
2024-06-14 10:29:09 (14.3 KB/s) - \u2018haveno-install.sh\u2019 saved [3393/3393]
amnesia@amnesia:~/Persistent$ vim haveno-install.sh #review the script, and change the dpkg -i line with the correct haveno version if it has changed
</pre></code>
<p>Be aware that this is not an official way of installing haveno on Tails, it's going barbaric on apparmor and the security model of tails, later on, there will be a better way to install haveno on Tails OS </p>
<pre><code class="nim">
#if the bashscript contains '\r' characters , do the following:
amnesia@amnesia:~/Persistent$ tr -d '\r' <<b></b> haveno-install.sh > haveno-install.sh
#then install it:
amnesia@amnesia:~/Persistent$ sudo bash haveno-install.sh
[sudo] password for amnesia:
Selecting previously unselected package haveno.
(Reading database ... 148641 files and directories currently installed.)
Preparing to unpack .../haveno_1.0.7-1_amd64.deb ...
Unpacking haveno (1.0.7-1) ...
Setting up haveno (1.0.7-1) ...
Allowing amnesia to read tor control port cookie, only run this script when you actually want to use haveno
!!! not secure !!!
Updating apparmor-profile
Adding rule to iptables to allow for monero-wallet-rpc to work
Updating torsocks to allow for inbound connection
Restarting onion-grater service
Everything is set up just run
source ~/.bashrc
Then you can start haveno using haveno-tails
amnesia@amnesia:~/Persistent$ source ~/.bashrc
amnesia@amnesia:~/Persistent$ haveno-tails
Jun-14 10:52:51.099 [main] INFO haveno.common.util.Utilities: System info: os.name=Linux; os.version=6.1.0-21-amd64; os.arch=amd64; sun.arch.data.model=64; JRE=21.0.2+14-LTS (BellSoft); JVM=21.0.2+14-LTS (OpenJDK 64-Bit Server VM)
Jun-14 10:52:51.120 [main] INFO haveno.common.app.AsciiLogo:
0X
OOdolcck
KXKNN0occcccccck: :Kxxk0d
klccccccccccccccccck0xcccccccxK'
xccccccccccccccclOKKOocccccccccclxK
.xccccccccccccccclWMMMMMd:::::::::ccco
'dccccccc:::cccccclWMMMMMo:::::::::::cc;
,occccc:::::::::::::cxO0kl:::::::::::::cd
;occccc:::::cddddddc;;;;;;;;:ddddddl:::::coldOK
:occccc::::::xMMMMMMo,,,,,,,,cMMMMMMk::::::cccccoOc
llccccc:::::;;dMMMMMMo,,,,,,,,cMMMMMMk:::::::cccccc,
'cccccc::::;,,dMMMMMMl'''''',,cMMMMMMk::::::::ccccc.
.cccccc::::,,,dMMMMMMo'''''',,cMMMMMMk::::::::ccccc
:ccccc:::::;;dMMMMMM0xxxxxxxxOMMMMMMk::::::::ccc'
;ccccc:::::::xMMMMMMMMMMMMMMMMMMMMMMk::::::ccccco
'ccccc:::::::xMMMMMMMMMMMMMMMMMMMMMMk:::::ccccccco
.ccccccc:::::xMMMMMMd::::::::oMMMMMMk:::::ccccccc
:cccccccc:::xMMMMMMo,,,,,,,,cMMMMMMk:::::cccccc
cccccccccc:xMMMMMMo,,,,,,,,cMMMMMMk::::cccccc
:ccccccccccxMMMMMMo,,,,,,,,cMMMMMMO:cccccccc
ccccccccccxMMMMMMd;;;;;;;:lMMMMMMOcccccccc
ccccccclooooooc::::::::cddddddlcccccc:
.ccccc::::::::::::::ccccccccccccccc
:cccc:::::::::::ccccccccccccc
.cccc:::::::ccccccccccc,
'ccccccccccccc.
;ccccc:
.XXX. .XXX. .XXXk dXX0 ;XXX.KXXXXXX, xXX0 :XX0 ,XK000KK
.ccc. .ccc. xccccc ;cco .occ. ccccccc. :cccdo ;cc: oxlccccccco0.
.ccc. .ccc. dcc'ccl. :ccl dcc. ccc' :cccccO. ;cc: lccc 'ccd
.ccclllllccc. ccc: .ccx .ccl,dcc' cccllll. :cc, ccox;cc: :cc: .ccc.
.ccc ccc. 'lccl0kcccd .cclcc, ccc. :cc; .ccocc: .ccco kcc:
.ccc. .ccc. dcc. :ccl .ccc; cccd000' :cc; cccc: cccxO0kocc,
:ccc.
</pre></code>
<img src="30.png" class="imgRz">
<img src="29.png" class="imgRz">
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /white -->
<div id="anon2">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2><b>Fiat for Monero, Face to Face Trade</b></h2> </br> </br>
<p>First step is to setup your account for Face to Face Trades:</p>
<img src="9.png" class="imgRz">
<p>Here we specify that we want to do face to face trades in Berlin (Germany) as an example, we will use our FIAT currency, Euros (in cash), you can also specify alternative ways to get contacted if you don't like the built in chat in Haveno DEX, such as email or phone number, etc. Then hit the "save new account" button:</p>
<img src="10.png" class="imgRz">
<p>Make sure you read carefully what a face-to-face fiat->XMR trade is, and what are it's risks, if you're fine with it, click "i understand". Now that your account is created, head over to the "Buy" section, as you want to buy monero:</p>
<img src="11.png" class="imgRz">
<img src="12.png" class="imgRz">
<p>Then you can publish a Fiat->XMR face to face trade offer like so:</p>
<img src="13.png" class="imgRz">
<p>So here we want to purchase 0.10 XMR, for the current market price, which amounts to 12 euros. then hit next step:</p>
<p>Now here is when we get introduced to the <a href="https://github.com/haveno-dex/haveno/blob/master/docs/trade_protocol/trade-protocol.pdf">trade protocol</a>'s security deposit system as <a href="https://haveno.exchange/faq/#what-are-the-differences-in-the-trade-protocol">detailed in the Haveno FAQ</a>. I'll make a simple diagram to explain the situation:</p>
<pre><code class="nim">
Quote from Haveno's FAQ: (https://haveno.exchange/faq/#what-are-the-differences-in-the-trade-protocol)
[...]
Bisq recently adopted a protocol based on 2/2 multisig, while Haveno will use their previous protocol: 2/3 multisignature. In a 2/3 multisignature trade, each trader owns one key; this key will be paired with the key of the other trader and will be used to unlock funds and deposits. Its a 2 of 3 (2/3) protocol because you need only two out of three keys to move funds from the multisignature wallet.
If everything goes fine, the two traders will use their keys to complete the transfer process. If something goes wrong, one of the two parties wont use their key to complete the transaction, and this is where the arbitrator comes to action.
Arbitrators are inherited from Bisqs 2/3 protocol. They are a trusted role and have the duty of releasing the funds to one of the two parties in case of a conflict. To do so, they use the third key of the 2/3 multisig protocol.
[...]
</pre></code>
<img src="15.png" class="imgRz">
<p>To make it short, you (Bob) in this case, want to trade Fiat, for Alice's XMR, in person. <b>BOTH you and Alice need to put in some monero into the trade, as a security deposit.</b> That is so in case if you try to scam Alice, you will loose something in the process, preventing you from trying to repeatedly scam people, and vice versa.</p>
<img src="xmrbazaar_logo_beta.png" style="width:200px">
<p><u>Sidenote:</u> <b>if you want to get your first monero</b> and you don't have any crypto / fiat to start with, <b>check out the <a href="https://xmrbazaar.com/search/earn-xmr/">"earn XMR"</a> section in xmrbazaar.com.</b> For example, i offer monero to whoever contributes new blogposts to the OPSEC section of my blog in this offer <a href="https://xmrbazaar.com/listing/UsWA/">here</a>.</p>
<p>Due to the 2/3 multisig nature of the trade, <b>there needs to be at least 2 agreeing parties to complete the trade</b>. If all goes well, you and Alice agree on the trade, and the security deposit monero is released. If not, the Arbitrator will step in to punish the wrongdoer (by not giving him the security deposit back), and give the security deposit to the honest party.</p>
<p>The following example will cover a successful trade between you and Alice. If you want to see a trade dispute, check out <a href="../haveno-arbitrator/index.html">this tutorial</a>.</p>
<img src="14.png" class="imgRz">
<p>So here, you need to send the security deposit to be able to post your buying offer, just send it from your monero wallet like so:</p>
<img src="14.1.png" class="imgRz">
<p>Once you've sent the monero to your haveno trade for the security deposit, you need to wait approx 20 minutes for the transaction to be confirmed by the network</p>
<img src="15.1.png" class="imgRz">
<p>Approx 20 mins later, the trade shows up as enabled:</p>
<b>Bob: puts 0.1005 XMR into the trade for the security deposit, </b>
<img src="16.png" class="imgRz">
<p>You (and the other haveno peers) can see it from the Sell tab:</p>
<img src="17.png" class="imgRz">
<p>Here you just need to wait for someone to accept the trade. Once they do, they will need to send their share of the security deposit too just like we previously did. Once they do it will show up on your end as an initiated trade:</p>
<b>Alice puts 0.1005 XMR into the trade for the security deposit. Then the trade is secured</b>
<img src="18.png" class="imgRz">
<p>Same as before, you need to wait for the security deposit to be validated by the network (approx 20 mins again). In the meantime you can chat with the trader by clicking the "Open Trader Chat" button.</p>
<img src="19.png" class="imgRz">
<p>Once the security deposit has been validated by the network for the other party, you will get a notification that the trade can begin:</p>
<img src="20.png" class="imgRz">
<p>Next step is for you to go and give the 12 Euros to Alice, and once you do, you confirm that the Payment has been sent like so:</p>
<img src="22.png" class="imgRz">
<p>Then, you wait for Alice to confirm that she has recieved the 12 Euros (it will show up as "Peer confirmed message receipt"):</p>
<img src="21.png" class="imgRz">
<b> Alice can then send the 0.10 XMR to Bob, after Bob Pays her in Euros. </b>
<p>Then here, you just wait for the Monero to arrive in your Haveno monero wallet, it will first show up as Pending on the top right corner:</p>
<img src="23.png" class="imgRz">
<p>Wait another 20 minutes for the transaction to be validated by the network, and it will show up in your Haveno monero wallet as Available balance:</p>
<b> The trade is successful, the security deposit is now released, Bob gets his 0.1005 XMR back, and Alice too. (minus the transcation fees and arbitrator fees) </b>
<img src="24.png" class="imgRz">
<p>And that's it, you can now pop the Champagne as you completed your first Fiat -> XMR transaction on a Decentralised exchange! 🥂</p>
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /white -->
<!-- +++++ Second Post +++++ -->
<div id="anon1">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2">
<h2><b>Withdrawing your Monero from Haveno to another Wallet</b></h2> </br> </br>
<p>Now all that's left is to withdraw your monero from your Haveno monero wallet to your other Monero Wallet:</p>
<img src="25.png" class="imgRz">
<p>Head over to Funds > send funds, tick the "Amounts includes mining fee" option, and select the amount of monero you want to withdraw, in this case i'm withdrawing all of it.</p>
<img src="26.png" class="imgRz">
<p>Then confirm that you want to withdraw the funds, and check your monero wallet for the incoming transaction:</p>
<img src="27.png" class="imgRz">
<p>And that's it! you just withdrew your funds to your other monero wallet!</p>
<p>Check out my other tutorials on Decentralised Finances below:</p>
<ol>
<li><a href="../monero2024/index.html">✅ How to acquire and use Monero </a></li>
<li><a href="../haveno-client-f2f/index.html"><b>✅ Haveno Decentralised Exchange direct Fiat -> XMR transaction ⭐</b></a></li>
<li><a href="../haveno-arbitrator/index.html">✅ Haveno DEX Dispute resolution (Fiat -> XMR) </a></li>
<li><a href="../haveno-sepa/index.html">✅ Haveno DEX Bank Transfer (ex: SEPA) -> XMR transaction </a></li>
<li><a href="../haveno-cashbymail/index.html">✅ Haveno DEX Cash By Mail -> XMR transaction ⭐</a></li> </ol></br>
</div>
</div><!-- /row -->
</div> <!-- /container -->
</div><!-- /white -->
<!-- +++++ Footer Section +++++ -->
<div id="anonb">
<div class="container">
<div class="row">
<div class="col-lg-4">
<h4>Nihilism</h4>
<p>
Until there is Nothing left.
</p>
</div><!-- /col-lg-4 -->
<div class="col-lg-4">
<h4>My Links</h4>
<p>
<a target="_blank" rel="noopener noreferrer" href="http://blog.nowhere.moe/rss/feed.xml">RSS Feed</a><br/><a target="_blank" rel="noopener noreferrer" href="https://matrix.to/#/#nowheremoe:nowhere.moe">Matrix Chat</a><br/>
</p>
</div><!-- /col-lg-4 -->
<div class="col-lg-4">
<h4>About nihilist</h4>
<p style="word-wrap: break-word;"><u>Donate XMR:</u> 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8</p></br><p><u>Contact:</u> nihilist@nowhere.moe (<a href="https://nowhere.moe/nihilist.pubkey">PGP</a>)</p>
</div><!-- /col-lg-4 -->
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
</body>
</html>