Необходимо разработать Telegram-бот криптообменника
-
экспресс-обмен (через наши счета по фиату и крипте; соответственно, необходимо функционал пополнения счета, подтверждения поступления нашим оператором, обмена, создания запроса на вывод средств и функционалом вывода средств)
-
ескроу-обмен (пользователь вводит телеграмовский юзернейм партнера, указывает, какую валюту продает и какую покупает, два пользователи и наш модератор стыкуются в чате и совершают сделку, при этом крипта находится у нас в ескроу)
-
P2P обмен (пользователи могут создавать ордера на покупку и продажу крипту, а также брать ордера из тех, что залистены; в ходе сделки создается част с двумя сторонами и модераторами, как при ескроу; по результатам сделки пользователи могут выставлять оценки друг другу; ведется публичная статистика по пользователям: количество совершенных сделок и средний полученный балл)
-
мультивалютность (3 криптовалюты: BTC, ETH, USDT и ряд фиатных валют, которые мы укажем; мы также дадим реквизиты фиатных счетов)
-
мультиязычность (должно быть 4 языка: английский, французский, испанский, португальский; автоматическое предложение языка, исходя из IP пользователя)
-
простенькая админка для подтверждения поступления средств на фиатные средств и для получения заявок на вывод средств (вывод будет осуществлять оператор в ручном режиме).
Базовая структура меню (детали в ходе согласования)
Первое меню:
-
Operations
-
Wallet
-
Settings
-
Support
- При нажатии на Operations:
-
Instant Exchange
-
Escrow Exchange
-
P2P Exchange
При нажатии на Instant Exchange:
Сначала идет выбор валюты, которую пользователь отдает
Затем выбор валюты, которую пользователь получает
Затем отображается курс и предлагается ввести сумму, которую пользователь хочет отдать.
Если этой суммы на балансе, то высвечивается сообщение о необходимости пополнить кошелек
При нажатии на Escrow Exchange:
Cначала запрашивается юзернейм телеграм-пользователя, с которым предполагаетс совершить сделку.
Затем выбирается валюта, которая отдается, и вводится сумма
Затем выбирается валюта, которая получается, и вводится сумма
Затем контрагенту приходит предложение о сделке
Если контрагент сделку принимает, то создается чат сделки с двумя сторонами и модератором
В чате у продавца крипты будут две кнопки: подтвердить получение фиата; указать, что фиат не получил. Если подтверждение получение фиата, то крипта из ескроу переводится на баланс покупателя крипты. Если не подтверждается получение фиата, то соответствующее сообщение направляется оператору (об этом написано в разделе “Админка” ниже)
При нажатии на P2P Exchange:
Сначала запрашивается валюта, которая отдается
Затем запрашивается валюта, которая получается
Предлагается пользователю: (а) просмотреть активные ордера, (б) создать собственный ордер, (в) просмотреть собственные активные ордера
При выборе собственного ордера у пользователя запрашивается сумма резерва, по той валюте, которую он хочет отдать, и мин и макс сделки
При выборе пользователем существующего ордера, пользователь должен указать, конкретную сумму, которую он готов отдать. Сообщение выставляется тому, кто разместил ордер. Если принимается сделка, то создает чат из двух сторон и модератора и дальше тот же алгоритм, что и в случае с Escrow Exchange
- При нажатии на Wallet должны быть три кнопки:
-
Depost
-
Withdraw
-
Balance
При нажатии на кнопку Deposit сначала пользователю предлагается выбрать валюту, а затем выдаются реквизиты счета в фиате или адреса кошелька, на который он должен перевести средства. После перевода, пользователь должен нажать, что оплатил. Эта информация передается оператору (а админку на сайте или, если проще, в специальный телеграм-канал)
При нажатии на кнопку Withdraw сначала пользователю предлагается выбрать валюту, затем указать выводимую сумму, а затем указать реквизиты счета в фиате или адреса кошелька, на который он хочет вывести средства. После перевода, пользователь должен нажать, что оплатил. Эта информация передается оператору (а админку на сайте или, если проще, в специальный телеграм-канал).
При нажатии на кнопку Balance пользователю отражается баланс средств во всех имеющихся у него валютах.
-
При нажатии на Settings должны пока должна быть одна кнопка выбора языка (языки у нас будут: английский, французский, испанский, португальский)
-
При нажатии на Support должны быть четыре кнопки:
-
Ask
-
Join Community
-
Fees
-
Rates
При нажатии на кнопку Ask идет переход в чат-бот, который мы сами создадим
При нажатии на кнопку Join Community идет переход в группу, которую мы сами создадим
При нажатии на кнопку Fees выдается текстовая информация, которую мы предоставим
При нажатии на кнопку Rates выдается информация о текущих курсах обмена в разделе Instant Exchange
Админка
Админку можно делать отдельно на сайте, а можно просто сделать в телеграме и она будет состоять из:
-
телеграм-канала, в который будет дублироваться информация о совершенных операциях (такой-то пользователь пополнил кошелек на такую-то сумму; такой создал заявку на вывод; такой-то провел обмен)
-
телеграм-канала или группы, в которую будет приходить информация о том, что произошло полнение счета в фиате, с возможностью для оператора подтвердить или нет поступление средств; а также будет происходит поступление реквизитов и суммы, на которые нужно вывести средства по фиату или крипте; а также будут происходить уведомления от пользователей при P2P сделке, что ему не перевели фиат (соответственно, если оператор подтверждает, что фиат не получил, то крипта из ескроу воз
-
телеграм-канала, группы или бота (на выбор программиста), в котором админ будет прописывать курс покупки и продажи каждого фиата к USDT (курс к фиата к BTC и ETH должен высчитываться автоматически на основе прописанного курса к USDT и подгруженного извне по API курса BTC и ETH к USDT в данный момент).
Подвязывание кошельков
Нужно привязать, какие-то кошельки для приема BTC, ETH, USDT (TRC-20). Это может быть Binance API или кошельки Blockchair, Blockchain.com, coinbase commerce, coinpayments. Надо будет изучить и выбрать.
Наверно, можно начать с Binance API и автоматически подгружать курс с Binance-а и через Binance проводить в автоматическом режиме обмен крипты на крипту в Instant Exchange.