@lnp2pBot

En este sitio encontrarás información sobre @lnp2pBot. Este es un bot de Telegram para comprar y vender bitcoin en Lightning Network, de forma p2p, con tu moneda local y sin hacer KYC o entregar datos personales.

Guía de inicio rápido

  1. Descarga una wallet compatible con Lightning Network (Wallets recomendadas).

  2. Obtén un usuario de Telegram.

  3. Inicia @lnp2pBot.

    Iniciando el bot

  4. Encuentra ofertas de compra o venta de Sats en:

  1. Cuando tomes una oferta @lnp2pBot te guiará paso a paso en el proceso de compra/venta.

  2. Si no encuentras una oferta que te convenga, crea una tú y espera a que alguien la tome. Escribe en @lnp2pBot /buy para comprar Sats, o /sell para vender Sats, de acuerdo a lo que quieras hacer y este te guiará en el proceso. Si quieres que tu oferta se publique en una comunidad en específico, y no en el canal general de ofertas, debes configurar una comunidad por defecto.

  3. Comienza a comprar y vender.

  4. Encuentra respuestas a tus dudas en la sección FAQ.

Recomendaciones

FAQ

Aquí respondemos las preguntas frecuentes hechas por nuestros usuarios.

¿Qué es @lnp2pBot?

Lnp2pBot es un sistema de intercambio de bitcoin por moneda local, que permite realizar transacciones persona a persona de forma fácil y segura utilizando Lightning Network. Es un bot de Telegram que se puede usar de forma pseudónima, sin registro de usuario ni verificación de identidad. Es una herramienta que solo custodia los satoshis (unidad mínima de bitcoin) el tiempo mínimamente necesario, lo que brinda mayor seguridad a sus usuarios respecto a servicios de intercambio que tienen wallets internas y custodia total de los fondos. Lnp2pBot es una aplicación de código abierto por lo que se puede auditar, replicar, modificar y redistribuir con libertad. Ir a @lnp2pBot

¿Qué es Lightning Network?

Ligthning Network es una red de canales de pago que funciona como protocolo de segunda capa sobre la red Bitcoin, aprovechando la propiedad de escribir contratos inteligentes en su blockchain. Es una solución de escalabilidad que permite incrementar exponencialmente el número de transacciones y la velocidad de las mismas al no necesitar confirmaciones on-chain. Esto permite a su vez reducir drásticamente las comisiones de red. Los pagos se vuelven instantáneos y de costo casi nulo.

¿Qué necesito para usar @lnp2pBot?

Solo necesitas una cuenta en Telegram con el "username" o nombre de usuario activado para inicializar el bot e interactuar con él; y una wallet o monedero que soporte Ligthning Network. Aquí te dejamos algunas wallets recomendadas.

¿Cómo inicializo el bot?

Abre el chat privado con @lnp2pBot y haz clik en "INICIAR", o ejecuta el comando /start.

  • Si no inicializas el bot primero, no podrás tomar ninguna orden desde los canales donde son publicadas.

¿Cuáles son los canales para realizar intercambios en Telegram?

Para crear tus órdenes de Compra / Venta de bitcoin usa el chat con @lnp2pbot.

Las ofertas creadas con @lnp2pBot son publicadas en canales de Telegram desde donde se pueden tomar al pulsar el botón de Comprar Satoshis o Vender Satoshis que aparece debajo de cada una.

Existe un canal general @p2plightning donde están las ofertas que no pertenecen a ninguna comunidad por lo que hay de varias modenas fíat, y además canales asociados a comunidades donde solo se publican ofertas con las monedas fíat que se permitan en dichas comunidades.

¿Dónde puedo encontrar ofertas en mi moneda local?

Puedes preguntarle al bot ejecutando el comando /findcomms junto con el código de tu moneda.

Por ejemplo, para ver las comunidades en bolívares venezolanos debes escribir:

/findcomms ves

También puedes buscar ofertas filtradas por monedas y comunidades en https://market.lnp2pbot.com y en el canal general @p2plightning.

¿Necesito llenar algún registro de usuario o verificación de identidad?

¡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, los intercambios son totalmente entre pares y @lnp2pBot no recopila ni almacena ninguna información personal de las partes implicadas.

¿Qué tipo de información recopilan de cada usuario?

Para efectos del sistema de reputación de usuario, el bot recopila algunas estadísticas de tus intercambios. Específicamente, la cantidad de transacciones concretadas, el volumen total comerciado, la calificación de contraparte y el registro de disputas de exitir alguna. De esta información, solo son públicas por defecto la cantidad de transacciones y la calificación de contraparte. Es opcional mostrar tanto el volumen total comerciado como tu nombre de usuario ya que no se muestran por defecto (tú eliges mostrarlo o no).

En caso de que desees mostrar tu nombre de usuario y/o volumen comerciado para acompañar tu reputación en las ofertas que publicas, deberás hacerlo manualmente usando los siguientes comandos:

/showusername yes

/showvolume yes

Cada comando se envía como un mensaje directo al bot.

¿Cómo funciona el sistema de reputación de usuario?

Por cada transacción que realices se te pedirá calificar a tu contraparte, a la vez que esta te calificará a ti. Para ello, lnp2pBot cuenta con un sistema de puntuación de 5 estrellas que te permitirá valorar tu experiencia, donde 1 estrella es la menor calificación y 5 estrellas es la mayor.

Para obtener la reputación el bot realiza un cálculo iterativo de la media y la desviación estándar de las calificaciones y las operaciones exitosas, por lo que en las primeras operaciones, aunque te hayan calificado con el máximo, tu reputación no será alta sino que aumentará progresivamente a medida que vayas haciendo operaciones con buenas calificaciones.

Dicho cálculo lo puedes ver en: https://github.com/lnp2pBot/bot/blob/main/bot/commands.js#L279

Y está basado en: https://math.stackexchange.com/questions/2148877/iterative-calculation-of-mean-and-standard-deviation

Cuando crees una oferta, esta incluirá por defecto el número de operaciones exitosas que realizaste, las calificaciones recibidas de tus contrapartes, y el número de operaciones realizadas. Recomendamos tener en cuenta todos estos aspectos al tomar una oferta para evitar estafas.

Reputation System

¿Cómo creo una orden de venta?

Al chatear con @lnp2pBot encontrarás un botón de "Menú". Púlsalo para desplegar la lista de comandos que puedes usar. Selecciona el comando de venta: /sell, para activar el asistente (wizard) que te guiará por el proceso de vender.

Iniciar el asistente

Una vez activado, el asistente te pedirá que especifiques la moneda fíat en la que quieres transar:

Moneda Fiat

A continuación, deberás introducir el monto, en moneda fíat, que quieres a cambio de tus satoshis. Recuerda ingresar solo números en este paso, para que el asistente te pueda entender.

También puedes introducir un rango de cantidades a comprar, separando los números por un guion (-).

Monto Fiat

El bot te preguntará el monto, en satoshis, que quieres entregar. Aquí tienes la posibilidad de usar el botón "Precio del mercado". Si lo haces, se aplicará la tasa de Yadio.io.

Monto sats

Lo siguiente que te solicita el asistente es el porcentaje de prima o descuento que quieres en tu intercambio. Si quieres aumentar la tasa de mercado (prima), selecciona un número positivo; si quieres disminuirla (descuento), selecciona un número negativo. En caso de no querer ninguna, usa el botón "Sin prima ni descuento".

Prima o descuento

A continuación, deberás especificar el método de pago. En este campo puedes ponerte creativo y añadir emoticones o lo que consideres para hacer atractiva tu solicitud.

El bot procederá a publicar tu oferta en el canal general o el de la comunidad que hayas configurado como predeterminada. Permanecerá visible por 23 horas, si nadie la toma antes de ese tiempo.

Publicación canal

En cualquier momento puedes cancelar la oferta, siempre y cuando nadie la haya tomado, usando el comando /cancel seguido por el identificador de la orden. También puedes copiar el comando más el identificador en el chat con el bot.

Cancelar orden

El asistente te devolverá un mensaje confirmando la cancelación y se removerá tu oferta del canal de ofertas.

Orden cancelada

En caso de que tu venta sea tomada, el bot le pedirá a tu contraparte que entregue una factura Lightning Network.

Al mismo tiempo, te pedirá que pagues la factura en con el monto en satoshis correspondiente, más una comisión del 0,6%. Recuerda que la red puede cobrarte un monto adicional por el enrutamiento del pago. Esa cantidad dependerá de los nodos por los que pasará tu transacción y el estado de la red. El bot no tiene que ver nada con ese monto.

En este momento el bot pondrá en contacto a ambas partes para que discutan los detalles del intercambio.

Una vez que el bot recibe el aviso de que el monto en fíat fue pagado, te envía un alerta para que revises tu cuenta. Si todo está en orden, puedes liberar los satoshis con el comando /release seguido del identificador de transacción (o copia y pega el texto en el chat del bot) y se ejecutará la transacción.

El intercambio ha terminado. Ahora puedes calificar a tu contraparte.

Puedes salir del asistente en cualquier momento ejecutando el comando /exit.

Para ejecutar la misma orden de venta, sin usar el asistente, debes escribir tu orden con los detalles: /sell <monto en sats> <monto en fiat> <código fiat> <método de pago> [prima/descuento] (sin los caracteres especiales).

Ejemplo: /sell 100000 50 usd "banco xyz" Vendo cien mil sats a cincuenta dólares cobro por banco xyz

En caso de haber alguna variable no compatible, el bot te lo indicará durante el proceso de creación de la orden. Al completarla, la misma se publicará en el canal de intercambio y será visible por un período de 23 horas.

¿Cómo creo una orden de compra?

El procedimiento es exactamente el mismo que para la orden de venta. Solo que, que al pulsar el botón "Menú", debes seleccionar el comando /buy en lugar de /sell. Este activará el asistente (wizard) que te guiará por el proceso de comprar.

Una vez activado, el asistente te pedirá que especifiques la moneda fíat con la que quieres transar:

Moneda fíat

A continuación deberás introducir el monto, en moneda fíat, que quieres comprar. Recuerda ingresar solo números en este paso, para que el asistente te pueda entender.

También puedes introducir un rango de cantidades a comprar, separando los números por un guion (-).

Cantidad de fíat

El asistente te preguntará el monto, en satoshis, que quieres recibir. Aquí tienes la posibilidad de usar el botón "Precio del mercado". Si lo haces, se aplicará la tasa de Yadio.io.

Cantidad en satoshis

Lo siguiente que te solicita el asistente es el porcentaje de prima o descuento que quieres en tu intercambio. Si quieres aumentar la tasa de mercado (prima), selecciona un número positivo; si quieres disminuirla (descuento), selecciona un número negativo. En caso de no querer ninguna, usa el botón "Sin prima ni descuento".

Prima o descuento

A continuación, deberás especificar el método de pago. En este campo puedes ponerte creativo y añadir emoticones o lo que consideres para hacer atractiva tu oferta.

Método de pago

El bot procederá a publicar tu oferta en el canal general o el de la comunidad que hayas configurado como predeterminada. Permanecerá visible por 23 horas, si nadie la toma antes de ese tiempo.

Oferta publicada

En cualquier momento puedes cancelar la oferta, siempre y cuando nadie la haya tomado, usando el comando /cancel seguido por el identificador de la orden. También puedes copiar el comando más el identificador en el chat con el bot.

Cancelar orden

El asistente te devolverá un mensaje confirmando la cancelación y se removerá tu oferta del canal de ofertas.

Orden cancelada

En caso de que tu oferta sea tomada, el asistente te pedirá que entregues una factura en Lightning Network con el monto en satoshis correspondiente. Al mismo tiempo le pedirá a tu contraparte que pague la factura.

En este momento el bot pondrá en contacto a ambas partes para que discutan los detalles del intercambio.

Una vez que hayas hecho el pago en fíat, notifica al bot con el comando /fiatsent. El bot avisará a tu contraparte para que consulte y verifique la recepción del dinero, y proceda a liberar los satoshis. Recuerda que para recibirlos tu cartera deberá estar en línea.

El intercambio ha terminado. Ahora puedes calificar a tu contraparte.

Puedes salir del asistente en cualquier momento ejecutando el comando /exit.

Para ejecutar la misma orden de compra, sin usar el asistente, debes escribir tu orden con los detalles: /buy <código fiat> <método de pago> [prima/descuento] (sin los carácteres especiales).

Ejemplo: /buy 100000 50 usd "xyz bank"

Compro cien mil sats a cincuenta dólares pago por banco xyz

Algunos ejemplos de órdenes de compra serían los siguientes:

  • Ej. /buy 0 50 ves "banco xyz": Compro cincuenta bolívares en sats -en este caso el bot hará el cálculo a la tasa de mercado- pago por banco xyz
  • Ej. /buy 0 10-100 pen "pago móvil": Compro de 10 a 100 nuevos soles -en este caso el vendedor elegirá qué monto venderte en ese rango- pago por pago móvil
  • Ej. /buy 0 100 eur "pago móvil" -3: Compro 100 euros descontando 3% -en este caso el bot hará el cálculo a la tasa de mercado descontando o incrementando el porcentaje que elijas- pago por pago móvil

De haber alguna variable no compatible, el bot te lo indicará durante el proceso de creación de la orden. Al completarla, la misma se publicará automáticamente en el canal de intercambio y será visible por un período de 23 horas.

¿Cómo busco y acepto una oferta de compra o venta?

Si nunca antes has utilizado @lnp2pbot debes abrirlo y pulsar /start antes de poder tomar alguna oferta.

En https://market.lnp2pbot.com encontrarás publicadas todas las ofertas activas en el bot, incluidas las tuyas, allí podrás filtrar por fíat y comunidades.

En el canal de Telegram @p2plightning encontrarás las ofertas que no hayan sido publicadas en ninguna comunidad.

Para encontrar ofertas publicadas en las comunidades debes escribir dentro del bot el comando /findcomms <fiat code>. Para más información lee aquí.

Revisa todas las opciones anteriores hasta encontrar alguna orden que se adapte a tu búsqueda y pulsa el botón Comprar satoshis o Vender satoshis, según sea el caso, luego ve al chat con @lnp2pbot para seguir sus instrucciones. Si encuentras la oferta desde https://market.lnp2pbot.com te redireccionará al canal donde esté publicada para que puedas tomarla.

  • Otra manera de tomar una oferta es utilizar el comando /takeorder <order id>, por ejemplo, si organizas un intercambio de Sats con alguien mediante @lnp2pbot tu contraparte puede crear la orden y enviarte la ID de esta, para que la tomes directamente desde dentro del bot con el comando mencionado, evitándote ir a tomarla al canal de ofertas donde se publicó.

¿Cómo cancelo una orden publicada?

Si la orden no ha sido tomada, escribe el comando /cancel en tu chat con el bot o selecciónalo en el "Menú". El bot te mostrará las órdenes activas. Selecciona el ID correspondiente a la orden que deseas cancelar.

El ID o número identificador de tu orden aparece justo debajo del mensaje de aceptación y publicación de tu orden e, incluso, se te indica como opción para cancelarla. También puedes encontrarlo al escribir el comando /listorders

Si tu orden ya fue tomada, o si tomas una orden, y no quieres continuarla deberás iniciar una cancelación cooperativa.

Cancelar una orden

Al iniciar una cancelación cooperativa a tu contraparte se le informará tu intención de cancelar, y si está de acuerdo, también escribirá  /cancel <orden id> luego de esto los Sats serán  devuelveltos al vendedor. 

Si tu contraparte no quiere cancelar podrán iniciar una disputa, escribiendo el comando /dispute.

¿Hay algún límite (mínimo o máximo) en las cantidades que puedo transar?

Desde el bot, no hay límites para el volumen de tu transacción. Sin embargo, dependiendo de la capacidad de la red y la liquidez del canal, en determinado momento podrás encontrar un límite máximo.

¿Cuánto tiempo toma concretar una transacción?

Depende de varios factores. Por ser un intercambio P2P, la variable principal es la toma de tu oferta por una contraparte. Tu publicación estará disponible hasta por 23 horas y luego será automáticamente eliminada si nadie la ha tomado.

Una vez aceptada una oferta, se abre una ventana de tiempo de 15 minutos para pagar la factura lightning y que el bot ponga en contacto a ambas partes. A partir de este punto, tienen un máximo de 23 horas para concretar la operación. Transcurrido ese tiempo, la orden expira y los sats serán devueltos a la wallet de procedencia. Por esta razón los usuarios deben utilizar únicamente medios de pago de dinero fíat instantáneos para sus operaciones.

Al estar ambos participantes en línea y acordar métodos de pago inmediatos, las transacciones son casi instantáneas.

¿Debo pagar tarifas y comisiones?

El bot cobra una tasa fija de 0,6%. Esta tasa incluye la tarifa de red, por lo que no hay cobros adicionales. Esta comisión la paga solo el vendedor, no el comprador.

Algunas comunidades establecen un pequeño descuento en las comisiones de las operaciones que se llevan a cabo dentro de ellas. Para saber el descuento de cada comunidad consulta https://market.lnp2pbot.com en la sección de COMUNIDADES.

¿Qué tasa de cambio utiliza el bot?

Al crear una orden puedes optar por especificar solo el monto fíat a pagar/cobrar, y no la cantidad de sats que deseas comprar/vender. En este caso, debes seleccionar el botón Precio de mercado, y el bot hará el cálculo a tasa de mercado ofrecida por yadio.io en el momento en que tu orden sea tomada.

Precio de mercado

Cuando seleccionas el botón Precio de mercado también puedes colocar una prima o un descuento para tu oferta, esto significa que se aplicará un aumento o una disminución al precio de bitcoin que marque yadio.io en el momento en que se tome.

Ejemplos prácticos con su significado:

  • Compro Sats  +1%: Quiero comprar Sats un 1% más caro (por encima) que el precio de BTC que marque yadio.io al momento en que alguien tome mi oferta.

  • Compro Sats -5%: Quiero comprar Sats un 5% más barato (por debajo) que el precio de BTC que marque yadio.io al momento en que alguien tome mi oferta.

  • Vendo Sats +3%: Quiero vender Sats un 3% más caro (por encima) que el precio de BTC que marque yadio.io al momento en que alguien tome mi oferta.

  • Vendo Sats -4%: Quiero vender Sats un 4% más barato (por debajo) que el precio de BTC que marque yadio.io al momento en que alguien tome mi oferta.

¿En qué países e idiomas está disponible?

Al ser un intercambio P2P sobre Telegram, técnicamente está disponible para cualquier persona que tenga esta app. Sin embargo, hasta el momento el bot interactúa con un listado de 94 monedas fíat con las que puedes crear órdenes de compra/venta usando el botón Precio de mercado del asistente.

Acá te dejamos el listado. Para verlo dentro de @lnp2pBot debes escribir /listcurrencies

CodeName
AEDUnited Arab Emirates Dirham🇦🇪
ANGNetherlands Antillean Guilder🇧🇶
AOAAngolan Kwanza🇦🇴
ARSPeso argentino🇦🇷
AUDAustralian Dollar🇦🇺
AZNAzerbaijani Manat🇦🇿
BDTBangladeshi Taka🇧🇩
BHDBahraini Dinar🇧🇭
BIFBurundian Franc🇧🇮
BMDBermudan Dollar🇧🇲
BOBBoliviano🇧🇴
BRLBrazilian Real🇧🇷
BWPBotswanan Pula🇧🇼
BYNBelarusian Ruble🇧🇾
CADCanadian Dollar🇨🇦
CDFCongolese Franc🇨🇩
CHFSwiss Franc🇨🇭
CLPPeso chileno🇨🇱
CNYChinese Yuan🇨🇳
COPPeso colombiano🇨🇴
CRCColón🇨🇷
CUPPeso cubano🇨🇺
CZKCzech Republic Koruna🇨🇿
DJFDjiboutian Franc🇩🇯
DKKDanish Krone🇩🇰
DOPPeso dominicano🇩🇴
DZDAlgerian Dinar🇩🇿
EGPEgyptian Pound🇪🇬
ETBEthiopian Birr🇪🇹
EUREuro🇪🇺
GBPBritish Pound Sterling🇬🇧
GELGeorgian Lari🇬🇪
GHSGhanaian Cedi🇬🇭
GNFGuinean Franc🇬🇳
GTQQuetzal🇬🇹
HKDHong Kong Dollar🇭🇰
HNLLempira🇭🇳
HUFHungarian Forint🇭🇺
IDRIndonesian Rupiah🇮🇩
ILSIsraeli New Sheqel🇮🇱
INRIndian Rupee🇮🇳
JMDJamaican Dollar🇯🇲
JODJordanian Dinar🇯🇴
JPYJapanese Yen🇯🇵
KESKenyan Shilling🇰🇪
KGSKyrgystani Som🇰🇬
KRWSouth Korean Won🇰🇷
KZTKazakhstani Tenge🇰🇿
LBPLebanese Pound🇱🇧
LKRSri Lankan Rupee🇱🇰
MADMoroccan Dirham🇲🇦
MGAMalagasy Ariary🇲🇬
MLCMoneda Libremente Convertible🇨🇺
MXNPeso mexicano🇲🇽
MYRMalaysian Ringgit🇲🇾
NADNamibian Dollar🇳🇦
NGNNigerian Naira🇳🇬
NIONicaraguan Córdoba🇳🇮
NOKNorwegian Krone🇳🇴
NPRNepalese Rupee🇳🇵
NZDNew Zealand Dollar🇳🇿
PABPanamanian Balboa🇵🇦
PENPeruvian Nuevo Sol🇵🇪
PHPPhilippine Peso🇵🇭
PKRPakistani Rupee🇵🇰
PLNPolish Zloty🇵🇱
PYGParaguayan Guarani🇵🇾
QARQatari Rial🇶🇦
RONRomanian Leu🇷🇴
RSDSerbian Dinar🇷🇸
RUBRussian Ruble🇷🇺
RWFRwandan Franc🇷🇼
SARSaudi Riyal🇸🇦
SEKSwedish Krona🇸🇪
SGDSingapore Dollar🇸🇬
THBThai Baht🇹🇭
TNDTunisian Dinar🇹🇳
TRYTurkish Lira🇹🇷
TTDTrinidad and Tobago Dollar🇹🇹
TWDNew Taiwan Dollar🇹🇼
TZSTanzanian Shilling🇹🇿
UAHUkrainian Hryvnia🇺🇦
UGXUgandan Shilling🇺🇬
USDUS Dollar🇺🇸
USDSVUSD en El Salvador🇺🇸🇸🇻
USDVEUSD en Bs🇺🇸🇻🇪
USDUYUSD en Uruguay🇺🇸🇺🇾
UYUPeso uruguayo🇺🇾
UZSUzbekistan Som🇺🇿
VESBolívar🇻🇪
VNDVietnamese Dong🇻🇳
XAFCFA Franc BEAC🏳️
XOFCFA Franc BCEAO🏳️
ZARSouth African Rand🇿🇦

Por ahora, @lnp2pBot está totalmente disponible en inglés, español, portugués, francés, italiano, alemán, ruso y ucraniano.

Para cambiar el idioma del asistente usa el comando /setlang

Si quieres ayudar traduciendo lnp2pBot a tu idioma puedes proponer tu colaboración. Este es un buen lugar para empezar.

¿Cómo puedo encontrar comunidades que operen con mi moneda?

Al ejecutar el comando: /findcomms seguido del código de la moneda deseada (puedes usar código estándar de divisas ISO 4217), lnp2pBot te mostrará las comunidades creadas que operan con tu moneda.

Además en https://market.lnp2pbot.com puedes ver todas las comunidades que existen y algunas de sus estadísticas, como su creador, sus solvers, el por ciento de descuento, la fecha de cración, entre otros.

También puede haber comunidades que operan sats contra alguna otra criptomoneda. No hay ningún tipo de limitación para el usuario.

En la siguiente imagen podemos ver el resultado de /findcomms usd

Find Community Capture

¿Cómo publico ofertas en una comunidad?

Cuando comienzas a usar @lnp2pBot las órdenes que creas son publicadas por defecto en https://t.me/p2plightning que es el canal general donde puedes encontrar ofertas en varias monedas fíat.

Si quieres publicar ofertas en un canal que sea específico para tu moneda, debes hacerlo a través de alguna comunidad que la tenga incorporada.

  • Puedes buscar cuáles son todas las comunidades que operan con la moneda deseada en https://market.lnp2pbot.com.

  • También puedes escribir dentro del bot:

/findcomms <fiat code>

Por ejemplo /findcomms usd se utiliza para buscar todas las comunidades que comercian con USD. Si no sabes cuál es el código de tu moneda, escribe dentro del bot /listcurrencies y encuéntralo.

Find Community Capture

Al seleccionar alguna comunidad el bot mostrará la cantidad de órdenes exitosas, el volumen de comercio operado en las últimas 24 horas, y la cantidad de usuarios que publican sus ofertas allí. Para configurar en cuál comunidad quieres pubicar tus ofertas, debes seleccionar el botón "Utilizar por defecto".

Community details Capture

  • Otra forma de hacerlo es escribir: /setcomm <@communityGroupName | telegram-group-id> (/setcomm junto con el nombre del grupo, o su ID de telegram).

Para crear una orden dentro de alguna comunidad se usa el comando /buy o /sell dependiendo de lo que se quiera. A partir de ahí el bot te dará las intrucciones paso a paso y tu oferta se publicará en la comunidad seleccionada.

Community Wizard Capture

Más información:

  • Solo puedes tener configurada por defecto una comunidad a la vez, y por tanto todas tus ofertas se publicarán allí.

  • Para salir de una comunidad y volver a publicar ofertas en el canal general, debes escribir: /setcomm off

  • Si quieres publicar una oferta en varias comunidades a la vez, debes crearla en cada una por separado: primero la publicas en una, luego configuras otra para usar por defecto y publicas allí también, y así en todas las que la quieras poner.

Otra manera es escribir tu orden en forma de comando dentro del chat de una comunidad que tenga el bot como administrador, pues este la reconocerá y publicará la oferta en esa comunidad sin que tengas que configurarla por defecto.

  • Puedes tomar ofertas de todas las comunidades que quieras sin tener que configurar ninguna por defecto.

Wallets recomendadas

Las siguientes wallets son las que han demostrado un mejor rendimiento al usarlas con @lnp2pBot

Notas sobre otras wallets

  • Antes de vender Sats usando cualquier wallet de Lightning Network (o exchange) infórmate si soporta el pago de hold invoices (el tipo de invoices que el bot utiliza como scrow).

  • Con Wallet of Satoshi puedes recibir los Sats de una compra sin ningún problema, sin embargo, si estás vendiendo Sats y se cancela la orden, el balance de tu wallet puede tardar en actualizarse y no aparecer disponibles los Sats hasta pasadas algunas horas, aunque permanezcan en el nodo de WoS, debido a que actualiza el saldo de sus usuarios cada cierto tiempo. Esto puede ocurrir en cualquier otro servicio custodial, tanto wallets como exchanges que tengan habilitados retiros en Lightning Network.

  • Es común que los pagos de @lnp2pBot hacia Muun wallet fallen porque el bot puede pagar un fee de ruteo de hasta 0.2% máximo, así que no podrá pagar la factura cuando Muun esté cobrando fees mayores a ese, en dichos casos se debe poner una nueva invoice desde otra wallet (Más info aquí). También puede pasar que estés vendiendo Sats desde Muun wallet y se cancele la orden, de todas formas cobrará un fee porque Muun wallet no es una wallet LN nativa, sino onchain que funciona mediante submarine swaps, y para hacer una transacción debes pagar el fee de minería aunque la hold invoice del bot haya sido cancelada.

  • En Aqua Wallet puedes recibir los Sats de una compra sin ningún problema, pero a pesar de ser una wallet de auto custodia si estás vendiendo Sats y se cancela la orden, el balance de tu wallet tardará en actualizarse varias horas (en ocasiones hasta 48 horas) porque tienen habilitado ese período de espera para el reembolso de cualquier pago que falle.

Problemas Comunes y sus soluciones

Estoy intentando tomar una orden y no pasa nada

Al pulsar el botón Comprar satoshis o Vender satoshis de una oferta, @lnp2pbot te responderá por privado lo que debes hacer para completar el proceso. Para que el bot pueda responder a tu solicitud es necesario que lo inicialices, pues ningún bot puede abrirte un chat de primero si no lo has usado antes. Abre @lnp2pbot y escribe el comando /start o toca el botón de Iniciar, luego intenta nuevamente tomar la orden, regresa al bot y sigue sus instrucciones.

  • Si ya usabas el bot y la última vez que lo hiciste fue antes de marzo de 2023, debes volver a inicializarlo con el comando /start porque fue reiniciado y no se conservó su base de datos anterior.

Intenté pagar una factura con una cartera con fondos insuficientes y @lnp2pbot ahora me dice que la factura fue usada

Espera 15 minutos a que el tiempo de la transacción expire y vuélvela a iniciar para que se genere una nueva factura.

Mi contraparte tuvo un problema al enviarme el pago en fíat y luego desapareció, mis sats quedaron bloqueados

La transacción se cancelará automáticamente luego de 23 horas y tus satoshis aparecerán en tu cartera como un pago fallido. Si quieres acelerar el proceso puedes abrir una disputa con el comando /dispute <order id>.

Un usuario tomó mi compra por error y ya hice el pago en satoshis

Se puede iniciar una cancelación cooperativa. Ambos deben ejecutar el comando /cancel <order id>.

Cancelé una orden pero los sats no han vuelto a mi wallet. ¿Cuánto debo esperar?

Cuando una orden es cancelada los sats del vendedor retornan inmediatamente al nodo/wallet que realizó el pago. Si utilizas una wallet de auto-custodia o tu propio nodo no tendrás ningún problema, pero si utilizas una wallet que custodia tus fondos debes esperar que ellos reflejen tu balance en su sistema interno, esto puede tardar desde unos minutos hasta un par de horas dependiendo de la wallet, pero en todas las wallets retorna el 100% de tus fondos, paciencia.

Estoy comprando y el bot no me pide una invoice, sino que me pone directamente en contacto con el vendedor

Esto pasa cuando tienes activada una lightning address. En ese caso los Sats que compres serán enviados directamente hacia allí sin pedirte una nueva invoice en cada compra. Para revisar tu lightning address escribe dentro del bot el comando /settings, si quieres desactivarla escribe dentro del bot el comando  /setaddress off.

¿Cómo sé si el vendedor realmente liberó los sats?

Si @lnp2pBot te dice que el vendedor liberó, es porque realmente es así, pero si quieres verificarlo puedes hacerlo de la siguiente manera:

Escríbele al bot /listorders y si el bot aún está en proceso de pagar tu factura el status que verás será PAID_HOLD_INVOICE, si el bot ya pagó la factura la orden no aparecerá en la lista.

Cuando una orden tiene status PAID_HOLD_INVOICE, el vendedor ya no tiene ninguna responsabilidad debido a que ha liberado los sats, si tienes problemas para recibir ve a la sección El vendedor liberó pero no me llegan los sats a mi wallet.

El vendedor liberó pero no me llegan los Sats a mi wallet

Posibles causas

En ocasiones el bot no encuentra rutas exitosas para realizar el pago por diferentes razones, a veces porque simplemente no hay una buena conexión del origen al destino pero otras veces es mucho más complicado, puede ocurrir que los nodos conectados al destino cobren fees muy altas.

El nodo de @lnp2pBot está dispuesto a pagar hasta un 0.2% del monto total de la operación en routing fee, si este fee es mayor el bot simplemente no realizará el pago, algunas wallets que no son nativas lightning puede que cobren más de 0.2% cuando la mempool está congestionada, a esas wallets el bot no les podrá pagar (más información sobre wallets aquí).

Otro caso es que no tengas inbound capacity, por ejemplo, si usas Blixt wallet y en ella tienes un canal que recién abres, todo el dinero en esa wallet sería de salida y no tendrías capacidad para recibir, en ese caso todos los pagos hacia esa wallet van a fallar. Hay wallets modernas como Phoenix wallet que resuelven este problema indicándote que no tienes inbound capacity y propone modificar el canal (splice in) para que el nuevo pago recibido esté del lado del usuario (más inbound capacity), esta wallet cobra una comisión por esto.

Solución

Cuando un pago falla el bot intentará pagarlo 2 veces más en intervalos de 5 minutos, si continúa sin poder hacerlo te pedirá que le entregues una nueva factura para seguir intentándolo, es recomendable que la generes desde otra wallet.

Si no introduces la factura antes de 20 minutos después que el bot la pida, se cancelará ese asistente y no la seguirá pidiendo luego. En ese caso deberás ponerla con el comando /setinvoice <order id> <lightning invoice> (No debes escribir los símbolos <>, separa cada parte con un espacio, no reutilices facturas).

Si llevas varios intentos y aún no recibes los Sats, mantén la calma, pues ya no es posible que se cancele la operación o le sean devueltos los Sats al vendedor, sino que están en el nodo del bot y puedes seguir intentando con nuevas invoices las veces que sean necesarias hasta que los recibas.

Soporte

@lnp2pbot no es una empresa, por ello no cuenta con un departamento de soporte técnico, aunque sí hay una comunidad a la que puedes acudir en caso de lo necesites.

Los principales grupos de Telegram donde puedes pedir ayuda son:

Además puedes preguntar dudas y solicitar ayuda en la comunidad del bot que estés usando y estar en contacto directo con el administrador y el/los solver(s) de la misma.

Contacto con desarrolladores

Si necesitas ponerte en contacto con los desarrolladores de @lnp2pBot, usa nuestro GitHub, si tienes alguna propuesta o deseas informar un error, ve a la sección de problemas y crea uno.

Soy desarrollador y quiero contribuir

¡Genial! Gracias por tu interés. En la sección de issues podrás ver una lista de asuntos por resolver. Elige uno con etiqueta help wanted. Si tienes dudas puedes preguntar haciendo un comentario. Luego, si estás seguro de que quieres resolverlo, coméntalo. Los que tienen etiqueta good first issue son sencillos y muchas veces sirven para familiarizarte con el código.

Desde que iniciamos este proyecto quisimos comenzar a operar con @LNP2Pbot sin hacer mucho ruido. Era fundamental probar el bot en una comunidad pequeña antes de mostrarle al mundo un producto final. Por eso comenzamos a trabajar con la comunidad Lightning hispanohablante, la cual recibió el proyecto de muy buena manera. El feedback recibido le ha permitido al bot ir creciendo y mejorando día a día.

Comunidades

La comunidades están pensadas para que los usuarios puedan interactuar en grupos pequeños, adaptados a sus gustos y necesidades.

Se pueden crear comunidades alrededor de un proyecto, de una moneda o de un país, por ejemplo.

Cualquiera puede crear una comunidad e interactuar con el bot desde ella. Lo que deja en los creadores/administradores con un gran poder en sus manos, “un gran poder conlleva una gran responsabilidad”. Esto quiere decir que desde que los usuarios comiencen a trabajar en sus propias comunidades, también tendrán que gestionar las posibles disputas que ocurran.

Confianza

El modelo que hemos elegido para resolver disputas es el de la confianza. Esto parece paradójico para quienes trabajamos con Bitcoin, porque siempre hemos abogado por sistemas "trustless", y la verdad es que el objetivo siempre es desarrollar sistemas en los cuales no tengamos que confiar en nadie. Pero luego de pensar mucho en sistemas de resolución de disputas, tuvimos que aceptar que siempre, en alguna medida, hay que confiar en alguien.

Dictador benevolente

Habiendo aceptado que para resolver una disputa hay que confiar en alguien, ¿cómo hacer que haya menos incentivos para crear disputas? Con respecto a este tema, la comunidad hizo varias propuestas. Y la que desarrollamos es utilizar la figura del “dictador benevolente”. Se trata de un “dictador” al que la gente acepta y confía en que sus decisiones son tomadas para el bien de la comunidad. Digamos que es un mediador de confianza de la comunidad.

El dictador benevolente es el creador de la comunidad, el dictador benevolente es quien puede agregar solucionadores de disputas o 'solvers'. Estos son públicamente conocidos por la comunidad (nos referimos a su “username” en Telegram). La comunidad se encargará de denunciar si estos usuarios están haciendo su trabajo correctamente o no. En una comunidad donde el “dictador benevolente” seleccione correctamente a los solvers todo funcionará bien; en una donde el dictador cometa errores, sus súbditos se irán a otra comunidad o crearán una nueva. De esta manera delegamos esta responsabilidad a las comunidades.

¿Cómo creo una comunidad?

Para crear una comunidad, simplemente escribe el comando /community. Luego de esto el bot te pedirá que le indiques lo siguiente:

  • Nombre de la comunidad: Un nombre para identificar a tu comunidad.
  • Monedas: Monedas fiat que pueden operar en la comunidad. Estas se deben ingresar separadas de un espacio en blanco. Por ejemplo, para una comunidad uruguaya se pueden agregar "UYU USD".
  • Grupo de la comunidad: Este es el grupo principal donde se reúnen los miembros de la comunidad. En este grupo deben ser administradores tanto @lnp2pbot como quien está creando la comunidad. Los usuarios podrán crear órdenes enviando comandos del bot en este grupo.
  • Canal o canales de libro de órdenes: Las órdenes serán publicadas donde nosotros le indiquemos al bot. Si ingresamos un solo canal, las compras y las ventas se publicarán en ese canal, pero si indicas dos canales, las compras se publicarán en el primero y las ventas en el segundo. Los canales se ingresan separados con un espacio en blanco y tanto el bot como el creador de la comunidad deben ser administradores de los canales.
  • Solvers: Debemos indicar los “usernames” de los usuarios que se encargarán de resolver las disputas, separados con un espacio en blanco.
  • Canal para las disputas: En este canal el bot publicará cuando un usuario inicie una disputa. Tanto el bot como el creador de la comunidad deben ser administradores del canal.

Manos a la obra. Comunidades, primeros pasos

Para crear una comunidad debemos escribir o seleccionar del menú el comando /community. A partir de ahí el bot te irá guiando en el proceso.

Community Menu capture

En esta entrada están los detalles, para mejor comprensión. Es importante que sepas que tanto tu como el bot deben ser administradores tanto en el grupo de la comunidad como en los canales vinculados a ella.

Modificando una comunidad

Para modificar cualquier campo simplemente ejecutamos el comando /mycomms y el bot te mostrará un menú que te servirá para seleccionar la comunidad que deseas modificar y el campo en específico.

Creando órdenes

El funcionamiento del bot sigue siendo exactamente igual, por defecto crea las órdenes en un canal global. Pero como hemos creado una nueva comunidad queremos que nuestra orden sea publicada en el canal que hemos asociado a la comunidad. Hay dos maneras de crear una orden en la nueva comunidad.

Entramos al grupo de la comunidad (en el caso de nuestro ejemplo sería @p2pZimbabwe) y dentro del grupo ejecutamos el comando de siempre: /sell o /buy. Si queremos algo más privado, le indicamos al bot nuestra comunidad por defecto ejecutando el comando /setcomm @p2pZimbabwe. A partir de ese momento, todas las órdenes que crees en privado irán al canal correspondiente vinculado con @p2pZimbabwe. Puedes cambiar tu comunidad por defecto cuando quieras con /setcomm @ComunidadMuchoMasCool (ejemplo). También puedes volver al estado anterior, donde no tenías una comunidad por defecto, ejecutando /setcomm off.

Incentivos

Desde su creación, @lnp2pbot le ha cobrado una tarifa al vendedor por orden completada con éxito, esta tarifa actualmente es de 0.6%. Cuando la orden se crea en una comunidad, el bot divide esta tarifa: una parte queda para el bot y la otra será la ganancia de la comunidad.

Las proporciones son: 67% de la comisión para el bot y el 33% restante para la comunidad.

Por ejemplo, en una transacción por 100.000 satoshis, el vendedor paga 600 satoshis de comisión. De ese monto, 402 satoshis son para el roboto y los 198 satoshis restantes para la comunidad.

Pero, para incentivar la competencia, la comunidad tiene la potestad de disminuir su 'ganancia', de modo que en vez de cobrar la totalidad de ese 33%, puede bajar un porcentaje en sus comisiones.

En el ejemplo anterior, en vez de cobrar los 198 satoshis (el 100%) puede elegir cobrar 99 satoshis (el 50%). Los satoshis restantes quedan como descuento para el vendedor que, en vez de pagar 600 satoshis, pagaría 501.

Administrando una comunidad

Una vez que la comunidad ha sido creada, es necesario empezar el trabajo de administración.

Lo primero es designar, al menos, una persona para resolver las disputas que se presenten. Esa persona sería el solver.

Luego, establecer los canales en los cuales se realizaran las compras y ventas. Al principio, un solo canal será suficiente para ambas cosas, pero a medida que la comunidad crece, puede ser necesario establecer un canal para cada una.

Otra de las tareas del administrador es decidir la tarifa que cobrará la comunidad. Aquí tienes la explicación de como funcionan las tarifas.

El administrador puede modificar cualquier campo de la comunidad cuando quiera.

IMPORTANTE: Para ejecutar los comandos de administración de comunidades se debe tener seleccionada por defecto la comunidad con la que se desea trabajar. Para ello se usa el botón 'Utilizar por defecto' que se muestra luego de ejecutar /findcomms, también lo puedes hacer con el comando /setcomm @grupoaseradministrado. Un grupo de telegram obtiene su @grupo al hacerse público.

¿Qué es un Solver?

Los solvers son usuarios, designados por el administrador de la comunidad, que se encargan de resolver las disputas y mantener el orden.

Una comunidad debe tener, al menos, un solver. Para esto no hay ningún tipo de requisito, el administrador puede agregarlos o removerlos en cualquier momento.

El administrador puede ser solver de su propia comunidad.

Resolviendo disputas

Cuando un usuario inicia una disputa, un mensaje será enviado por el bot al canal de las disputas. Solo los solvers podrán tomarlas, tocando el botón Take dispute. Antes de tomar una disputa, el solver debe estar seguro de que tiene la comunidad configurada, para configurar la comunidad, el solver debe ejecutar el comando /setcomm @community-group. Disputa Captura

Una vez el solver toma la disputa, el bot le enviará toda la información necesaria para resolverla, pero también se deberá comunicar con cada parte, entender que pasó y completar la orden o cancelarla.

Disputa detalles captura

Completando una orden

Muchas disputas se inician porque una de las dos partes tardó en responder un mensaje, hubo un malentendido o una demora en algún pago. Estos son casos sencillos que solo requieren paciencia y ayudar en la comuncación. Otros casos involucran malicia, como por ejemplo puede haber un vendedor que quiera quedarse con el dinero fiat y que le retornen los sats. Para estos casos el solver puede ejecutar el comando /settleorder, lo que hace este comando es que reconoce el pago recibido y automáticamente envía los sats al comprador.

Completando una orden

Completando una orden cuando el fíat tarda demasiado en llegar

Con @lnp2pbot se deben utilizar métodos de pago que garanticen que el envío del fíat sea instantáneo. Sin embargo, puede haber casos en los que el fíat demore más de lo habitual en llegar al vendedor de Sats, por ejemplo, debido a problemas en el procesamiento del pago por parte del banco. En tales situaciones, el comprador corre el riesgo de que el vendedor no reciba el fíat antes de que caduque la hold invoice y por tanto no libere los Sats, pero cuando caduque, el vendedor tendrá los Sats de nuevo, y luego el fíat. El comprador quedaría a expensas de la buena voluntad del vendedor que podría enviarle los satoshis o no, sin que el bot pueda tener ninguna intervención en esto. Para evitarlo, los usuarios pueden acudir a los solvers de su comunidad que actuarán como mediadores.

Un solver puede hacer que el bot cobre la hold invoice del vendedor utilizando el comando /freezeorder <order_id>, así podrían esperar el tiempo suficiente para que el fíat llegue, y cuando ocurra, el solver liberará los Sats con el comando /paytobuyer <order_id>. Es posible que la factura del comprador haya expirado durante el proceso, por lo que deberá actualizarla escribiendo /setinvoice <order id> <lightning invoice>.

Esta solución implica la custodia de los Sats por parte del bot y debe utilizarse solo cuando no existan otras opciones.

Cancelando una orden

La otra alternativa que tiene el solver es cancelar la orden, si el caso lo amerita. Para ello usa el comando /cancelorder. Este comando le retorna los sats al vendedor.

Cancel order capture

Eliminando disputas

Cada vez que un usuario inicia una disputa tanto él como su contraparte quedan envueltos en la misma. Hasta que no se resuelva ambos quedan relacionados. Al resolverse, el solver tiene la potestad de eliminar esta disputa a uno de los usuarios o a los dos, si lo necesita, usando el comando /deldispute username id-de-orden.

Eliminando una disputa Captura

Expulsar a un usuario de la comunidad

Si un solver lo considera necesario puede expulsar a un usuario de la comunidad con el comando /ban seguido de su username.

Intercambios seguros en @lnp2pbot

@lnp2pbot es una herramienta segura para el intercambio de bitcoin de forma p2p sin KYC debido a que cuando dos personas entran en contacto para hacer una compra-venta los Satoshis (Sats) del vendedor quedan retenidos en su propia wallet mediante una hold invoice y no los podrá utilizar mientras estén en dicho estado. Cuando el comprador de Sats envíe el dinero fíat, y el vendedor le confirme al bot que ya lo recibió, los Sats se enviarán hacia el nodo del bot y este los pagará al comprador lo antes posible.

El bot cuenta con un sistema de reputación de los usuarios que toma en cuenta la cantidad de operaciones exitosas y las calificaciones recibidas, además, muestra la cantidad de días que una persona ha estado utilizándolo. Estos datos pueden ayudarte a tomar decisiones sobre aceptar o rechazar ofertas según tus propios intereses.

Adicionalmente, cada comunidad del bot cuenta con al menos un Solver, quien es responsable de mediar en las disputas que puedan surgir, este solicitará las pruebas necesarias a las partes involucradas y determinará quién tiene razón y por tanto recibirá los Sats. Cuando se detecta a un estafador es baneado permanentemente y se le prohíbe seguir utilizando el bot.

Intentos de estafas

Los intentos de estafas utilizando el bot no son frecuentes, pero como cualquier intercambio p2p descentralizado y sin KYC, no está exento de ellos. Para evitar ser estafados debemos actuar con cautela, estar atentos a comportamientos sospechosos y ante cualquier duda cancelar la operación o abrir una disputa.

Posibles estafas:

  • Un estafador que desea comprar Sats puede utilizar el comando /fiatsent para indicar que ha enviado el dinero fíat cuando en realidad no lo ha hecho, pretendiendo que el vendedor confíe en su palabra y libere los Sats sin verificar que realmente el fíat le llegó. Es muy importante que el vendedor compruebe que recibió el fíat antes de pulsar el comando /release, incluso si el comprador le envía una imagen como prueba de pago, ya que esta podría estar manipulada.

  • Algunos métodos de pago de fíat son reversibles, como PayPal, lo cual puede ser aprovechado por un estafador para comprar Sats y luego revertir el envío del fíat. Recomendamos utilizar únicamente métodos de pago irreversibles para evitar este tipo de estafas.

  • Para aumentar el uso descentralizado del bot existe la opción de que cualquier usuario pueda crear una comunidad. A pesar de los excelentes resultados, está la posibilidad de que un estafador cree una comunidad en la que él sea Solver y tome decisiones en disputas fraudulentas, en complicidad con otros estafadores o incluso siendo parte de las operaciones. Sin embargo, este tipo de estafa tendría una corta duración, ya que el estafador sería descubierto rápidamente y la reputación de la comunidad se vería afectada, junto con la pérdida de los usuarios y el baneo de los estafadores. Es recomendable antes de utilizar una comunidad informarse sobre quién es el creador y los Solvers, si tienen grupos en común contigo y si tienen buena reputación en general, además de tener en cuenta qué volumen de comercio hay en el grupo, su antigüedad, cuántos usuarios tiene y verificar que estos sean reales y no bots.

  • Un vendedor estafador podría aprovechar que las facturas retenidas en @lnp2pbot tienen un tiempo de caducidad de aproximadamente 23 horas, y no pulsar el comando /release para liberar los Sats a pesar de recibir el dinero fíat del comprador, sino que va a dejar el tiempo correr con excusas o incluso puede desconectarse, con el objetivo de que la factura venza y los Sats le sean devueltos, quedándose además con el dinero fíat, sin que el bot o algún Solver puedan hacer algo al respecto. Para evitar esta situación es importante que si estás comprando Sats uses un método de pago que sea instantáneo, y que una vez pagada tu parte, no dejes pasar mucho tiempo sin pedirle cuentas al vendedor. Si este no libera los Sats y no responde en un par de horas, deberías abrir una disputa. Nunca esperes a que se acerque el tiempo límite para abrir una disputa ya que es posible que el solver no pueda resolverla antes de que esta expire y los Sats sean devueltos al vendedor.

  • Otra forma de actuar de algunos estafadores es hacer varias operaciones dentro del bot para establecer relaciones con otros usuarios, y luego contactarlos en privado para convencerlos de hacer operaciones fuera del bot, esto es riesgoso debido a que nada garantiza que vayan a cumplir con su parte. Recomendamos no hacer los intercambios fuera del bot incluso si las ofertas son tentadoras, puedes pedirle, que para mayor seguridad de ambos, las realicen utilizando @lnp2pbot.

Consejos para evitar estafas

  • Si vas a utilizar @lnp2pbot por primera vez, infórmate sobre su funcionamiento, revisa la documentación disponible y comienza con pequeñas cantidades hasta que domines el proceso completamente.

  • Antes de tomar una oferta fíjate en la reputación del usuario, el número de intercambios, el tiempo de uso del bot, así como el volumen de comercio si lo tiene visible. Desconfía de ofertas demasiado buenas, especialmente si provienen de usuarios con poco tiempo de uso del bot y a la vez numerosas operaciones.

  • No accedas a realizar intercambios fuera del bot.

  • No accedas a cambiar el método de pago del fíat si no era el que estaba en la oferta.

  • Si no te sientes cómodo con un intercambio puedes pedirle a tu contraparte hacer una cancelación cooperativa siempre y cuando el fíat no se haya enviado.

  • Ten cuidado con las nuevas comunidades y de pequeño volumen.

  • No accedas a realizar un intercambio en otra comunidad si no fuiste tú quien la eligió.

  • Si vas a abrir una disputa, hazlo a tiempo, mucho antes de que se cumplan 23 horas de tomada la oferta.

  • Si detectas comportamientos sospechosos, infórmalos a los administradores de la comunidad correspondiente. Ellos podrán tomar las medidas adecuadas para proteger a los usuarios y avisar a los administradores de otras comunidades.

  • Envíale a tu contraparte solo los datos personales imprescindibles para llevar a cabo el intercambio, no proporciones más información de la necesaria, como tu número de teléfono personal, tu dirección, etc.

  • Si alguien con quien has hecho operaciones anteriores te hace un envío de dinero fíat sin previo aviso (aunque diga que fue un error) y te exige que le envíes los Sats correspondientes, puede tratarse de una estafa puente. En este caso se aconseja devolver el fíat a la misma cuenta desde donde se te envió el dinero y no continuar con el intercambio forzado al que intenta llevarte.

Estafas por triangulación de cuentas o estafas puente

Este tipo de estafas es difícil de prevenir y detectar ya que, desde la perspectiva del vendedor, todo parece transcurrir con normalidad. Es importante tener en cuenta que pueden ocurrir en cualquier tipo de intercambio p2p, no solo en @lnp2pbot. Consisten en que un estafador hace de intermediario entre la víctima y el vendedor, este último recibe el fíat que envía la víctima, pero entrega los Sats al estafador.

El estafador ofrece la venta de productos o servicios (ya sea un objeto de segunda mano, o incluso el desbloqueo de iPhones) en cualquier red social o plataforma especializa en compraventas, y cuando la víctima lo contacta, él solicita un pago por adelantado. Simultáneamente el estafador publica una oferta de compra de Sats en @lnp2pbot (u otro intercambio p2p) por una cantidad equivalente al fíat que va a estafar (también puede poner una oferta con una prima alta para hacerla más atractiva). Cuando el estafador encuentra a un vendedor de Sats y le pide sus datos para hacer el envío del fíat, le da esos datos a la víctima para que le haga el pago por adelantado, anteriormente mencionado. Una vez que el fíat de la víctima le llega al vendedor de Sats este pulsa el comando /release y los bitcoin son liberados para el estafador, quien desaparece y nunca realiza el servicio o la venta que le prometió a la víctima.

Se debe recalcar que el vendedor de Sats es una víctima más en esta triangulación, pues él solo interactúa con el estafador sin saber que existe una tercera persona en el intercambio y asume que el fíat que recibe lo envió directamente el comprador de sus Sats, sin embargo puede verse envuelto en una acusación por estafa cuando sus datos bancarios son entregados a las autoridades en una denuncia por el pago de un servicio o producto que no fue recibido. Es recomendable no borrar el historial del bot o los chats con tus compradores de Sats, o realizar una copia de respaldo, ya que estos registros pueden ser necesarios como prueba en caso de que se requiera demostrar que no se ha estafado a nadie.

Algunos estafadores pueden incluso pedir información personal adicional a los vendedores para luego compartirla con las víctimas directas de las triangulaciones y generarles mayor confianza. Por ello, se recomienda no proporcionar información personal como números de teléfono, nombres completos o direcciones, a menos que sean imprescindibles para el método de pago utilizado.

Prevención de estafas puente

No existe un método totalmente efectivo para evitar que un vendedor se involucre en una estafa puente. Sin embargo, además de seguir los consejos que mencionamos anteriormente para prevenir estafas, existen otras medidas que como vendedor podrías tomar para reducir el riesgo, entre ellas:

  • Si quieres hacer una venta grande de Sats, es preferible que la dividas en varias ventas pequeñas, a menos que el comprador tenga un buen historial de operaciones contigo y siempre utilice la misma cuenta bancaria.

  • Si una oferta de compra es demasiado buena, ten cuidado, puede tratarse de una estafa.

  • En los métodos de pago del fíat que permitan añadir comentarios en el envío, podrías pedir al comprador que escriba una frase específica que le digas en ese momento, como por ejemplo "Estoy comprando una naranja" de forma que si él fuera un estafador, tendría que pedirle a la víctima que escriba ese comentario para enviar el fíat y esta podría sospechar de que se trata de una estafa pues es muy posible que no esté comprando una naranja.

Esa frase se puede modificar por un código numérico u otro mensaje que creas adecuado para evitar una estafa. Otra forma no tan recomendable debido a los problemas de privacidad que pudieran conllevar es pedir que la frase sea: "Este pago es por una compra de X Sats en @lnp2pbot por la orden con ID: Y".

  • Algunos métodos de pagos de fíat no permiten añadir comentarios, pero sí revelan los números de teléfono de ambas partes, en estos casos también podrías pedirle al comprador antes de liberar los Sats, un SMS que llegue del número que te envió el fíat y que contenga alguno de los mensajes anteriores o mensajes similares. Otra forma podría ser que te haga una llamada o tú la hagas, y hablen directamente para confirmar que no haya una tercerización en el envío del fíat.

  • Otra opción no muy recomendable si no quieres violar la privacidad del comprador es pedirle una videollamada en telegram donde muestre que posee la tarjeta de la cual te enviaron el dinero, aunque no es necesario que muestre su rostro para ello.

Recuerda que si no te sientes a gusto con una operación, puedes hacer una cancelación cooperativa con /cancel y devolver el fíat a la misma cuenta desde donde te lo enviaron, si la contraparte no quiere colaborar debes abrir una disputa con /dispute y esperar a que un solver resuelva el caso.

Las medidas preventivas aquí mencionadas no son aplicables para todos los métodos de pago del dinero fíat. Si conoces de otras, por favor, compártelas y contribuye a evitar estafas.

¿Cómo colaborar?

lnp2pBot es un proyecto open source, mantenido por la comunidad. Muchos usuarios preguntan cómo pueden contribuir, o si es necesario tener conocimientos de programación para hacerlo, en esta sección te presentamos algunas formas en las que puedes colaborar, aunque no son las únicas, cualquier tipo de ayuda es valiosa para el proyecto. Muchas gracias por considerarlo!

  • Traducción del Bot: Si eres multilingüe, puedes ayudar a traducir el bot a otros idiomas para para ampliar su accesibilidad.

  • Ayuda con la Documentación y su traducción: Si tienes habilidades en redacción y/o traducción, puedes colaborar a mejorar la documentación del proyecto, y/o traducirla, haciendo que sea más accesible y comprensible para todos.

  • Desarrollo: Si eres un desarrollador, tus habilidades son fundamentales. Puedes contribuir escribiendo código, implementando nuevas funciones y corrigiendo errores.

  • Reportar errores: Si encuentras algún error o comportamiento inesperado en el bot, informarlo es de gran utilidad. Nos ayuda a mejorar la estabilidad y la calidad del proyecto.

  • Proponer mejoras: Si tienes ideas para mejorar lnp2pBot, te invitamos a compartirlas con nosotros, varias características importantes del bot han salido de propuestas de la comunidad.

  • Crear video-tutoriales y guías: Si tienes habilidades en la creación de contenido multimedia, puedes hacer video-tutoriales o guías escritas para ayudar a los usuarios a sacar el máximo provecho del bot.

  • Difusión en redes sociales: Compartir información sobre lnp2pBot en redes sociales ayuda a aumentar su visibilidad y atraer a más personas interesadas en contribuir o utilizarlo.

  • Donaciones: Si deseas apoyar financieramente el desarrollo y mantenimiento de lnp2pBot, considera realizar una donación. Cada contribución ayuda a cubrir costos de alojamiento, desarrollo y otros gastos relacionados con el proyecto. Puedes donar a lnp2pbot@getalby.com ¡muchas gracias!

¿Cómo traducir el bot?

Para traducir lnp2pBot, debes hacer una solicitud de extracción (Pull Request o PR) en el repositorio de GitHub https://github.com/lnp2pBot/bot agregando un nuevo archivo .yaml en https://github.com/lnp2pBot/bot/tree/main/locales con la traducción de las cadenas del bot.

El nuevo archivo yaml debe ser nombrado utilizando códigos de idioma ISO 639-1, por ejemplo, en español es es, entonces el nombre debería ser es.yaml.

Puedes usar como guía https://github.com/lnp2pBot/bot/blob/main/locales/en.yaml, cópialo y modifica solo los textos que no sean una clave (las claves son las que están antes de los dos puntos : ).

También puedes usar como referencia algunas PR de idiomas añadidos anteriormente: https://github.com/lnp2pBot/bot/pull/460

Si no eres una persona técnica, no te preocupes, simplemente descarga en.yaml o la traducción donde te sientas más comodo, tradúcelo y envíalo a algún administrador del grupo de telegram.

¿Cómo traducir y colaborar con la documentación?

La documentación de lnp2pBot se ha creado con mdBook, una herramienta versátil que nos permite organizarla de manera clara y coherente, esto incluye la creación de capítulos, secciones, enlaces cruzados etc, logrando una navegación fluida y una comprensión fácil del contenido.

A continuación explicamos paso a paso cómo traducir la documentación, aunque también te puede ser útil si deseas agregar más contenido o mejorar el material existente:

  1. Instala Rust: https://www.rust-lang.org/tools/install

  2. Instala mdBook:

$ cargo install mdbook
  1. Clona el repositorio y crea un nuevo directorio del idioma: Clona el repositorio https://github.com/lnp2pBot/doc-site y luego crea un nuevo directorio para el idioma al que deseas traducir la documentación basado en el directorio existenete en inglés o español (son los que se actualizan con mayor frecuencia).
$ git clone https://github.com/lnp2pBot/doc-site.git

$ cd doc-site

$ cp -r english <tu-idioma>
  1. Modifica el archivo book.toml: Debes establecer los parámetros language y title en el archivo book.toml. Para language debes usar los códigos de idioma ISO 639-1; y en title debes sustituir "Learn" por su equivalente en tu idioma.

language = "en"
title = "Learn @lnp2pBot"

  1. Visualiza el Libro Localmente: Una vez dentro del directorio que hemos copiado, puedes ver cómo se ve el libro localmente utilizando el siguiente comando:
$ cd <tu-idioma> 

$ mdbook serve

Luego, abre http://localhost:3000 en tu navegador web para visualizar el libro creado.

  1. Comienza la Traducción: Para comenzar a traducir la documentación accede a cada archivo .md dentro del directorio src. Los cambios que realices se mostrarán automáticamente actualizados en el libro en http://localhost:3000 mientras mdBook esté en ejecución.
  • En el archivo SUMMARY.md, encontrarás la estructura de los capítulos del libro. Solo necesitas traducir los títulos de los capítulos, encerrados entre corchetes [ ], sin modificar los enlaces, encerrados entre paréntesis ( ).

  • Para remplazar alguna imagen o gif por uno en tu idioma debes ponerlo en /assets/images/ y eliminar el archivo original, pero ponerle su mismo nombre al nuevo.

  • No traduzcas los nombres de los archivos .md ni los enlaces.

  1. Envía una Solicitud de Extracción (Pull Request o PR): Cuando hayas terminado la traducción debes hacer una solicitud de extracción (Pull Request o PR) en el repositorio de GitHub https://github.com/lnp2pBot/doc-site.

Tips

  • Consulta esta guía sobre Cómo dar formato a los textos con markdown.
  • Podrías hacer las traducciones sin usar mdBook simplemente traduciendo cada archivo y subiendo el PR, aunque de esa forma podrías cometer errores
  • Si encuentras dificultades al seguir este tutorial, contacta con algún administrador del grupo de telegram para recibir ayuda.

Desarrollo

Esta guía se basa en la guía de contribución de Bisq.

Cualquiera es bienvenido a contribuir con lnp2pBot. Si estás buscando por dónde empezar, echa un vistazo a la lista de buenos primeros problemas.

Canales de Comunicación

La mayoría de la comunicación sobre lnp2pBot ocurre en el grupo de Telegram. La discusión sobre cambios de código ocurre en los problemas y solicitudes de extracción de GitHub.

Flujo de Trabajo del Contribuidor

Todos los contribuidores de lnp2pBot envían cambios a través de solicitudes de extracción. El flujo de trabajo es el siguiente:

  • Hacer un fork del repositorio.
  • Crear una rama temática a partir de la rama main.
  • Hacer commits de los parches.
  • Unificar commits redundantes o innecesarios.
  • Enviar una solicitud de extracción desde la rama de tu tema a la rama main del repositorio principal
  • Realizar cambios en la solicitud de extracción si los revisores lo solicitan y solicitar una revisión.

Las solicitudes de extracción deben centrarse en un único cambio. No mezcles, por ejemplo, refactorizaciones con una corrección de errores o la implementación de una nueva característica. Esta práctica facilita que los demás contribuidores revisen cada solicitud de extracción.

Revisión de Solicitudes de Extracción

lnp2pBot sigue el flujo de trabajo de revisión establecido por el proyecto Bitcoin Core. Lo siguiente está adaptado de la documentación para contribuidores de Bitcoin Core:

Cualquiera puede participar en la revisión de pares, que se expresa mediante comentarios en la solicitud de extracción. Generalmente, los revisores revisarán el código en busca de errores obvios, además de probar el conjunto de parches y opinar sobre los méritos técnicos del parche. Los mantenedores del proyecto tienen en cuenta la revisión de pares al determinar si hay consenso para fusionar una solicitud de extracción (recuerda que las discusiones pueden haberse dispersado en GitHub y Telegram). El siguiente lenguaje se usa dentro de los comentarios de la solicitud de extracción:

ACK significa "He probado el código y estoy de acuerdo en que debería fusionarse"
NACK significa "Discrepo en que esto deba fusionarse" y debe ir acompañado de una justificación técnica sólida. Los NACKs sin justificación acompañante pueden ser ignorados
utACK significa "No he probado el código, pero lo he revisado y parece estar bien, estoy de acuerdo en que puede fusionarse"
Concept ACKsignifica "Estoy de acuerdo en el principio general de esta solicitud de extracción"
Nit se refiere a problemas triviales, a menudo no bloqueantes.

Ten en cuenta que las solicitudes de extracción marcadas como NACK y/o Change requested en GitHub se cierran después de 30 días si no se abordan.

Convenciones de estilo y codificación

Estándares de codificación

Seguimos la guía de estilo de JavaScript de Airbnb para tener un código más limpio.

Configurar el nombre de usuario y correo electrónico de Git

Consulta https://help.github.com/articles/setting-your-username-in-git/ para obtener instrucciones.

Escribir mensajes de confirmación bien formados

Desde https://chris.beams.io/posts/git-commit/#seven-rules:

  • Separar el asunto del cuerpo con una línea en blanco
  • Limitar la línea de asunto a 50 caracteres (*)
  • Poner en mayúscula la línea de asunto
  • No terminar la línea de asunto con un punto
  • Usar el modo imperativo en la línea de asunto
  • Envolver el cuerpo en 72 caracteres (*)
  • Usar el cuerpo para explicar el qué y el porqué frente al cómo

Firmar tus commits con GPG

Consulta https://github.com/blog/2144-gpg-signature-verification para obtener antecedentes y https://help.github.com/articles/signing-commits-with-gpg/ para obtener instrucciones.

Mantener limpio el historial de Git

Es muy importante mantener el historial de git claro, ligero y fácilmente navegable. Esto significa que los contribuyentes deben asegurarse de que sus solicitudes de extracción incluyan solo confirmaciones significativas (si son redundantes o se agregaron después de una revisión, deben eliminarse) y no incluir ninguna confirmación de fusión.

Reportar errores

Si encuentras algún error o comportamiento inesperado es de gran utilidad que lo reportes para que pueda ser corregido lo antes posible.

Para hacerlo dirígete a https://github.com/lnp2pBot/bot/issues y selecciona New issue. Luego elige Bug report, añade un título que sintetice de forma clara de cúal es el error, y luego completa la información sobre el bug que aparece en la plantilla. También puedes poner algún otro dato aunque no lo pida la plantilla. Finalmente envía el reporte con Submit new issue.

Proponer mejoras

lnp2pBot](https://t.me/lnp2pBot) está mantenido por su comunidad, grandes mejoras han salido de propuestas de usuarios. Si tienes alguna idea que crees puede mejorar el funcionamiento del bot, facilitar su uso por los ususrios, etc, no dudes en ponerla, podría ser un gran aporte!

Para hacerlo dirígete a https://github.com/lnp2pBot/bot/issues y selecciona New issue. Luego elige Feature request, añade un título que sintetice de forma clara tu propuesta, y luego completa la información que aparece en la plantilla. También puedes poner algún otro dato aunque no lo pida la plantilla. Finalmente envía el tu solicitud con Submit new issue.