назад

6 минут

Конвертер

Контекст

Для лучшего онбординга новых пользователей и простоты обмена одной криптовалюты на другую нужен конвертер, который использует механику спотовой торговли, но комиссию "зашивает" в курс.

Задача

Необходимо реализовать макеты на основе продуктовых требования для конвертера 

Моя роль

Я отвечал за анализ сценария конвертации, исследование пользовательских потребностей, формирование гипотез, проектирование логики quick convert и упрощение пути от выбора активов до завершения обмена.

Результаты

До 38% дополнительного комиссионного дохода может приносить сценарий quick convert за счёт пользователей, которым нужен быстрый обмен без сложного торгового интерфейса.

Что такое конвертер

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

Функциональные требования

Пользователь должен иметь возможность указать следующие данные для начала конвертации: 

  • Монета 1 (исходная, имеющаяся у пользователя) криптовалюта.
    Выбирается в выпадающем списке или через поиск по названию монеты 

  • Монета 2 (целевая) криптовалюта, актив, который пользователь хочет получить.
    Выбирается в выпадающем списке или через поиск по названию монеты

  • Объём монеты 1 / объём монеты 2. Задаётся либо в искодной, либо в целевой валюте.
    При заполнении пользователем одного из полей, второе рассчитывается автоматически с учётом курса обмена 

Процесс конвертации

Выбор монеты 1 и монеты 2

  • Пользователь выбирает исходную монету с помощью выпадающих списков или поля поиска

  • Происходит автоматическая проверка на то, какие пары поддерживаются на спотовом рынке для данной монеты 

  • В выпадающем списке для монеты 2 у пользователя выбор только из поддерживаемых активов (пар, которые представлены у нас на спотовом рынке) 

  • Пользователь выбирает целевую монету с помощью выпадающих списков или поля поиска

  • Пользователь задаёт желаемый объём по исходной или целевой монете 

  • При заполнении пользователем объёма по исходной или целевой монете происходит автоматическое заполнение объёма во втором поле (если задал объём для исходной монеты - автоматически заполнился объём для целевой и наоборот) 

Получение текущего курса на спотовом рынке

  • Происходит автоматический запрос к спотовому рынку для получения актуального курса обмена 

  • Курс обмена отображается пользователю в реальном времени с примечанием, что данный курс является приблизительным и финальный результат будет зависеть от цены на момент исполнения

  • Курс фиксируется на N времени 

  • К текущему курсу по монете прибавляется значение Х - в качестве нашей комиссии за совершение быстрой транзакции 

Подтверждение обмена

  • Пользователь соглашается на предоставленные условия нажатием кнопки "продолжить"

  • У пользователя появляется модальное окно с информацией: 

    • Исходная валюта и объём 

    • Целевая валюта и объём 

    • Обменный курс 

    • Кнопка подтверждения с обратным отсчётом в T времени 

  • Если пользователь не успел подтвердить транзакцию за T времени курс считается устаревшим и кнопка подтверждения заменяется на кнопку "обновить" 

    • При нажатии в модальном окне происходит обновление курса на актуальный 

  • Если пользователь подтвердил транзакцию происходит конвертацию по актуальному курсу 

    • Модальное окно выводит информацию о проведённой сделке: 

      • Исходная монета и объём

      • Целевая монета и объём 

      • фактический курс совершения транзакции 

      • Время конвертации 

      • кнопка "перейти в активы" - при нажатии на неё пользователь перенаправляется в кошелёк

История конвертации

Пользователь может просмотреть истории своих конвертаций в кошельке. Состав стобцов для таблицы истории:

  • Исходная монета 

  • Количество 

  • Целевая монета 

  • Количество 

  • Обменный курс 

  • Статус 

  • Время 

Валидация и ошибки

В случае некорректного ввода монеты (например, если пользователь выбрал неверный объем), система должна вывести соответствующие уведомления на странице конвертации и предложить исправить ошибку

В случае, если система не может получить актуальные курсы с биржи из-за проблем с API или рыночной ликвидностью, пользователь должен получить уведомление о временной недоступности сервиса с предложением повторить попытку позже

Исследование конкурентов

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

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

Решение и User Flow

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

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

Если курс устарел, недостаточно баланса или пара недоступна, пользователь получает понятное состояние ошибки и может быстро обновить расчёт или выбрать другую пару.

Синхронизация с разработкой

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

Результат

В результате был спроектирован простой flow быстрой конвертации, который позволяет пользователю обменять активы без перехода в торговый терминал. Сценарий стал короче и понятнее: пользователь выбирает пару, вводит сумму, проверяет курс и подтверждает обмен в одном месте.