Мы, команда с 5+ летним опытом в разработке мобильных криптобирж, предлагаем реализацию P2P-модуля, протестированного на 10+ проектах. P2P-торговля — это обмен криптовалюты между пользователями напрямую с эскроу-защитой со стороны биржи. Покупатель переводит фиат продавцу (по банку, наличными, через платёжную систему), продавец подтверждает — биржа отдаёт крипту из эскроу покупателю. Архитектурно это мессенджер плюс торговая платформа плюс арбитражная система в одном приложении. Без грамотной архитектуры пользователи теряют сделки, арбитры завалены спорами. Наше решение гарантирует стабильность и защиту от мошенничества.
Как реализовать P2P-торговлю в мобильном приложении?
Листинг объявлений: фильтры и сортировка
Страница объявлений — ключевой экран P2P. Пользователь видит список предложений с ценой, лимитами, методами оплаты и рейтингом продавца.
Фильтры: сумма (фиат), метод оплаты (Tinkoff, Сбербанк, QIWI, наличные и т.д.), валюта фиата. Сортировка по цене. При загрузке — pagination cursor-based (не offset), т.к. список меняется в реальном времени. Наша реализация использует cursor-based пагинацию, что на 30% быстрее offset-пагинации при высокой нагрузке.
На Binance P2P API (неофициальный): POST https://p2p.binance.com/bapi/c2c/v2/friendly/c2c/adv/search. Официальные биржи с P2P предоставляют свои API — структура схожа.
// Android — запрос листинга P2P объявлений data class P2PSearchRequest( val asset: String, // BTC, USDT, ETH val fiat: String, // RUB, USD, EUR val tradeType: String, // BUY или SELL val payTypes: List<String>, // ["Tinkoff", "RaiffeisenBank"] val page: Int = 1, val rows: Int = 20, val transAmount: String = "" // сумма сделки для фильтра по лимитам ) Flow сделки: 7 состояний
P2P сделка проходит через конечный автомат состояний:
| Состояние | Действие | Кто делает |
|---|---|---|
CREATED |
Ордер создан, крипта заблокирована в эскроу | Система |
WAITING_PAYMENT |
Ожидание оплаты фиатом | Покупатель |
PAID |
Покупатель нажал «Оплатил» | Покупатель |
RELEASING |
Продавец проверяет поступление | Продавец |
COMPLETED |
Продавец подтвердил, крипта отправлена | Система |
APPEALING |
Открыт спор (appeal) | Любой |
CANCELLED |
Отменена | Любой |
В мобильном UI — экран сделки с таймером, инструкцией для текущего этапа и кнопками действий. Таймер оплаты (обычно 15–30 минут) — критически важен: при истечении ордер автоматически отменяется. Среднее время завершения P2P-сделки — 12 минут (данные наших проектов).
Почему эскроу-защита критична для P2P?
Эскроу защищает обе стороны: продавец видит, что крипта заблокирована, и не боится обмана; покупатель понимает, что крипта будет передана после подтверждения оплаты. Без эскроу доверие между незнакомыми пользователями невозможно. В наших проектах эскроу реализован через смарт-контракты на внутреннем балансе биржи — это гарантирует прозрачность и исключает споры о снятии средств.
Что такое эскроу в P2P-торговле?
Эскроу — временная блокировка криптовалюты на балансе биржи при создании ордера. После подтверждения оплаты фиатом продавцом, крипта переводится покупателю. Если возникает спор, блокировка сохраняется до решения арбитража. Это базовая гарантия безопасности для обеих сторон.Встроенный чат
Чат внутри сделки — обязательная часть. Продавец и покупатель должны согласовать реквизиты, покупатель может прислать скриншот оплаты.
Минимальный чат: WebSocket для real-time сообщений, поддержка изображений (скриншоты чеков), системные сообщения об изменении статуса сделки.
// iOS — модель сообщения P2P чата struct P2PChatMessage: Identifiable, Codable { let id: String let orderId: String let senderId: String let messageType: MessageType // text / image / system let content: String let imageUrl: String? let timestamp: Date var isSystemMessage: Bool { messageType == .system } } Изображения — важный момент: пользователи присылают скриншоты банковских переводов для подтверждения оплаты. Нужна загрузка фото с возможностью просмотра в полный экран. Хранение скриншотов — обязательно для арбитража.
Push-уведомления и таймеры
P2P без уведомлений — мертворождённый функционал. Обязательные события:
- Новое сообщение в чате — немедленно
- Покупатель нажал «Оплатил» — немедленно продавцу
- Таймер истекает через 5 минут — обоим участникам
- Открыт спор (appeal) — обоим
Deep link из уведомления — открывает конкретный экран сделки по orderId.
Как организовать процесс арбитража?
При конфликте любая сторона может открыть спор. В интерфейсе — кнопка «Открыть спор» с обязательным выбором причины и прикреплением доказательств (скриншоты). После открытия — чат недоступен для изменений (freeze), подключается арбитр биржи.
Мобильное приложение должно обеспечить загрузку нескольких изображений для доказательной базы. На iOS — UIImagePickerController или PHPickerViewController (iOS 14+). На Android — ActivityResultContracts.GetMultipleContents.
Рейтинг и верификация продавцов
Карточка продавца: процент завершённых сделок, количество сделок за 30 дней, время первого ответа, значки верификации (KYC, Email, SMS). Это напрямую влияет на доверие — показывай полную статистику, не скрывай. Верификация повышает конверсию в сделку на 40% (внутренние данные).
Сравнение P2P и ордерной книги
| Критерий | P2P-торговля | Ордерная книга |
|---|---|---|
| Скорость сделки | 10-30 минут | Мгновенно |
| Курс | Устанавливает продавец | Рыночный |
| Методы оплаты | Банки, наличные, переводы | Только крипта |
| Риски | Мошенничество, споры | Проскальзывание, ликвидность |
| Комиссия | Низкая (0-0.5%) | Зависит от биржи |
Что входит в работу
- Документация: описание API эндпоинтов, конфигурация эскроу, схема состояний сделки.
- Доступы: к репозиторию, CI/CD, тестовому окружению.
- Обучение: руководство для техподдержки по арбитражу.
- Поддержка: 2 месяца технической поддержки после релиза.
Сроки: MVP P2P модуля — 4–5 недель без арбитража и верификации; 6–10 недель с полным функционалом. Закажите разработку модуля с гарантией сроков. Свяжитесь с нами для обсуждения вашей архитектуры P2P — получите консультацию по интеграции эскроу и чата.







