Реалізація P2P-торгівлі в мобільному додатку біржі
Ми, команда з 5+ річним досвідом у розробці мобільних криптобірж, пропонуємо реалізацію P2P-модуля, протестованого на 10+ проєктах. Компанія на ринку з 2019 року, реалізувала 10+ P2P-проєктів. Середня вартість розробки P2P-модуля — від $15,000 до $30,000 залежно від функціоналу. Економія за рахунок готових компонентів — до 40%. 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 P2P-торгівлі: 7 станів
P2P угода проходить через скінченний автомат станів:
| Стан | Дія | Хто виконує |
|---|---|---|
CREATED |
Ордер створено, крипта заблокована в ескроу | Система |
WAITING_PAYMENT |
Очікування оплати фіатом | Покупець |
PAID |
Покупець натиснув «Оплатив» | Покупець |
RELEASING |
Продавець перевіряє надходження | Продавець |
COMPLETED |
Продавець підтвердив, крипта відправлена | Система |
APPEALING |
Відкрито спір (appeal) | Будь-хто |
CANCELLED |
Скасовано | Будь-хто |
У мобільному UI — екран угоди з таймером, інструкцією для поточного етапу та кнопками дій. Таймер оплати (зазвичай 15–30 хвилин) — критично важливий: при спливанні ордер автоматично скасовується. Середній час завершення P2P-угоди — 12 хвилин (дані наших проєктів). P2P-торгівля в 2–3 рази безпечніше ордерної книги завдяки ескроу-захисту та можливості арбітражу. Швидкість угоди в P2P в 10–30 разів нижча, ніж у ордерної книги, але комісія в 2–3 рази менша.
Чому ескроу-захист критичний для P2P?
Ескроу захищає обидві сторони: продавець бачить, що крипта заблокована, і не боїться обману; покупець розуміє, що крипта буде передана після підтвердження оплати. Без ескроу довіра між незнайомими користувачами неможлива. У наших проєктах ескроу реалізований через смарт-контракти на внутрішньому балансі біржі — це гарантує прозорість та виключає спори щодо зняття коштів.
Що таке ескроу в 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-торгівлі
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%) | Залежить від біржі |
Етапи реалізації P2P-модуля для мобільної біржі
- Проєктування архітектури: визначення станів угоди, моделей даних, API.
- Розробка лістингу оголошень з фільтрами та пагінацією.
- Інтеграція ескроу: блокування та розблокування криптовалюти.
- Створення flow угоди з таймерами та автоматичними переходами.
- Реалізація вбудованого чату з підтримкою зображень та push-сповіщень.
- Система арбітражу: подання спору, заморожування чату, рішення арбітра.
- Тестування та запуск: QA на реальних сценаріях.
Що входить у роботу
- Документація: опис API ендпоінтів, конфігурація ескроу, схема станів угоди.
- Доступи: до репозиторію, CI/CD, тестового середовища.
- Навчання: керівництво для техпідтримки з арбітражу.
- Підтримка: 2 місяці технічної підтримки після релізу.
Терміни: MVP P2P модуля — 4–5 тижнів без арбітражу та верифікації; 6–10 тижнів з повним функціоналом. Замовте розробку модуля з гарантією термінів. Зв'яжіться з нами для обговорення вашої архітектури P2P — отримайте консультацію з інтеграції ескроу та чату.







