К содержанию
Работа

PayRue — мультиплатформенный криптокошелёк, обмен и фиатная инфраструктура

PayRue — криптокошелёк, обменник и фиатный контур в одном аккаунте: web, iOS и Android поверх общего backend. Пользователь хранит BTC, ETH, XLM, USDC и собственный токен PROPEL, отправляет и принимает средства по QR, меняет активы между собой и покупает их за фиат с карты или банковского счёта. Мы делали продукт целиком — от blockchain-адаптеров и работы с ключами до KYC/AML, treasury и операционной панели.

Главный экран проекта Нажмите, чтобы рассмотреть
PayRue — мультиплатформенный криптокошелёк, обмен и фиатная инфраструктура 01 / 05
PayRue — мультиплатформенный криптокошелёк, обмен и фиатная инфраструктура — Главный экран проекта
Клиент
PayRue Ltd.
Индустрия
Финтех, Блокчейн
Срок
15 месяцев
Команда
12 человек

Задача

В ранний период работы с криптоактивами пользователь был сам себе интегратором: отдельный кошелёк под каждую сеть, ручное обращение с адресами, memo и сетевыми комиссиями, сторонний обменник для конвертации и ещё один сервис, чтобы завести деньги с карты. Каждый стык — место, где средства теряются: перевод без memo, адрес не той сети, обмен по курсу, который успел уйти.

PayRue сводил это в один продукт с единым аккаунтом, портфелем и историей операций. Сложность здесь не в количестве экранов, а в том, что за ними стоит финансовая система в регулируемом контуре. Баланс не может быть «примерно верным». Депозит, замеченный индексатором дважды, реорганизация блокчейна, задержавшийся webhook провайдера и повторный callback банка не имеют права изменить остаток второй раз. Вывод должен пройти проверку санкционных списков раньше, чем транзакция уйдёт в сеть, а не после. И всё это — на трёх клиентских приложениях, которые обязаны показывать одно и то же состояние.

Решение

Внутренний ledger как источник истины. Пользовательские балансы живут во внутреннем реестре, а блокчейн и внешние финансовые системы регулярно с ним сверяются. Критичные операции идемпотентны и имеют сквозной correlation ID, поэтому повтор запроса — это тот же результат, а не вторая проводка.

Blockchain adapters. Каждая сеть подключена собственным адаптером, скрывающим различия Bitcoin, Ethereum, Stellar и токен-протоколов от остальных сервисов. Адаптер отвечает за выдачу адреса, синхронизацию блоков, обнаружение входящих транзакций, подсчёт подтверждений, подготовку и broadcast исходящей, оценку network fee, обработку reorg, retry и сверку, поддержку memo и tag. Подключение новой сети не трогает KYC, портфель, уведомления и поддержку.

Депозиты. Транзакция замечена индексатором, определены адрес и актив, пройдены risk- и compliance-проверки, набрано нужное число подтверждений, сумма зачислена в ledger, пользователь уведомлён, средства при необходимости консолидированы в treasury-кошелёк. Дедупликация по хешу транзакции и индексу выхода защищает реестр от повторного начисления. Для сетей с memo и destination tag интерфейс показывает оба реквизита и предупреждает о последствиях перевода без них.

Выводы. Перед созданием операции проверяются формат и сеть адреса, доступный баланс, минимальная сумма, лимиты аккаунта, уровень KYC, санкционный и AML-риск, velocity и аномальное поведение, второй фактор, комиссия сети и её текущее состояние. Дальше операция живёт понятным статусом: review, queued, signing, broadcast, confirming, completed, rejected или failed. Крупные и рискованные выводы уходят в ручную compliance-очередь, а не блокируются молча.

Ключи и treasury. Секретный контур отделён от пользовательского API: зашифрованное хранение, разделение hot и cold кошельков, ограниченные signing-полномочия, multi-approval для казначейских операций, allowlist направлений, emergency freeze и аудит каждого запроса на подпись. Поддержка не видит приватные ключи и не может единолично инициировать перевод из treasury.

Котировки и обмен. Котировки собираются из нескольких источников, торговые пары нормализуются, устаревшие и аномальные значения отбрасываются. Пользовательская цена считается с учётом комиссии и доступной ликвидности, а quote выдаётся с ограниченным сроком действия и идентификатором для последующей сверки — по истечении срока расчёт обновляется до подтверждения, а не исполняется по мёртвой цене. Execution service подбирает ликвидность, контролирует проскальзывание, резервирует баланс и проводит атомарные операции по реестру.

Фиат в обе стороны. On-ramp связывает банковский или карточный платёж с покупкой актива: проверка юрисдикции и лимитов, крипто-котировка, payment intent, 3DS или банковская авторизация, подтверждение поступления денег и только затем зачисление. Сценарии declined, pending, expired, reversed и chargeback обрабатываются явно, чтобы необеспеченный актив не попал на баланс. Off-ramp фиксирует котировку, резервирует актив, выполняет обмен и создаёт выплату после compliance-проверки, а settlement-контур сверяет блокчейн, ledger, исполнение на бирже, банковский payout, комиссии и возвраты.

Комиссии и PROPEL. Fee engine складывает сетевую комиссию, transfer fee, комиссию обмена, фиатный сбор, спред, скидку за PROPEL и минимальный порог — пользователь видит финальный расчёт до подтверждения. Конфигурация версионируется, чтобы операцию можно было воспроизвести после изменения тарифов, а правила бонусов и комиссий вынесены в настройки: маркетинг и финансы меняют программу без обновления мобильных приложений.

Compliance с человеком в контуре. Консоль объединяет пользователя, операции и доказательства риска: KYC, sanctions и PEP screening, риск устройства и сессии, скрининг блокчейн-адресов, мониторинг транзакций, velocity-правила, запросы источника средств и неизменяемый аудит. Risk engine не принимает необратимое решение по одному внешнему скорингу — оператор видит причины, исходные данные и историю пользователя.

Результат

Пользователь получил один аккаунт вместо связки из кошелька, обменника и платёжного сервиса: портфель с эквивалентом в фиате, доступным и заблокированным остатком и ожидающими подтверждениями; отправку и приём по QR с сохранением получателя в адресную книгу; конвертацию по зафиксированной котировке; покупку и продажу за фиат; единую историю, где blockchain-, обменные и фиатные операции лежат рядом с хешем, комиссией, курсом и таймлайном статусов.

Операционная команда получила рабочие инструменты, а не доступ к базе: compliance-консоль с очередями и решениями, treasury-панель с hot- и cold-балансами, очередью подписей, нехваткой валюты для сетевых комиссий, расхождениями блокчейна и реестра и состоянием провайдеров, административную панель с блокировкой сессии, заморозкой операции и полным аудитом изменений.

Публичные материалы кампании 2019 года сообщали о более чем 22 000 зарегистрированных пользователях и более чем 4 500 аккаунтах, прошедших KYC, при работающих приложениях Web, iOS и Android.

5 поддерживаемых активов: BTC, ETH, XLM, USDC и PROPEL
12 связанных контуров: от кошельков и обмена до compliance и treasury
3 клиентских приложения на едином backend: web, iOS и Android
15 месяцев срок работы команды из 12 человек
Ещё

Похожие проекты

Всё портфолио
ИИ-коллектор — голосовой агент для работы с задолженностью
Работа Финтех-компания

ИИ-коллектор — голосовой агент для работы с задолженностью

Голосовой агент для разговоров с клиентами, у которых возникла задолженность. Он принимает входящие звонки и сам выполняет исходящие, понимает естественную речь, берёт разрешённый контекст из банковских систем и ведёт диалог от приветствия до зафиксированного результата. Главное архитектурное решение — разделить речь и полномочия: модель свободно формулирует, но не имеет права ни рассчитать условие, ни озвучить предложение, которого не подтвердил отдельный policy engine.

ИИ-сотрудники
RAGNLP
Betald — площадка факторинга с обратным аукционом инвесторов и интеграциями с бухгалтерскими системами
Работа Frenns

Betald — площадка факторинга с обратным аукционом инвесторов и интеграциями с бухгалтерскими системами

Betald — британская площадка факторинга: компания, которой должны денег по выставленному счёту, не ждёт срока оплаты, а продаёт счёт и получает деньги сразу. Отличие от классического факторинга в том, что финансирует не один банк по своей ставке, а множество частных инвесторов, которые торгуются между собой на понижение. Продавец собирает нужную сумму из комбинации предложений, а площадка рассчитывает единую взвешенную ставку сделки.

Кастомная система
MagentoLaravelPHPPython
Green Dot DAMS — внутренняя система управления маркетинговыми материалами
Работа Green Dot

Green Dot DAMS — внутренняя система управления маркетинговыми материалами

Внутренняя система управления цифровыми материалами для маркетинга Green Dot: одна библиотека брендовых файлов с версиями, правами, согласованием и очередью подготовки вместо вложений в почте и папок на сетевом диске. Ключевая деталь — утверждение привязано не к файлу, а к конкретной его версии, поэтому «одобренный макет» всегда означает один определённый файл.

DAMS — управление цифровыми активами
SymfonyPHP
Первый разговор — бесплатно

Расскажите, что хотите изменить

За одну встречу уточним задачу и предложим следующий шаг, даже если вам нужен другой подрядчик.

Что будет на встрече
  1. 01 Опишите задачу своими словами
  2. 02 Уточним цель и ограничения
  3. 03 Предложим решение и следующий шаг
длительность 45–60 мин