-
Notifications
You must be signed in to change notification settings - Fork 2
/
print.html
434 lines (393 loc) · 51 KB
/
print.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
<!DOCTYPE HTML>
<html lang="es" class="light" dir="ltr">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
<title>Mostro-FAQ</title>
<meta name="robots" content="noindex">
<!-- Custom HTML head -->
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="theme-color" content="#ffffff">
<link rel="icon" href="favicon.svg">
<link rel="shortcut icon" href="favicon.png">
<link rel="stylesheet" href="css/variables.css">
<link rel="stylesheet" href="css/general.css">
<link rel="stylesheet" href="css/chrome.css">
<link rel="stylesheet" href="css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="highlight.css">
<link rel="stylesheet" href="tomorrow-night.css">
<link rel="stylesheet" href="ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
<body class="sidebar-visible no-js">
<div id="body-container">
<!-- Provide site root to javascript -->
<script>
var path_to_root = "";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
</script>
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
var theme = localStorage.getItem('mdbook-theme');
var sidebar = localStorage.getItem('mdbook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
<!-- Set the theme before any content is loaded, prevents flash -->
<script>
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('light')
html.classList.add(theme);
var body = document.querySelector('body');
body.classList.remove('no-js')
body.classList.add('js');
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
var body = document.querySelector('body');
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
} else {
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
body.classList.remove('sidebar-visible');
body.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
<div class="sidebar-scrollbox">
<ol class="chapter"><li class="chapter-item expanded affix "><a href="index.html">Inicio Rápido 🚀</a></li><li class="chapter-item expanded "><a href="faq.html"><strong aria-hidden="true">1.</strong> Preguntas Frecuentes</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="what-is-mostro.html"><strong aria-hidden="true">1.1.</strong> ¿Qué es Mostro?</a></li><li class="chapter-item expanded "><a href="need-it.html"><strong aria-hidden="true">1.2.</strong> ¿Qué necesito para usar Mostro?</a></li><li class="chapter-item expanded "><a href="no-kyc.html"><strong aria-hidden="true">1.3.</strong> ¿Debo registrarme o hacer KYC?</a></li><li class="chapter-item expanded "><a href="how-it-works.html"><strong aria-hidden="true">1.4.</strong> ¿Cómo funciona Mostro?</a></li><li class="chapter-item expanded "><a href="currencies-payment-methods.html"><strong aria-hidden="true">1.5.</strong> Monedas y Métodos de Pago aceptados</a></li><li class="chapter-item expanded "><a href="fees-and-limits.html"><strong aria-hidden="true">1.6.</strong> Tarifas y Límites de Intercambios</a></li><li class="chapter-item expanded "><a href="cancelling-an-order.html"><strong aria-hidden="true">1.7.</strong> ¿Puedo cancelar una orden?</a></li><li class="chapter-item expanded "><a href="hold-invoice.html"><strong aria-hidden="true">1.8.</strong> Hold Invoices: Seguridad de los Intercambios</a></li><li class="chapter-item expanded "><a href="times.html"><strong aria-hidden="true">1.9.</strong> Tiempo de Intercambio</a></li><li class="chapter-item expanded "><a href="reputation.html"><strong aria-hidden="true">1.10.</strong> Sistema de Reputación</a></li><li class="chapter-item expanded "><a href="disputes.html"><strong aria-hidden="true">1.11.</strong> Gestión de Disputas</a></li><li class="chapter-item expanded "><a href="privacy.html"><strong aria-hidden="true">1.12.</strong> Privacidad en Mostro</a></li><li class="chapter-item expanded "><a href="support-and-contacts.html"><strong aria-hidden="true">1.13.</strong> Soporte y Contacto</a></li><li class="chapter-item expanded "><a href="contribute.html"><strong aria-hidden="true">1.14.</strong> Cómo Contribuir</a></li></ol></li><li class="chapter-item expanded "><a href="clients.html"><strong aria-hidden="true">2.</strong> Clientes. Cómo uso Mostro</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="mostro-web.html"><strong aria-hidden="true">2.1.</strong> Mostro-web</a></li><li class="chapter-item expanded "><a href="mostro-cli.html"><strong aria-hidden="true">2.2.</strong> Mostro-cli</a></li><li class="chapter-item expanded "><a href="mostrui.html"><strong aria-hidden="true">2.3.</strong> Mostrui</a></li><li class="chapter-item expanded "><a href="mostro-mobile.html"><strong aria-hidden="true">2.4.</strong> Mostro mobile</a></li></ol></li></ol>
</div>
<div id="sidebar-resize-handle" class="sidebar-resize-handle">
<div class="sidebar-resize-indicator"></div>
</div>
</nav>
<!-- Track and set sidebar scroll position -->
<script>
var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
sidebarScrollbox.addEventListener('click', function(e) {
if (e.target.tagName === 'A') {
sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
}
}, { passive: true });
var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
sessionStorage.removeItem('sidebar-scroll');
if (sidebarScrollTop) {
// preserve sidebar scroll position when navigating via links within sidebar
sidebarScrollbox.scrollTop = sidebarScrollTop;
} else {
// scroll sidebar to current active section when navigating via "next/previous chapter" buttons
var activeSection = document.querySelector('#sidebar .active');
if (activeSection) {
activeSection.scrollIntoView({ block: 'center' });
}
}
</script>
<div id="page-wrapper" class="page-wrapper">
<div class="page">
<div id="menu-bar-hover-placeholder"></div>
<div id="menu-bar" class="menu-bar sticky">
<div class="left-buttons">
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
<i class="fa fa-bars"></i>
</label>
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
<i class="fa fa-paint-brush"></i>
</button>
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
<li role="none"><button role="menuitem" class="theme" id="light">Light</button></li>
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
</ul>
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
<i class="fa fa-search"></i>
</button>
</div>
<h1 class="menu-title">Mostro-FAQ</h1>
<div class="right-buttons">
<a href="print.html" title="Print this book" aria-label="Print this book">
<i id="print-button" class="fa fa-print"></i>
</a>
</div>
</div>
<div id="search-wrapper" class="hidden">
<form id="searchbar-outer" class="searchbar-outer">
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
</form>
<div id="searchresults-outer" class="searchresults-outer hidden">
<div id="searchresults-header" class="searchresults-header"></div>
<ul id="searchresults">
</ul>
</div>
</div>
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
<script>
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
});
</script>
<div id="content" class="content">
<main>
<h1 id="inicio-rápido-"><a class="header" href="#inicio-rápido-">Inicio Rápido 🚀</a></h1>
<p>En este sitio encontrarás información sobre cómo utilizar <a href="https://mostro.network/">Mostro</a>, una plataforma de intercambio de bitcoin en Lightning Network de tipo peer-to-peer (p2p) por cualquier moneda local, que opera sobre <a href="https://nostr.com/">Nostr</a> y no requiere procedimientos de KYC.</p>
<h2 id="guía-de-inicio-rápido-"><a class="header" href="#guía-de-inicio-rápido-">Guía de inicio rápido 🚀</a></h2>
<ol>
<li>
<p><strong>Ten una wallet compatible con Lightning Network.</strong></p>
</li>
<li>
<p><strong>Abre algún <a href="./clients.html">cliente de Mostro</a>.</strong></p>
</li>
<li>
<p><strong>Sigue las instrucciones del <a href="./clients.html">cliente</a>:</strong></p>
<ul>
<li>Loguéate con una clave de Nostr, algunos <a href="./clients.html">clientes de Mostro</a> la crearán para ti!</li>
<li>Encuentra o crea ofertas de compra/venta de bitcoin.</li>
<li>Espera por un usuario interesado.</li>
<li>Si estás comprando Sats, envía la invoice donde recibirás los sats.</li>
<li>Si estás vendiendo Sats, paga la <a href="./hold-invoice.html">hold invoice</a> (los sats quedarán retenidos en tu wallet hasta el final del proceso).</li>
<li>Habla con tu contraparte. Acuerden cómo intercambiarse el fíat. Este es un proceso <a href="./privacy.html">privado</a>.</li>
<li>Finaliza el intercambio.</li>
<li>Si tu contraparte no responde, inicia una <a href="./disputes.html">disputa</a>.</li>
<li><a href="./reputation.html">Califica</a> a tu contraparte. Tú también serás <a href="./reputation.html">calificado</a>.</li>
</ul>
</li>
</ol>
<h2 id="recomendaciones"><a class="header" href="#recomendaciones">Recomendaciones</a></h2>
<ul>
<li>
<p>Si tienes alguna duda que no esté respondida en esta documentación puedes preguntar a <a href="./support-and-contacts.html">nuestra comunidad</a>.</p>
</li>
<li>
<p>Reporta errores o sugiere mejoras en nuestros <a href="https://github.com/MostroP2P">repositorios de GitHub</a>.</p>
</li>
<li>
<p>Síguenos en <a href="https://njump.me/nprofile1qqsdhc93hklp988r3km4844fjln298nf8t7s92sar7dsqha88ph9cfspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz8thwden5te0dehhxarj9e3xjarrda5kuetj9eek7cmfv9kz7qg4waehxw309aex2mrp0yhxummnw3ezucn89uv7r8lk">Nostr</a> y <a href="https://x.com/MostroP2P">X</a> para que no te pierdas los anuncios principales.</p>
</li>
</ul>
<div style="break-before: page; page-break-before: always;"></div><h1 id="preguntas-frecuentes"><a class="header" href="#preguntas-frecuentes">Preguntas Frecuentes</a></h1>
<p>Continúa leyendo esta documentación para entender qué es Mostro, cómo funciona, y cómo puedes usarlo.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="qué-es-mostro"><a class="header" href="#qué-es-mostro">¿Qué es Mostro?</a></h1>
<p>Mostro es una plataforma de intercambio de bitcoin en Lightning Network de tipo peer-to-peer (P2P) por cualquier moneda local, que opera sobre el protocolo de <a href="https://nostr.com/">Nostr</a> y no requiere procedimientos de Know Your Customer (KYC).</p>
<p>Utiliza <a href="./hold-invoice.html">hold invoices</a> como sistema de escrow para brindar seguridad al intercambio de Sats, minimizando la custodia y reduciendo la confianza necesaria tanto en la contraparte como en Mostro.</p>
<p>Al operar sobre <a href="https://nostr.com/">Nostr</a>, un protocolo de comunicación diseñado para ser resistente a la censura como consecuencia de la descentralización de su infraestuctura, se garantiza que sea muy difícil impedir los intercambios de bitcoin a través de Mostro, censurar la publicación de ofertas de compra y venta, o bloquear la comunicación entre los usuarios involucrados en un intercambio. Además, a medida que más <a href="https://github.com/MostroP2P/mostro">instancias de Mostro</a> estén activos, unido a la descentralización inherente de Nostr, será cada vez más complicado detener los intercambios P2P de bitcoin sin KYC.</p>
<h2 id="origen-de-mostro"><a class="header" href="#origen-de-mostro">Origen de Mostro</a></h2>
<p>Mostro está inspirado en el <a href="https://github.com/lnp2pBot/bot">@lnp2pBot</a>, un bot de Telegram creado en 2021 para facilitar el intercambio de bitcoin a través de Lightning Network, sin ceder datos personales, sin custodia de fondos y sin KYC. El bot ha crecido de forma constante y orgánica, con alcance global y un impacto especialmente significativo en América Latina, donde la población enfrenta problemas financieros y encuentra en bitcoin una alternativa. Asimismo, ha ganado popularidad en países bajo regímenes autoritarios, como Cuba y Venezuela, donde las personas utilizan bitcoin para resistir la tiranía y reducir su dependencia de la moneda local.</p>
<p>Aunque el <a href="https://github.com/lnp2pBot/bot">@lnp2pBot</a> funciona eficientemente, opera sobre Telegram, una plataforma que, si bien ofrece muchas ventajas, podría llegar a estar bajo presión de gobiernos poderosos que buscan perseguir a disidentes políticos o figuras públicas incómodas. En este contexto, <a href="https://nostr.com/">Nostr</a> surge como una alternativa ideal, ya que permite que un sistema de intercambio como Mostro funcione sin riesgo de censura por parte de entidades poderosas, garantizando así mayor privacidad y seguridad para los usuarios.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="qué-necesito-para-usar-mostro"><a class="header" href="#qué-necesito-para-usar-mostro">¿Qué necesito para usar Mostro?</a></h1>
<p>Para utilizar Mostro, solo necesitas una billetera compatible con Lightning Network.</p>
<p>No tienes que ser un experto en <a href="https://nostr.com/">Nostr</a>. Si lo eres, ¡genial! Pero si no, podrás utilizar Mostro sin problemas, ya que está diseñado para ser sencillo e intuitivo para todos los usuarios.</p>
<p>Para realizar intercambios de bitcoin, utilizarás un <a href="./clients.html">cliente de Mostro</a>. Aunque cada cliente tiene sus propias características, en la mayoría de ellos no necesitarás tener una clave privada de Nostr previamente creada. Para garantizar la seguridad y <a href="./privacy.html">privacidad</a> de tus transacciones, el cliente debería generar automáticamente una nueva clave privada cada vez que realices un intercambio de bitcoin, sin necesidad de configuraciones ni intervenciones adicionales de tu parte.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="debo-registrarme-o-hacer-kyc"><a class="header" href="#debo-registrarme-o-hacer-kyc">¿Debo registrarme o hacer KYC?</a></h1>
<p>¡NO! Bitcoin nació como "un sistema de dinero electrónico persona a persona" y nos enorgullece apoyar ese principio. Ninguno de tus datos personales es requerido. Además, las instancias de Mostro no tienen acceso a las conversaciones entre usuarios, por lo que no es posible recopilar información personal de ningún tipo. Puedes encontrar más información sobre cómo se protege tu privacidad en Mostro <a href="./privacy.html">aquí</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="cómo-funciona-mostro"><a class="header" href="#cómo-funciona-mostro">¿Cómo funciona Mostro?</a></h1>
<p>Para entender el funcionamiento de Mostro, es importante conocer las partes que lo componen:</p>
<ul>
<li>
<p><a href="https://github.com/MostroP2P/mostro">Mostro daemon (Mostrod)</a>: Gestiona la comunicación entre los usuarios y el nodo de Lightning Network (LN). Publica los eventos de Nostr, ejecuta las acciones enviadas por los usuarios y les indica cómo proceder con el intercambio.</p>
</li>
<li>
<p>Nodo de Lightning Network asociado a la instancia de Mostrod: Crea y gestiona las <a href="./hold-invoice.html">hold invoices</a> que los vendedores deben pagar y efectúa los pagos de las invoices generadas por los compradores.</p>
</li>
<li>
<p><a href="./clients.html">Clientes de Mostro</a>: Son las aplicaciones con las que interactúan directamente los usuarios. Proporcionan la interfaz de comunicación entre Mostrod y los usuarios. Los clientes envían a Mostrod las acciones realizadas por los usuarios, como por ejemplo crear una orden, abrir una disputa, liberar sats, entre otras. Además, son responsables de generar y manejar las claves privadas de los usuarios.</p>
</li>
</ul>
<p>En el siguiente gráfico puedes ver un resumen de cómo interactúan Mostrod, el vendedor (mediante un cliente de Mostro) y el nodo de LN:<br />
<img src="./assets/images/order-flow.png" alt="order-flow" /></p>
<h2 id="flujo-de-una-venta-de-bitcoin-en-mostro"><a class="header" href="#flujo-de-una-venta-de-bitcoin-en-mostro">Flujo de una venta de bitcoin en Mostro</a></h2>
<ul>
<li><strong>Vendedor:</strong> Alice</li>
<li><strong>Comprador:</strong> Bob</li>
</ul>
<ol>
<li>
<p><strong>Publicación de la orden:</strong><br />
Alice accede a un <a href="./clients.html">Cliente de Mostro</a> y decide publicar una orden de venta de 5000 Sats por 3 USD, para recibir el pago en su tarjeta XYZ. La interfaz para crear la orden dependerá del <a href="./clients.html">cliente</a> que use. La orden se publica en un libro de órdenes al que se puede acceder desde cualquier cliente de Mostro. Si en <a href="times.html">24 horas</a> otro usuario no toma la orden, esta será eliminada automáticamente.</p>
</li>
<li>
<p><strong>Toma de la orden por el comprador:</strong><br />
Bob, interesado en comprar Sats, accede a un <a href="./clients.html">Cliente de Mostro</a> (no necesariamente el mismo que utilizó Alice). Encuentra la oferta de 5000 sats por 3 USD y decide tomarla. Entonces, se le solicita que proporcione una invoice por 5000 sats antes de <a href="times.html">15 minutos</a>. Bob genera la invoice en su cartera LN y la envía a Mostro, quien le indica que espere <a href="times.html">15 minutos</a> mientras su contraparte responde.</p>
</li>
<li>
<p><strong>Pago y comunicación entre las partes:</strong><br />
Alice recibe un mensaje de Mostro notificando que alguien ha tomado su oferta y que debe pagar una <a href="./hold-invoice.html">hold invoice</a> por 5000 sats antes de <a href="times.html">15 minutos</a>. Si no realiza el pago, la orden será cancelada. Una vez que Alice paga la factura, Mostro revela la clave pública de Bob a Alice y viceversa, permitiéndoles abrir un chat privado. En este punto, Alice le debe proporcionar a Bob el número de su tarjeta XYZ para recibir el pago en fiat. Cuando Bob le envía los 3 USD, presiona el botón <em>fiat sent</em> en su cliente de Mostro. Alice recibe una notificación para verificar la recepción del fiat y luego liberar los Sats a Bob.</p>
</li>
<li>
<p><strong>Liberación de los Sats:</strong><br />
Cuando Alice verifica que recibió los 3 USD, presiona el botón <em>release</em> en su cliente de Mostro. Luego Mostro cobrará los 5000 Sats de la wallet de Alice, y pagará la factura de Bob. Finalmente, Mostro le pedirá a cada uno que califique a su contraparte.</p>
</li>
</ol>
<p>Cuando Mostro pone en contacto a los dos usuarios, el tiempo que tienen para finalizar el intercambio está limitado por la duración de la <a href="./hold-invoice.html">hold invoice</a> que proporciona la instancia de Mostro que estén usando, los usuarios deben respetar ese plazo, para más información al respecto consulta <a href="times.html">aquí</a>.</p>
<p>Si durante el proceso, Alice y Bob deciden no continuar con el intercambio, pueden <a href="./cancelling-an-order.html">cancelar</a> la orden de forma cooperativa. Si alguno intenta cancelar arbitrariamente o estafar a la contraparte, el otro puede abrir una <a href="./disputes.html">disputa</a>.</p>
<blockquote>
<p><strong>Nota:</strong> En este ejemplo, se asume que las tarifas de Mostro son 0. Para más información sobre las tarifas, consulta <a href="./fees-and-limits.html">Tarifas y Límites de Intercambios</a>.</p>
</blockquote>
<h3 id="explicación-técnica"><a class="header" href="#explicación-técnica">Explicación técnica</a></h3>
<ol>
<li>
<p><strong>Creación de la orden por parte de Alice:</strong><br />
Cuando Alice crea la oferta de venta, su cliente de Mostro debería generar automáticamente una nueva clave privada de Nostr que Alice usará solo para dicha orden (siempre deben generar una nueva clave privada para cada orden para proteger la <a href="./privacy.html">privacidad</a> de los usuarios). Usando esa clave, Alice envía a Mostrod un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> con los detalles de la orden. Luego, Mostrod publica un <a href="https://github.com/nostr-protocol/nips/blob/master/01.md#kinds">eventos direccionables</a> de tipo 38383, con los detalles de la orden y su estado: <code>pending</code>. Los clientes de Mostro monitorean estos eventos y muestran en sus libros de órdenes aquellas órdenes con estado <code>pending</code>.</p>
</li>
<li>
<p><strong>Toma de la orden por Bob:</strong><br />
Cuando Bob toma la orden, su cliente de Mostro debe generarle automáticamente una nueva clave privada de Nostr para esta orden, luego envía un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> a Mostrod indicando que ha tomado esa oferta. Mostrod publica un nuevo evento 38383 para esa orden, esta vez con el estado <code>waiting-buyer-invoice</code> lo que elimina la orden de los libros de ofertas de todos los clientes, ya que no está <code>pending</code>. Mostrod le envía a Bob un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> solicitando una invoice por 5000 Sats. Bob envía la invoice a Mostrod en un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> y luego Mostrod publicará un evento 38383 para esa orden, esta vez con el estado <code>waiting-payment</code>.</p>
</li>
<li>
<p><strong>Pago de la hold invoice por Alice:</strong><br />
Mostrod envía a Alice un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> con la <a href="./hold-invoice.html">hold invoice</a> generada por el nodo LN asociado. Si Alice paga dentro de los 15 minutos, Mostro le envía un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> revelando la pubkey de Bob, y otro mensaje a Bob revelando la pubkey de Alice. Además, actualiza el evento 38383 para esta orden con el estado <code>active</code>. Ahora, Alice y Bob pueden comunicarse directamente a través de mensajes cifrados con el algoritmo <a href="https://github.com/nostr-protocol/nips/blob/master/44.md">NIP-44</a>, Mostrod no recibe ninguno de esos mensajes. Cuando Bob realiza el pago del fiat y presiona <em>fiat sent</em> en su cliente, envía un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> con la acción <code>fiat-sent</code> a Mostrod, quien a su vez le enviará un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> a Alice con esa misma acción y su cliente le mostrará un botón de <em>release</em> para liberar los Sats si ya recibió el pago. Mostrod también publicará un evento 38383 para esa orden, esta vez con el estado <code>fiat-sent</code>.</p>
</li>
<li>
<p><strong>Liberación de los Sats por Alice:</strong><br />
Cuando Alice presiona el botón <em>release</em> en su cliente, le envía un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> a Mostrod indicando que libere los Sats a Bob. Entonces, el nodo de LN asociado a esa instancia de Mostrod liquida el pago de la <a href="./hold-invoice.html">hold invoice</a> y paga la invoice que proporcionó Bob. Al finalizar el proceso, Mostrod publica un evento 38383 para esa orden con el estado <code>success</code> y le envía un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> a Alice y Bob, solicitando que califiquen a su contraparte, quienes le envían de vuelta su calificación a través de un mensaje <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a>.</p>
</li>
</ol>
<p>Para tener más detalles de la comunicación entre Mostrod y sus clientes, puedes leer <a href="https://mostro.network/messages">aquí</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="monedas-y-métodos-de-pago-aceptados"><a class="header" href="#monedas-y-métodos-de-pago-aceptados">Monedas y Métodos de pago aceptados</a></h1>
<p>Al Mostro ser un intercambio peer-to-peer (P2P), técnicamente está disponible para cualquier persona que desee usarlo, siempre y cuando exista una contraparte interesada en realizar el intercambio. Puedes publicar o tomar ofertas en cualquier moneda y con cualquier método de pago.</p>
<p>Mostro toma como referencia el precio de las monedas en <a href="https://yadio.io/">yadio.io</a>, lo que permite el intercambio de más de 90 monedas listadas en esa plataforma. Si tu moneda no aparece en <a href="https://yadio.io/">yadio.io</a>, puedes solicitarles que la agreguen. Sin embargo, si esto no es posible, aún podrás usar Mostro para intercambiar bitcoin; solo necesitarás crear una orden estableciendo una cantidad fija de Sats a cambio de una cantidad fija de tu moneda.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="tarifas-y-límites-de-intercambios"><a class="header" href="#tarifas-y-límites-de-intercambios">Tarifas y Límites de Intercambios</a></h1>
<p>Cada operador de una instancia de Mostro puede establecer sus propias tarifas (fees) y límites por operación, lo que fomenta la competencia entre Mostros y permite a los usuarios seleccionar el que mejor se ajuste a sus necesidades.</p>
<p>El nodo de Mostro actualmente activo en mainnet (<code>npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0</code>), cobra un fee del 0.3% tanto al comprador como al vendedor por cada transacción. Además permite intercambios que van desde 100 Sats hasta 20000 Sats por operación.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="puedo-cancelar-una-orden"><a class="header" href="#puedo-cancelar-una-orden">¿Puedo cancelar una orden?</a></h1>
<p>Si creaste una orden y aún no ha sido tomada, puedes cancelarla sin problema.</p>
<p>Si la orden ya fue tomada, o si has tomado una orden y decides no continuar, deberás iniciar una cancelación cooperativa con tu contraparte. Si ambos están de acuerdo, Mostro cancelará la <a href="./hold-invoice.html">hold invoice</a> pagada por el vendedor, y los sats serán devueltos a este.</p>
<p>En caso de que tu contraparte no quiera cancelar, puedes iniciar una <a href="./disputes.html">disputa</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="hold-invoices-seguridad-de-los-intercambios-en-mostro"><a class="header" href="#hold-invoices-seguridad-de-los-intercambios-en-mostro">Hold Invoices: Seguridad de los Intercambios en Mostro</a></h1>
<p>Mostro utiliza hold invoices como mecanismo de escrow para asegurar los fondos de una operación, protegiendo al comprador contra posibles fraudes o impagos. A su vez, garantiza la seguridad del vendedor al no custodiar sus fondos directamente.</p>
<p>Para vender Sats a través de Mostro deberás pagar una hold invoice que este te proporcionará. Las hold invoices, o facturas retenidas, son un tipo de factura de Lightning Network que permiten el "bloqueo" en tu billetera de los Sats que vas a vender, pero que no se liquide el pago hasta que finalice la operación con tu contraparte. Dependiendo de la wallet que utilices, podrías ver tu pago como “en espera”, “congelado”, “en tránsito” o “pendiente”.</p>
<p>Una vez que el vendedor de Sats le indique a Mostro que ha recibido el fiat, se liquida automáticamente el pago de la hold invoice: los Sats se "desbloquean" y son cobrados por el nodo de Lightning Network del Mostro utilizado para el intercambio. Luego, se descontará el <a href="./fees-and-limits.html">fee</a> correspondiente y se intentará pagar de inmediato la factura proporcionada por el comprador. Si el pago falla, Mostro solicitará una nueva factura al comprador y repetirá el proceso hasta que el pago se complete exitosamente.</p>
<p>Mostro minimiza el tiempo de custodia los fondos de los usuarios, limitándolo únicamente al periodo desde que se cobra la hold invoice al vendedor hasta que se paga al comprador, un proceso que puede tomar solo unos segundos.</p>
<p>El pago de la hold invoice también puede liquidarse si los usuarios entran en una <a href="./disputes.html">disputa</a> y el administrador determina que los Sats deben ser transferidos al comprador. Por el contrario, si el administrador determina que la orden debe ser cancelada, el pago de la hold invoice se cancelará y los Sats se “desbloquearán” en la wallet del vendedor, sin haber salido nunca de ella. Esto también ocurrirá si se realiza una <a href="./cancelling-an-order.html">cancelación</a> cooperativa, o si se excede el tiempo de validez de la hold invoice, que es limitado.</p>
<p>Las hold invoices generadas por el nodo de Lightning Network del Mostro actualmente activo en mainnet (<code>npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0</code>) tienen un tiempo de validez aproximado de 24 horas.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="tiempo-de-intercambio"><a class="header" href="#tiempo-de-intercambio">Tiempo de Intercambio</a></h1>
<p>Mostro está diseñado para que los intercambios de bitcoin por monedas fiat sean rápidos, por lo que se recomienda utilizar métodos de pago fiat instantáneos.</p>
<p>Cada operador de una instancia de Mostro puede establecer sus plazos de tiempo para cada etapa del intercambio, lo que fomenta la competencia entre Mostros y permite a los usuarios seleccionar el que mejor se ajuste a sus necesidades.</p>
<p>A continuación, se detallan los diferentes plazos de la instancia de Mostro actualmente activa en mainnet (<code>npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0</code>). A medida que existan más instancias de Mostro, esta información deberá ser accesible a los usuarios para que puedan elegir la que prefieran.</p>
<p>Al publicar una oferta, esta permanece en el libro de órdenes hasta <em>23 horas</em>. Si nadie la toma durante ese tiempo, se eliminará automáticamente.</p>
<p>Una vez que alguien toma una oferta tiene hasta <em>15 minutos</em> para pagar la hold invoice si es el vendedor, o proporcionar una invoice si es el comprador. Si no cumple con su parte en ese tiempo, la orden se volverá a publicar automáticamente. Pero si cumple, luego la contraparte tendrá hasta <em>15 minutos</em> para para completar su acción correspondiente (pagar la hold invoice o proporcionar una factura, según su rol en el intercambio) si este no lo hace, la orden será cancelada y no se republicará.</p>
<p>Después de que el vendedor paga la hold invoice y el comprador proporciona su factura, tienen de tiempo para concretar el intercambio hasta que expire la <a href="./hold-invoice.html">hold invoice</a> que Mostro le proporcionó al vendedor. En la instancia de Mostro <code>npub1ykvsmrmw2hk7jgxgy64zr8tfkx4nnjhq9eyfxdlg3caha3ph0skq6jr3z0</code> este plazo es de <em>24 horas</em> aproximadamente. Durante este tiempo, el comprador debe enviar el pago en fiat y el vendedor liberar los Sats al confirmar la recepción del fiat. Si se excede ese plazo, la orden expirará y los Sats serán devueltos a la wallet de origen sin que Mostro pueda hacer nada al respecto. Por esta razón, se recomienda utilizar únicamente métodos de pago fiat instantáneos.</p>
<p>Dentro de este período de validez, los usuarios pueden finalizar satisfactoriamente el intercambio, <a href="./cancelling-an-order.html">cancelarlo</a> cooperativamene, o abrir una <a href="./disputes.html">disputa</a>. Luego de que la <a href="./hold-invoice.html">hold invoice</a> expire, Mostro no tiene capacidad de intervenir en esa orden.</p>
<p>Si ambos participantes de una operación están en línea y utilzan métodos de pago del fiat inmediatos, las transacciones pueden completarse de forma casi instantánea.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="sistema-de-reputación"><a class="header" href="#sistema-de-reputación">Sistema de Reputación</a></h1>
<p>Al completar exitosamente una compra o venta de Sats, Mostro te pedirá que califiques a tu contraparte, y tu contraparte también te evaluará a ti. El sistema de reputación utiliza una puntuación de 5 estrellas, donde 1 estrella representa la calificación más baja y 5 estrellas la más alta, permitiéndote valorar la experiencia de la transacción.</p>
<p>La reputación en Mostro se calcula de manera iterativa, combinando la media y la desviación estándar de las calificaciones y operaciones exitosas. Esto significa que, durante tus primeras transacciones, incluso si recibes calificaciones máximas, tu reputación inicial no será muy alta, sino que aumentará progresivamente a medida que acumules más operaciones exitosas con buenas evaluaciones.<br />
Ese cálculo está basado en: <a href="https://math.stackexchange.com/questions/2148877/iterative-calculation-of-mean-and-standard-deviation">https://math.stackexchange.com/questions/2148877/iterative-calculation-of-mean-and-standard-deviation</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="gestión-de-disputas"><a class="header" href="#gestión-de-disputas">Gestión de Disputas</a></h1>
<p>Si tu contraparte no responde, sospechas de un intento de estafa, o surge un malentendido que no logran resolver, puedes iniciar una disputa.</p>
<p>Cuando inicies una disputa, serás atendido por el administrador de la instancia de Mostro que estés utilizando, o por una persona designada por dicho administrador (solver). Al abrir la disputa, Mostro te proporcionará un número de token único, y tu contraparte recibirá uno diferente. Ambos tokens serán revelados al administrador que gestione la disputa. Cuando el administrador se ponga en contacto contigo y con tu contraparte, te dirá cuál es tu token, lo que te permitirá verificar que es la persona designada y asegurarte de que no se trata de un impostor.</p>
<p>No hay un método estándar para resolver disputas en todas las instancias de Mostro. Cada administrador puede decidir cómo gestionar las disputas generadas en su instancia y qué pruebas solicitar a los usuarios para tomar la decisión más adecuada.</p>
<p>Cuando el administrador decida qué usuario tiene la razón, hará que Mostro libere los Sats al usuario que corresponde. Los administradores no cobran ningún fee extra por resolver disputas.</p>
<p>Es importante tener en cuenta que las disputas no se abren automáticamente en ningún caso. Los usuarios involucrados deben iniciarlas antes de que expire la <a href="./hold-invoice.html">hold invoice</a> que el vendedor ha pagado, de forma que el administrador tenga tiempo suficiente para solicitar pruebas a ambas partes y tomar una decisión adecuada, ya que el tiempo sigue corriendo desde que se aceptó la orden y no se detiene por abrir una disputa. El administrador debe resolverla antes de que el tiempo expire, los usuarios no deben esperar demasiado tiempo para iniciarla. Puedes leer más sobre los plazos de tiempo <a href="./times.html">aquí</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="privacidad-en-mostro"><a class="header" href="#privacidad-en-mostro">Privacidad en Mostro</a></h1>
<p>La comunicación entre Mostrod y los usuarios se realiza través de los <a href="./clients.html">clientes de Mostro</a> mediante mensajes <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a>. Estos mensajes tienen su contenido y la clave pública del emisor cifrados y "envueltos" por una clave efímera, lo que evita que se revele públicamente la identidad de quien interactúa con Mostro. Para aumentar la privacidad, los <a href="./clients.html">clientes de Mostro</a> deben generar automáticamente una nueva clave privada a los usuarios para cada orden que tomen o creen. Así, cuando Mostro envíe mensajes <a href="https://github.com/nostr-protocol/nips/blob/master/59.md">NIP-59</a> a los usuarios, el evento generado mostrará una clave pública que será usada únicamente para esa operación, garantizando una nueva identidad para cada intercambio e impidiendo que las transacciones de compra y venta puedan ser asociadas a una sola persona.</p>
<p>Los <a href="./clients.html">clientes de Mostro</a> no compartirán las claves privadas de los usuarios con una instancia de Mostro, y por consiguiente con su administrador, en ningún caso.</p>
<p>La comunicación entre el comprador y el vendedor durante una operación, se realiza de cliente a cliente, mediante mensajes cifrados con el algoritmo <a href="https://github.com/nostr-protocol/nips/blob/master/44.md">NIP-44</a> que, aunque revela las claves públicas que se están comunicando, en cada operación los usuarios siempre deben usar una nueva identidad de Nostr, lo que garantiza su privacidad. Además, estos mensajes no se envían a Mostrod, por lo que no tiene acceso ni recopila información personal de los usuarios.</p>
<p>Además, <a href="https://github.com/nostr-protocol/nips/blob/master/44.md">NIP-44</a> permite que el cliente cree una <em>conversation key</em> asociada al par de claves de los dos usuarios involucrados en una operación y a la que solo ellos tienen acceso. Dicha <em>conversation key</em> tiene una copia de la conversación entre ambos usuarios, y en caso de <a href="./disputes.html">disputa</a>, si los usuarios lo desean pueden entregársela al administrador que los atienda, como evidencia de los hechos.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="soporte-y-contacto"><a class="header" href="#soporte-y-contacto">Soporte y Contacto</a></h1>
<p>Mostro no es una empresa, sino un proyecto Open Source, mantenido por su comunidad, por ello no cuenta con un departamento de soporte técnico, aunque sí hay una comunidad a la que puedes acudir en caso de que lo necesites.</p>
<p>Si tienes alguna duda puedes preguntar en los grupos de Telegram:</p>
<ul>
<li>Mostro community: <a href="https://t.me/MostroP2P">https://t.me/MostroP2P</a></li>
<li>Mostro devs: <a href="https://t.me/mostro_dev">https://t.me/mostro_dev</a></li>
</ul>
<p>También tenemos un <a href="https://www.nostrchat.io/channel/30d1992102c567d143a3df32ca985a16e9d8576e947e687b757848aeca5d9a7b">grupo en Nostr</a>.</p>
<p>Además puedes seguirnos en X: <a href="https://twitter.com/MostroP2P">https://twitter.com/MostroP2P</a>.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="cómo-contribuir"><a class="header" href="#cómo-contribuir">Cómo Contribuir</a></h1>
<p>¡Gracias por tu interés en contribuir a Mostro!<br />
Mostro no es una empresa, sino un proyecto Open Source, impulsado y mantenido por su comunidad, por lo que cualquier tipo de contribución es valiosa y útil para los usuarios.</p>
<p>Si bien te sugerimos algunas áreas donde puedes colaborar, siéntete libre de proponer cualquier mejora que creas que pueda beneficiar al proyecto:</p>
<ul>
<li><strong>Documentación:</strong> Ayuda a mejorar la documentación para que más personas puedan entender qué es Mostro y cómo utilizarlo.</li>
<li><strong>Traducciones:</strong> Si eres multilingüe puedes traducir los <a href="./clients.html">clientes</a> de Mostro o contribuir a la documentación en otros idiomas.</li>
<li><strong>Desarrollo:</strong> en el <a href="https://github.com/MostroP2P">proyecto de Mostro</a> puedes encontrar varios repositorios y lenguajes de programación. Si no sabes por dónde empezar, revisa las listas de "buenos primeros problemas" para involucrarte.</li>
<li><strong>Reporte de errores:</strong> Si detectas algún fallo o comportamiento inesperado, reportarlo es de gran ayuda. Esto contribuye a mejorar la estabilidad y calidad del proyecto.</li>
<li><strong>Propuestas de mejoras:</strong> Si tienes ideas para mejorar Mostro, te invitamos a compartirlas. Muchas características clave han surgido gracias a sugerencias de la comunidad. Puedes proponer tus ideas en los <a href="./support-and-contacts.html">grupos de soporte</a>, o abrir un issue en el <a href="https://github.com/MostroP2P">repositorio correspondiente</a>, si crees que va a generar gran debate, entonces abre una discusion en dicho repositorio.</li>
<li><strong>Creación de contenido:</strong> Si tienes habilidades en la creación de contenido, puedes hacer video-tutoriales o guías escritas para ayudar a los usuarios a sacar el máximo provecho a Mostro.</li>
<li><strong>Difusión en redes sociales:</strong> Compartir información sobre Mostro en redes sociales ayuda a aumentar su visibilidad y atraer a más personas interesadas en contribuir o utilizarlo.</li>
<li><strong>Donaciones:</strong> Si prefieres apoyar financieramente el desarrollo y mantenimiento de Mostro, puedes hacer una donación a <code>[email protected]</code>.</li>
</ul>
<p>¡Muchas gracias por tu apoyo!</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="clientes-cómo-uso-mostro"><a class="header" href="#clientes-cómo-uso-mostro">Clientes. Cómo uso Mostro</a></h1>
<p>Para utilizar Mostro, es necesario acceder a través de un cliente específico. A continuación, abordaremos varios de ellos, los cuales te permitirán interactuar tanto con Mostrod como con tu contraparte en una operación.</p>
<p>Los clientes de Mostro disponibles hasta el momento son:</p>
<ul>
<li><strong><a href="./mostro-web.html">Mostro web</a></strong> (operativo): cliente con interfaz web.</li>
<li><strong><a href="./mostro-cli.html">Mostro-cli</a></strong> (operativo): cliente desde línea de comandos.</li>
<li><strong><a href="./mostrui.html">Mostrui</a></strong> (en desarrollo): cliente con interfaz TUI, que funciona en la terminal con una apariencia mejorada.</li>
<li><strong><a href="./mostro-mobile.html">Mostro mobile</a></strong> (en desarrollo): aplicación móvil.</li>
</ul>
<p>Cada cliente tiene características particulares, por lo que los usuarios pueden elegir cuál utilizar según sus intereses y cambiar entre ellos cuando lo consideren conveniente. Los clientes son los encargados de crear, almacenar y gestionar las claves de Nostr de sus usuarios. Para conocer cómo los clientes manejan la privacidad de los usuarios lee <a href="./privacy.html">aquí</a>.</p>
<p>Aunque algunos clientes ya están en funcionamiento, se encuentran en constante desarrollo, con la implementación de nuevas funciones, mejoras de UX, correción de errores, etc. Es posible que encuentres bugs; si esto sucede, por favor repórtalos, tu feedback es muy importante.</p>
<p><strong>Nota:</strong> Dos usuarios que utilicen diferentes clientes de Mostro pueden realizar un intercambio de Sats; sin embargo, para la comunicación directa entre ellos deben tene en cuenta qué tipo de mensajes aceptan sus respectivos clientes. Para ese tipo de comunicación, todos los clientes de Mostro deben utilizar mensajes cifrados con el algoritmo <a href="https://github.com/nostr-protocol/nips/blob/master/44.md">NIP-44</a>, pero si un cliente aun no lo ha implementado, sus usuarios no podrán visualizar mensajes enviados desde un cliente que sí lo tenga implementado. De forma similar pudiera ocurrir con otras funcionalidades, los desarrolladores de cada clientes hacen su mayor esfuerzo por actualizarlos lo antes posible.</p>
<p>Mostro es un proyecto FOSS, por lo que cualquier persona interesada puede crear un cliente para interactuar con este. Te invitamos a desarrollar tu propio cliente o a colaborar en el desarrollo de los ya existentes para mejorar la experiencia de los intercambios de Bitcoin P2P sin KYC en Nostr!</p>
<p>Para conocer más detalles sobre ellos continúa leyendo esta documentación.</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="mostro-web"><a class="header" href="#mostro-web">Mostro-web</a></h1>
<p>Mostro-web es un cliente de Mostro con interfaz web al que puedes acceder a través de: <a href="https://app.mostro.network">https://app.mostro.network</a> y por <a href="https://mostro.bilthon.dev">https://mostro.bilthon.dev</a>.</p>
<p><img src="./assets/images/mostro-web.png" alt="mostro-web" /></p>
<p>La interfaz es muy intuitiva, por lo que si no eres un usuario técnico, actualmente esta es la mejor manera de interactuar con Mostro.
Es compatible con extensiones de navegador que admiten el estándar NIP-07, pero también puedes generar claves nuevas cada vez que lo desees.</p>
<p><strong>Tip:</strong> Si lo usas desde un dispositivo móvil, te recomendamos activar el modo de escritorio en tu navegador para mejorar la experiencia de usuario, especialmente al visualizar los botones de acción.</p>
<p>Mostro-web es un proyecto FOSS, puedes visitar su <a href="https://github.com/MostroP2P/mostro-web">repositorio en Github</a> para conocer más sobre su desarrollo, reportar bugs, o proponer mejoras. ¡Las colaboraciones son bienvenidas!</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="mostro-cli"><a class="header" href="#mostro-cli">Mostro-cli</a></h1>
<p>Mostro-cli es un cliente de Mostro con interfaz de línea de comandos, es utilizado mayormente por desarrolladores y usuarios avanzados para probar las últimas funcionalidades de Mostrod.</p>
<p><img src="./assets/images/mostro-cli.png" alt="mostro-cli" /></p>
<p>Mostro-cli es un proyecto FOSS, puedes visitar su <a href="https://github.com/MostroP2P/mostro-cli">repositorio en GitHub</a> para conocer más sobre su desarrollo, reportar bugs, o proponer mejoras. ¡Las colaboraciones son bienvenidas!</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="mostrui"><a class="header" href="#mostrui">Mostrui</a></h1>
<p>Mostrui es un cliente de Mostro con interfaz TUI (Terminal User Interface) que ofrece una experiencia mejorada en la terminal. Aún está en desarrollo, avanza rápidamente para brindar a los usuarios una experiencia amigable e intuitiva sin la necesidad escribir comandos, lo que lo convertirá en una opción ideal tanto para usuarios avanzados como principiantes.</p>
<p><img src="./assets/images/mostrui.png" alt="mostrui" /></p>
<p>Mostrui es un proyecto FOSS, puedes visitar su <a href="https://github.com/MostroP2P/mostrui">repositorio</a> para conocer más sobre su desarrollo, reportar bugs, o proponer mejoras. ¡Las colaboraciones son bienvenidas!</p>
<div style="break-before: page; page-break-before: always;"></div><h1 id="mostro-mobile"><a class="header" href="#mostro-mobile">Mostro mobile</a></h1>
<p>Mostro Mobile es un cliente móvil de Mostro, actualmente en desarrollo. Su objetivo es ofrecer una interfaz muy intuitiva, pensada para todo tipo de usuario, con un enfoque especial en aquellos con menos conocimientos técnicos. La aplicación está diseñada para que cualquiera pueda comprar y vender bitcoin P2P sin KYC, sin siquiera darse cuenta de que está utilizando Nostr. ¡La idea es que hasta las abuelas puedan usarlo!</p>
<p><img src="./assets/images/mostro-mobile.png" alt="mostro-mobile" /></p>
<p>Mostro mobile es un proyecto FOSS, puedes visitar su <a href="https://github.com/MostroP2P/mobile">repositorio</a> para conocer más sobre su desarrollo, reportar bugs, o proponer mejoras. ¡Las colaboraciones son bienvenidas!</p>
</main>
<nav class="nav-wrapper" aria-label="Page navigation">
<!-- Mobile navigation buttons -->
<div style="clear: both"></div>
</nav>
</div>
</div>
<nav class="nav-wide-wrapper" aria-label="Page navigation">
</nav>
</div>
<script>
window.playground_copyable = true;
</script>
<script src="elasticlunr.min.js"></script>
<script src="mark.min.js"></script>
<script src="searcher.js"></script>
<script src="clipboard.min.js"></script>
<script src="highlight.js"></script>
<script src="book.js"></script>
<!-- Custom JS scripts -->
<script>
window.addEventListener('load', function() {
window.setTimeout(window.print, 100);
});
</script>
</div>
</body>
</html>