@DigitalP2PBot

Here you'll find information about @DigitalP2PBot. This is a Telegram bot for buying and selling USDT-USDC, in a peer-to-peer manner, using your local currency without requiring KYC or providing personal data.

Quick Start Guide

  1. Download a USDT-USDC compatible wallet (Recommended Wallets).

  2. Get a Telegram username.

  3. Start @DigitalP2PBot.

    Starting the bot

  4. Find offers to buy or sell USDT-USDC at:

  1. When you take an offer, @DigitalP2PBot will guide you step by step through the buying/selling process.

  2. If you don't find a suitable offer, create one and wait for someone to take it. Type /buy in @DigitalP2PBot to buy USDT-USDC or /sell to sell USDT-USDC, according to your preference, and it will guide you through the process.

  3. Start buying and selling.

  4. Find answers to your questions in the FAQ section.

Recommendations

FAQ

Here we try to answer frequent questions.

What is @DigitalP2PBot?

DigitalP2PBot is a USDT-USDC exchange system for local currency, enabling easy and secure person-to-person transactions using Polygon Network. It is a Telegram bot that can be used pseudonymously, without user registration or identity verification. This tool only holds USDT-USDC for the minimum necessary time in a smart contract, providing greater security to users compared to exchange services with internal wallets and complete custody of funds. DigitalP2PBot is an open-source application, allowing for auditing, replication, modification, and redistribution with freedom. Go to @DigitalP2PBot

What is Polygon?

Polygon is a blockchain platform that improves the scalability and speed of the Ethereum network. It is an alternative to Ethereum that offers a more efficient application development environment. It is a scalability solution that allows the number of transactions and their speed to be exponentially increased. This in turn allows network fees to be drastically reduced. Payments become almost instantaneous and very low cost.

What do I need to use @DigitalP2PBot?

You only need an account on Telegram with an active "username" or username to initialize the bot and interact with it. Additionally, you'll require a wallet that supports the Polygon Network. Here are some recommended wallets.

How do I initialize the bot?

Open a private chat with @DigitalP2PBot and click on "START" or execute the command /start.

  • If you don't initialize the bot first, you won't be able to take any orders from the channels where they are published.

What are the channels for making exchanges on Telegram?

To create your Buy / Sell orders for USDT-USDC, use the chat with @DigitalP2PBot.

The offers created with @DigitalP2PBot are published in Telegram channel from where they can be taken by clicking the Buy USDT/USDC or Sell USDT/USDC button that appears below each one.

There is a general channel @digitalp2porders where offers are listed, hence there are various fiat currencies available.

Do I need to fill out any user registration or identity verification?

No personal information is required from you, the exchanges are entirely between peers, and @DigitalP2PBot does not collect or store any personal information of the parties involved.

What type of information do you collect from each user?

For the purposes of the user reputation system, DigitalP2PBot collects some statistics on your trades. Specifically, the number of completed transactions, the total volume traded, the counterparty rating and the record of disputes if any. Of this information, only the number of transactions and the counterparty rating are public by default. Meanwhile, showing the total volume traded and your username is optional (you choose to show it or not, by default it is not shown).

In case you want to show your username and/or volume traded to accompany your reputation in the offers you publish, you must do it manually through the following commands:

/showusername yes

/showvolume yes

Each command is sent as a direct message to the bot.

How does the user reputation system work?

For every transaction you conduct, you'll be asked to rate your counterpart, and they'll rate you in return. DigitalP2PBot uses a 5-star rating system that allows you to evaluate your experience, where 1 star is the lowest rating and 5 stars are the highest.

To determine reputation, the bot conducts an iterative calculation of the mean and standard deviation of the ratings and successful operations. Hence, in the initial transactions, even if you've been rated with the maximum, your reputation won't be high initially. It gradually increases as you conduct more operations with good ratings.

When you create an offer, it will include by default the number of successful operations you've conducted, the ratings received from your counterparts, and the number of operations performed. We recommend considering all these aspects when accepting an offer to avoid scams.

Reputation System

How do I create a sell order?

When chatting with @DigitalP2PBot you will find a "Menu" button. Click it to display the list of commands you can use. Select the sell command: /sell, to activate the wizard that will guide you through the selling process.

Start the wizard

Once activated, the wizard will ask you to press the button for the token (USDT-USDC) you want to sell:

Fiat currency

Next, you will need to enter the fiat currency you want to exchange for your USDT-USDC, in this case we select the Colombian Peso (COP). Remember that if your currency is not there, you can also write it.

Fiat Amount

The bot will ask you the amount, in Colombian Pesos (COP), that you want to sell, in this example we are going to sell 100000 Colombian Pesos (COP). You can also enter a range of amounts to sell, separating the numbers with a hyphen (-), example (10000-100000)

Amount pesos

The next thing the wizard asks you is the percentage of premium or discount you want on your trade. If you want to increase the market rate (premium), select a positive number; if you want to decrease it (discount), select a negative number. If you don't want any, use the "No discount no premium" button.

Premium or discount

Next, you will need to specify the payment method. In this field, you can get creative and add emojis or whatever you think will make your request attractive.

channel-publication

The bot will then post your offer to the community offers channel.

Cancel order command

The offer will remain visible for 23 hours in the order channel, if no one takes it before that time the offer is automatically deleted.

Order cancelled

You can cancel the offer at any time, as long as no one has taken it, by using the /cancel command followed by the order ID. You can also copy the command plus the ID into the chat with the bot. The assistant will return a message confirming the cancellation and your offer will be removed from the offer channel.

Order cancelled

In case your sale is taken, the bot will ask your counterparty to enter an address where to receive the USDT-USDC.

At the same time, it will ask you to pay the corresponding USDT-USDC amount, plus a 0.6% fee. Please note that the network may charge you an additional amount. That amount will depend on network congestion. The bot has nothing to do with that amount.

At this point the bot will put both parties in contact to discuss the details of the exchange.

Once the bot receives notice that the fiat amount was paid, it sends you an alert to check your account. If everything is in order, you can release the USDT-USDC command /release followed by the transaction identifier (or copy and paste the text into the bot chat) and the transaction will be executed.

The exchange is finished. Now you can rate your counterparty.

You can exit the wizard at any time by executing the /exit command.

To execute the same sell order, without using the wizard, you need to write your order with the details: /sell [premium/discount] (without the special characters).

Example: /sell 100 400000 COP "bank xyz" I sell one hundred dollars for four hundred thousand pesos, I charge by bank xyz.

In case there is any unsupported variable, the bot will indicate it to you during the order creation process. Once completed, the order will be published in the exchange channel and will be visible for a period of 23 hours.

How do I create a buy order?

The procedure is exactly the same as for a sell order. However, when you press the "Menu" button, select the /buy command instead of /sell. This will activate the wizard that guides you through the buying process.

Once activated, the wizard will prompt you to specify the fiat currency you want to transact with:

Fiat currency

Next you will need to enter the token (USDT-USDC) you want to buy.

Fiat amount

Next, you will need to enter the fiat currency with which you will buy USDT-USDC, in this case we select the Colombian Peso (COP). Remember that if your currency is not there, you can also write it.

Satoshi amount

The bot will ask you the amount, in Colombian Pesos (COP), that you want to buy, in this example we are going to buy 100000 Colombian Pesos (COP). You can also enter a range of amounts to buy, separating the numbers with a hyphen (-), example (10000-100000)

Premium or discount

The next thing the wizard asks you is the percentage of premium or discount you want on your trade. If you want to increase the market rate (premium), select a positive number; if you want to decrease it (discount), select a negative number. If you don't want any, use the "No Discount No Premium" button.

Payment method

Next, you'll need to specify the payment method. In this field, you can get creative and add emojis or whatever you think will make your offer attractive.

Published offer

The bot will then post your offer on the community channel digitalp2porders

Published offer

This order will remain visible for 23 hours on the channel digitalp2porders, if no one takes it before that time the order is automatically cancelled and you will have to create a new order.

Published offer

At any time, you can cancel the offer, provided no one has taken it, using the command /cancel followed by the order identifier. You can also copy the command plus the identifier in the chat with the bot. The wizard will return a message confirming the cancellation, and your offer will be removed from the offers channel.

Cancel order

In case your offer is accepted, the wizard will ask you to enter a Polygon address where you will receive the USDT-USDC. At the same time, it will ask your counterparty to send the USDT-USDC to the smart contract address.

At this point, the bot will connect both parties to discuss the exchange details.

Once you've made the fiat payment, notify the bot with the command /fiatsent. The bot will inform your counterpart to check and confirm the receipt of the money and proceed to release the USDT-USDC.

The exchange is completed. Now you can rate your counterpart.

You can exit the wizard at any time by executing the command /exit.

To execute the same buy order without using the wizard, you must write your order details: /buy <USDT amount> <fiat amount> <fiat code> <payment method> [premium/discount] (without special characters).

Example: /buy 25 100000 COP "xyz bank"

Buying twenty five USDT for one hundred thousand Pesos paying through xyz bank.

Some examples of buy orders would be:

  • Ex. /buy 0 50 ves "xyz bank": Buying fifty bolivars in USDT - in this case, the bot will calculate at the market rate - paying via xyz bank
  • Ex. /buy 0 10000-100000 cop "X Bank": Buying from 10.000 to 100.000 Colombian Pesos - in this case, the seller will choose the amount to sell you within that range - paying via X bank.
  • Ex. /buy 0 100 eur "Euroya" -3: Buying 100 euros with a 3% discount - in this case, the bot will calculate at the market rate by discounting or increasing the percentage you choose - paying via Euroya.

If there's any incompatible variable, the bot will indicate it during the order creation process. Once completed, it will automatically publish on the exchange channel and remain visible for a period of 23 hours.

How do I search for and accept a buying or selling offer?

If you've never used @DigitalP2PBot before, you need to open it and type /start before taking any offers.

You'll find all active offers on the bot at https://t.me/digitalp2porders, including yours.

Buscando ofertas

Review all the previous options until you find an order that suits your search, then click the Buy USDT/USDC or Sell USDT/USDC button, as appropriate. Next, go to the chat with @DigitalP2PBot to follow its instructions.

How do I cancel a posted order?

If the order hasn't been taken, type the command /cancel in your chat with the bot or select it from the "Menu." The bot will display your active orders. Choose the ID corresponding to the order you wish to cancel.

Cancel Order

The ID or unique number of your order appears just below the acceptance and posting message of your order and is even indicated as an option to cancel it. You can also find it by typing the command /listorders.

If your order has already been taken or if you take an order and donโ€™t wish to proceed, you'll need to initiate a cooperative cancellation.

By initiating a cooperative cancellation, your counterpart will be informed of your intent to cancel. If they agree, they'll also write /cancel <order id>, after which the Sats will be returned to the seller.

If your counterpart doesnโ€™t agree to cancel, you can initiate a dispute by typing the command /dispute.

Is there a limit (minimum or maximum) on the amounts I can trade?

Initially the minimum will be 1 dollar and a limit of 1,000 dollars for each transaction, but if you want to trade 5,000 dollars you can make 5 transactions without any inconvenience. However, if you want to trade large amounts we have a VIP channel where the limits are higher, for this you should contact an administrator and discuss your case.

How long does it take to complete a transaction?

It depends on several factors. Being a P2P exchange, the primary variable is the acceptance of your offer by a counterpart. Your listing will be available for up to 23 hours and will automatically be removed if nobody takes it.

Once an offer is accepted, a 30-minute time window opens for the seller to send the USDT-USDC to the smart contract address and the bot to put both parties in contact. From this point, they have a maximum of 72 hours to complete the operation. After this time, the order will be reviewed and the bot will inform a solver of the situation so that he or she can contact the parties and verify the reason why the exchange has not been completed and proceed to release the USDT to whoever is entitled to it. For this reason, users must only use instant fiat money payment methods for their operations.

When both participants are online and agree on immediate payment methods, transactions are nearly instantaneous.

Should I pay fees and commissions?

The bot charges a fixed fee of 0.6%. This fee includes the network fee, so there are no additional charges. This commission is paid only by the seller, not the buyer.

Commissions

What exchange rate does the bot use?

When creating an order, you can choose to specify only the fiat amount to pay/receive, without indicating the quantity of USDT-USDC you want to buy/sell. In this case, you should select the Market Price button, and the bot will calculate the market rate offered by yadio.io at the moment your order is taken.

Market Price

When you select the Market Price button, you can also set a premium or discount for your offer. This means an increase or decrease will be applied to the bitcoin price indicated by yadio.io at the time the offer is taken.

Practical examples with their meanings:

  • Buying USDT +1%: I want to buy USDT 1% more expensive (above) than the USDT price indicated by yadio.io at the time someone takes my offer.

  • Buying USDC -5%: I want to buy USDC 5% cheaper (below) than the USDC price indicated by yadio.io at the time someone takes my offer.

  • Selling USDT +3%: I want to sell USDT 3% more expensive (above) than the USDT price indicated by yadio.io at the time someone takes my offer.

  • Selling USDC -4%: I want to sell USDC 4% cheaper (below) than the USDC price indicated by yadio.io at the time someone takes my offer.

In which countries and languages is it available?

As a P2P exchange on Telegram, technically, it's available for anyone using this app. However, currently, the bot interacts with a list of 94 fiat currencies with which you can create buy/sell orders using the Market Price button on the assistant.

Here's the list. To view it within @DigitalP2PBot, type /listcurrencies.

CodeNameFlag
AEDUnited Arab Emirates Dirham๐Ÿ‡ฆ๐Ÿ‡ช
ANGNetherland Antillean Guilder๐Ÿ‡ง๐Ÿ‡ถ
AOAAngola Kwanza๐Ÿ‡ฆ๐Ÿ‡ด
ARSPeso argentino๐Ÿ‡ฆ๐Ÿ‡ท
AUDAustralian Dollar๐Ÿ‡ฆ๐Ÿ‡บ
AZNAzerbaijani Manat๐Ÿ‡ฆ๐Ÿ‡ฟ
BDTBangladeshi Taka๐Ÿ‡ง๐Ÿ‡ฉ
BHDBahraini Dinar๐Ÿ‡ง๐Ÿ‡ญ
BIFBurundian Franc๐Ÿ‡ง๐Ÿ‡ญ
BMDBermudan Dollar๐Ÿ‡ง๐Ÿ‡ฒ
BOBBoliviano๐Ÿ‡ง๐Ÿ‡ด
BRLBrazilian Real๐Ÿ‡ง๐Ÿ‡ท
BWPBotswana Pula๐Ÿ‡ง๐Ÿ‡ผ
BYNBelarusian Ruble๐Ÿ‡ง๐Ÿ‡พ
CHFSwiss Franc๐Ÿ‡จ๐Ÿ‡ญ
CADCanadian Dollar๐Ÿ‡จ๐Ÿ‡ฆ
CDFCongolese 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๐Ÿ‡ญ๐Ÿ‡ฐ
HUFHungarian Forint๐Ÿ‡ญ๐Ÿ‡บ
HNLHonduran Lempira๐Ÿ‡ญ๐Ÿ‡ณ
IDRIndonesian Rupiah๐Ÿ‡ฎ๐Ÿ‡ฉ
ILSIsraeli New Sheqel๐Ÿ‡ฎ๐Ÿ‡ฑ
INRIndian Rupee๐Ÿ‡ฎ๐Ÿ‡ณ
JMDJamaican Dollar๐Ÿ‡ฏ๐Ÿ‡ฒ
JPYJapanese Yen๐Ÿ‡ฏ๐Ÿ‡ต
JODJordanian Dinar๐Ÿ‡ฏ๐Ÿ‡ด
KESKenyan Shilling๐Ÿ‡ฐ๐Ÿ‡ช
KGSKyrgystani Som๐Ÿ‡ฐ๐Ÿ‡ฌ
KRWSouth Korean Won๐Ÿ‡ฐ๐Ÿ‡ท
KZTKazakhstani Tenge๐Ÿ‡ฐ๐Ÿ‡ฟ
LBPLebanese Pound๐Ÿ‡ฑ๐Ÿ‡ง
LKRSri Lankan Rupee๐Ÿ‡ฑ๐Ÿ‡ฐ
MADMoroccan Dirham๐Ÿ‡ฒ๐Ÿ‡ฆ
MGAMalagasy Ariary๐Ÿ‡ฒ๐Ÿ‡ฌ
MLCMoneda Libremente Convert.๐Ÿ‡จ๐Ÿ‡บ
MXNPeso mexicano๐Ÿ‡ฒ๐Ÿ‡ฝ
MYRMalaysian Ringgit๐Ÿ‡ฒ๐Ÿ‡พ
NADNamibian Dollar๐Ÿ‡ณ๐Ÿ‡ฆ
NGNNigerian Naira๐Ÿ‡ณ๐Ÿ‡ฌ
NIONicaraguan Cรณrdoba๐Ÿ‡ณ๐Ÿ‡ฎ
NOKNorwegian Krone๐Ÿ‡ณ๐Ÿ‡ด
NPRNzepalese 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๐Ÿ‡บ๐Ÿ‡ธ
UYUPeso uruguayo๐Ÿ‡บ๐Ÿ‡พ
UZSUzbekistan Som๐Ÿ‡บ๐Ÿ‡ฌ
VESBolรญvar๐Ÿ‡ป๐Ÿ‡ช
VNDVietnamese Dong๐Ÿ‡ป๐Ÿ‡ณ
XAFCFA Franc BEAC๐Ÿ‡จ๐Ÿ‡ฒ ๐Ÿ‡จ๐Ÿ‡ซ ๐Ÿ‡จ๐Ÿ‡ฌ ๐Ÿ‡ฌ๐Ÿ‡ฆ ๐Ÿ‡ฌ๐Ÿ‡ถ ๐Ÿ‡น๐Ÿ‡ฉ
XOFCFA Franc BCEAO๐Ÿ‡น๐Ÿ‡ฉ ๐Ÿ‡ง๐Ÿ‡ซ ๐Ÿ‡จ๐Ÿ‡ฎ ๐Ÿ‡ฌ๐Ÿ‡ผ ๐Ÿ‡ฒ๐Ÿ‡ฑ ๐Ÿ‡ณ๐Ÿ‡ช ๐Ÿ‡ธ๐Ÿ‡ณ ๐Ÿ‡น๐Ÿ‡ฌ
ZARSouth African Rand๐Ÿ‡ฟ๐Ÿ‡ฆ

For now, @DigitalP2PBot is fully available in English and Spanish.

To change the assistant's language, use the /setlang command.

If you'd like to help translate DigitalP2PBot into your language, you can propose your collaboration in @DigitalP2PChat

Recommended Wallets

The following wallets have shown better performance when used with @DigitalP2PBot:

Notes on other wallets

-Before selling or buying USDT/USDC using any wallet, make sure to check if it supports Polygon network

Common Problems and Solutions

I'm trying to take an order, but nothing happens

When you press the Buy USDT or Sell USDT button on an offer, @DigitalP2PBot will respond privately with what you need to do to complete the process. For the bot to respond to your request, it's necessary to initialize it because no bot can open a chat with you initially if you haven't used it before. Open @DigitalP2PBot and type the command /start or tap the Start button, then try taking the order again, return to the bot, and follow its instructions.

My counterpart had an issue sending me the fiat payment and then disappeared; my USDT-USDC got stuck

Please DO NOT worry, the transaction will NOT be automatically cancelled. You must open a dispute with the command /dispute <order id>, so that the solver will return the USDT-USDC to you.

A user mistakenly took my purchase, and I've already made the payment in satoshis

A cooperative cancellation can be initiated. Both parties need to execute the command /cancel <order id>.

I canceled an order, but the USDT-USDC haven't returned to my wallet. How long should I wait?

When an order is cancelled, the seller's USDT-USDC is immediately returned to the wallet that made the payment. Sometimes the USDT-USDC can take from a few minutes to a couple of hours depending on network congestion, but in all wallets 100% of your funds are returned, please be patient.

I'm buying, and the bot doesn't ask me for an address; instead, it directly connects me with the seller

This happens when you have polygon address activated. In that case, the purchased usdt-usdc will be sent directly there without asking for a new address for each purchase. To check your address, type the command /settings within the bot. If you want to change the address, type the command /setwalletaddress within the bot.

How do I know if the seller actually released the USDT-USDC?

If @DigitalP2PBot tells you that the vendor released, it really is, but if you want to verify it you can do it as follows:

Write to the bot /listorders and if the bot is still in the process of paying your invoice the status you will see will be RELEASE, if the bot has already paid the invoice the order will not appear on the list.

When an order has status RELEASE, the seller no longer has any responsibility because he/she has released the USDT-USDC, if you have problems receiving go to the section The seller released but I don't get the USDT-USDC in my wallet.

The seller released, but I haven't received the USDT-USDC in my wallet

Possible Causes

Sometimes the network is congested and this delays the transaction.

Solution

Waiting is the best option in this case, but if the transaction is taking a long time you can check with the support community on Telegram and report the situation with the order ID.

Support

@DigitalP2PBot isn't a company, so it doesn't have a technical support department. However, there's a community you can turn to if you need assistance.

The main Telegram group where you can ask for help is:

Contacting Developers

If you need to get in touch with the developers of @DigitalP2PBot, use our GitHub. If you have a proposal or wish to report an issue, navigate to the issues section and create a new one.

I'm a developer and want to contribute

Great! Thank you for your interest. In the issues section, you'll find a list of tasks to be resolved. Choose one labeled [help wanted]. If you have any doubts, feel free to ask by commenting. Then, if you're sure you want to tackle it, comment on the issue. Those tagged [good first issue] are often simple and serve as a good starting point to familiarize yourself with the code.

Since the inception of this project, we aimed to operate @DigitalP2PBot without making much noise. It was crucial to test the bot within a small community before showcasing the final product to the world. That's why we started working with the community, which welcomed the project very positively. The feedback received has allowed the bot to grow and improve every day.

Community

The Community was designed so that users can interact and ask questions they may have regarding how @DigitalP2PBot works.

Trust

The model we have chosen to resolve disputes is that of trust. This seems paradoxical for those who work with cryptocurrencies and advocate of "trustless" systems. The truth is that the goal is to develop systems in which we do not have to trust anyone. But after thinking a lot about dispute resolution systems, we had to accept that you always have to trust someone to some extent.

Benevolent Dictator

Having accepted that trusting someone is necessary to resolve a dispute, how can we create fewer incentives for disputes to arise? Regarding this matter, the community has proposed several ideas. The one we've developed is to utilize the concept of a "benevolent dictator." This individual acts as a "dictator" whom people accept and trust to make decisions for the community's welfare. Let's say it's a trusted mediator within the community.

The benevolent dictator is the creator of the community, responsible for appointing dispute solvers or 'solvers'. These individuals are publicly recognized within the community (by their Telegram username). The community is responsible for reporting if these users are performing their duties correctly or not. In a community where the "benevolent dictator" selects solvers correctly, everything will function well. In a community where the dictator makes mistakes, community members might move to another service.

What is a solver

Solvers are users appointed by the community administrator and are responsible for resolving disputes and maintaining order.

The community must have at least one solver. There is no requirement to be a solver. The administrator can add or remove them at any time.

The administrator can be a solver in his community.

Resolving disputes

When a user initiates a dispute, a message will be sent by the bot to the dispute channel. Only the solvers can take them by clicking the Take dispute button. Before taking a dispute, the solver must ensure they have the community set up. To set up the community, the solver should run the command /setcomm @community-group. Dispute Capture

Once the solver takes the dispute, the bot will send them all the necessary information to resolve it, including the token number of the seller and buyer; this number is different for each one. The solver must contact both and tell them their token number so they can verify that they actually took the dispute. Then, they must request the necessary evidence to understand what happened and complete the order or cancel it.

Dispute details Capture

Completing an Order

Many disputes arise because one of the parties took time to respond to a message, there was a misunderstanding, or there was a delay in a payment. These are straightforward cases that only require patience and assistance in communication.

Other cases involve malicious intent, such as when a seller wants to keep the fiat money and get the USDT-USDC returned. In these cases, the solver can execute the /settleorder command, which recognizes the received payment and automatically sends the USDT-USDC to the buyer.

Completing an Order

Completing an order when fiat takes too long to arrive

With @DigitalP2PBot, payment methods that guarantee instant fiat delivery must be used. However, there may be cases where fiat takes longer than usual to reach the seller of USDT-USDC, for example, due to problems with payment processing by the bank, which is where users can turn to the community solvers who will act as mediators and resolve the issues.

A solver can release USDT-USDC to both the seller and the buyer depending on the support the parties provide to resolve the dispute.

Canceling an order

The other alternative that the solver has is to cancel the order if the case warrants it. To do this, use the /cancelorder command. This returns the sats to the seller.

Cancel order capture

Removing disputes

Every time a user initiates a dispute, both he and his counterpart are involved in it. Until it is resolved, both remain related, when resolved, the solver has the power to eliminate this dispute from one of the users or both, if he needs it, with the command /deldispute username order-id.

Deleting a Capture dispute

Banning a User from the Community

If a solver deems it necessary, they can ban a user from the community using the command /ban followed by their username.

Secure Exchanges on @DigitalP2PBot

@DigitalP2PBot is a secure tool for peer-to-peer bitcoin exchange without KYC. When two individuals connect to engage in a purchase, the seller's USDT remain locked in a samart contract and cannot be utilized while in this state. Once the buyer sends fiat money and the seller confirms to the bot that they've received it, the USDT are transferred from the smart contract to the buyer.

The bot incorporates a user reputation system that considers the number of successful transactions and received ratings. Moreover, it displays the duration for which a person has been using the platform. These details can assist you in making decisions regarding accepting or declining offers according to your own interests.

Additionally, the @Digitalp2pchat community have Solvers responsible for mediating disputes that may arise. They request necessary evidence from the involved parties and determine the rightful recipient of the USDT-USDC. If a scammer is detected, they are permanently banned from using the bot.

Scam Attempts

Scam attempts using the bot are not frequent, but like any decentralized, KYC-free peer-to-peer exchange, it's not immune to them. To avoid falling victim to scams, caution must be exercised, being attentive to suspicious behavior, and in case of doubt, cancel the operation or open a dispute.

Possible Scams:

  • A scammer trying to buy USDT might use the /fiatsent command to claim they've sent fiat money when, in reality, they haven't, hoping the seller will trust their word and release the USDT without verifying the receipt of fiat. It's crucial for the seller to ensure they've received fiat before using the /release command, even if the buyer sends an image as proof of payment, as it could be manipulated.

  • Some fiat payment methods are reversible, like PayPal, which scammers can exploit to purchase USDT and then reverse the fiat transfer. We recommend using only irreversible payment methods to avoid this type of scam.

  • Some scammers establish multiple operations within the bot to build relationships with users and then contact them privately to persuade them to conduct transactions outside the bot. This is risky as there's no guarantee they'll fulfill their part. We recommend not engaging in transactions outside the bot, even if the offers seem enticing. You can suggest conducting them using @DigitalP2PBot for mutual security.

  • There may also be impersonators of administrators and solvers who message users to ask for money or persuade them to press /release or /cancel on an order, request payment of an invoice to "cancel the order later," etc. Always verify the legitimacy of the person messaging you. You can check who the administrators are in the community.

Tips to Avoid Scams

  • If you're using @DigitalP2PBot for the first time, educate yourself about how it works, review available documentation, and start with small amounts until you fully understand the process.

  • Before accepting an offer, check the user's reputation, the number of trades, the bot usage time, as well as the trade volume if visible. Be wary of offers that seem too good, especially if they come from users with a short history using the bot but with numerous operations.

  • Avoid engaging in trades outside the bot.

  • Do not agree to change the fiat payment method if it wasn't part of the initial offer.

  • If you feel uncomfortable with a trade, you can request a cooperative cancellation as long as the fiat hasn't been sent.

  • Exercise caution with new and low-volume communities.

  • Do not agree to trade in another community if it wasn't your choice.

  • If you're planning to open a dispute, do it on time, well before 23 hours have passed since the offer was accepted.

  • If you notice suspicious behavior, report it to the corresponding community administrators. They can take appropriate measures to protect users and inform administrators of other communities.

  • Share only essential personal information necessary for the exchange. Avoid providing more information than necessary, such as your personal phone number, address, etc.

  • If someone you've traded with before sends you fiat money without prior notice (even claiming it was a mistake) and demands you send them the corresponding USDT-USDC, it could be a bridge scam. In such cases, it's advisable to return the fiat to the same account it was sent from and avoid continuing with the forced exchange they're attempting to push you into.

  • An administrator will never message you to resolve an issue unless you first open a dispute. Be cautious of impersonators.

  • If you open a dispute, message the solver indicated by the bot. However, if they message you first, ask for the token number of your dispute to ensure you're speaking with the real solver, as only you and the solver handling your case know this number.

  • An administrator will never ask you to use /release or /cancel. In case of disputes, they have the authority to cancel or complete an order. Be suspicious if an admin asks you to do so and verify their legitimacy.

Account Triangulation Scams or Bridge Scams

This type of scam is challenging to prevent and detect because, from the seller's perspective, everything seems to proceed normally. It's important to note that they can occur in any type of peer-to-peer exchange, not just on @DigitalP2PBot. These scams involve a scammer acting as an intermediary between the victim and the seller, where the seller receives the fiat sent by the victim but hands over the Sats to the scammer.

The scammer offers the sale of products or services (whether it's a second-hand item or even iPhone unlocking) on any social network or specialized platform for buying and selling. When the victim contacts the scammer, they request an upfront payment. Simultaneously, the scammer posts an offer to buy USDT on @DigitalP2PBot (or another peer-to-peer exchange) for an amount equivalent to the fiat they aim to scam (they might put up an offer with a high premium to make it more attractive). When the scammer finds a USDT seller and requests their details to receive the fiat, they provide these details to the victim for the aforementioned upfront payment. Once the victim's fiat reaches the USDT seller and the seller presses the /release command, the USDT are released to the scammer, who disappears and never fulfills the service or sale promised to the victim.

It's crucial to emphasize that the USDT seller is also a victim in this triangulation, as they interact only with the scammer, unaware of a third party in the exchange. They assume that the fiat they receive was directly sent by the buyer of their USDT. However, they might face accusations of fraud when their bank details are provided to authorities in a report regarding payment for a service or product that wasn't received. It's advisable not to delete the bot's history or chats with your USDT buyers or to create a backup, as these records might be necessary as evidence to prove that no one was scammed.

Some scammers might even ask for additional personal information from sellers to later share it with the direct victims of the triangulation, creating a sense of trust. Therefore, it's recommended not to provide personal information like phone numbers, full names, or addresses unless it's essential for the payment method used.

Bridge Scam Prevention

There isn't a foolproof method to completely prevent a seller from engaging in a bridge scam. However, besides following the previously mentioned tips to prevent scams, there are other measures you, as a seller, could take to reduce the risk, such as:

  • If you want to make a large sale of USDT, it's preferable to split it into several smaller sales, unless the buyer has a good history of transactions with you and consistently uses the same bank account.

  • Be cautious if a buying offer seems too good to be true; it might be a scam.

  • In fiat payment methods that allow adding comments to the transfer, you could ask the buyer to write a specific phrase you mention at that moment, like "I'm buying an orange." This way, if they were a scammer, they'd have to ask the victim to write that comment to send the fiat, which could raise suspicion as it's highly unlikely that they are buying an orange.

  • You can modify that phrase to a numerical code or another message you find appropriate to prevent a scam. Another method, though not highly recommended due to privacy concerns, is to request the phrase to be: "This payment is for a purchase of X USDT on @DigitalP2PBot for order ID: Y."

  • Some fiat payment methods don't allow adding comments but reveal both parties' phone numbers. In such cases, you could ask the buyer, before releasing the Sats, for an SMS from the number that sent the fiat, containing any of the aforementioned messages or similar messages. Another approach could be a call initiated by them or you, directly confirming no third-party involvement in the fiat transfer.

  • Another option, not highly recommended if you wish to respect the buyer's privacy, is to request a video call on Telegram where they show they possess the card from which they sent the money. However, they don't need to show their face for this purpose.

Remember, if you're uncomfortable with a transaction, you can engage in a cooperative cancellation with /cancel and return the fiat to the same account from which it was sent. If the other party is unwilling to cooperate, you should open a dispute with /dispute and wait for a solver to resolve the case.

The preventive measures mentioned here may not apply to all fiat money payment methods. If you're aware of other methods, please share them and contribute to preventing scams.

How to contribute?

DigitalP2PBot is a fully open-source project, maintained by the community. Many users ask how they can contribute, or if code knowledge is necessary to do so. In this section, we present some ways in which you can collaborate. Although these are not the only ways, any type of help is valuable for the project. Thank you very much for considering it!

  • Translation of the Bot: If you are multilingual, you can help translate the bot into other languages to enhance its accessibility.

  • Report bugs: If you encounter any errors or unexpected behavior in the bot, reporting them is very useful. It helps us improve the stability and quality of the project.

  • Propose improvements: If you have ideas to enhance DigitalP2PBot, we invite you to share them with us. Several important features of the bot have originated from community proposals.

  • Donations: If you would like to financially support the development and maintenance of DigitalP2PBot, please consider making a donation. Each contribution helps cover hosting, development, and other project-related expenses. You can donate to this polygon address 0x04828440888dbD767FfD55846E75aba5968e9906, thank you!

How to translate the bot?

To translate DigitalP2PBot, you must do a pull request on the GitHub repository https://github.com/DigitalP2PBot

The new yaml file should be named using language codes ISO 639-1, for example, in Spanish it is es, then the name should be es.yaml.

If you are not a technical person, don't worry, just download en.yaml or the translation where you feel most comfortable, translate it and send it to some administrator of the telegram group.

Report bugs

If you encounter any errors or unexpected behavior, please report them to us as soon as possible.

To do so, simply visit https://github.com/DigitalP2PBot/bot/issues and click on New issue. From there, select Bug report, provide a clear title summarizing the issue, and complete the bug report template. Feel free to include any additional information, even if it's not explicitly requested in the template. Once you're done, submit the report by clicking Submit new issue.

Thank you for helping us improve!

Propose improvements

DigitalP2PBot is maintained by its community, and many great improvements have stemmed from user proposals. If you have ideas that could enhance the bot's functionality, streamline user experience, or any other suggestions, feel free to share them. Your input could make a significant difference!

To submit your proposal, visit https://github.com/DigitalP2PBot/bot/issues and select New issue. Choose Feature request, provide a clear title summarizing your proposal, and fill out the information in the template. You're welcome to include additional details, even if not requested in the template. Finally, submit your request by clicking Submit new issue.

Thank you for contributing!