UbiStake - платформа стейкинга и распределения дивидендов

UbiStake - сервис стейкинга экосистемы Ubix.Network. Он начинался как замена сторонним сервисам, которые перестали быть надёжными, а закончился перестройкой всей экосистемы: единым входом во все продукты, внутренней аналитикой и механизмом, который распределяет прибыль бизнеса между держателями его токена.

UbiStake - платформа стейкинга и распределения дивидендов

Клиент
Ubix.Network
Отрасль
Блокчейн, Финтех
Услуги
Web3 и блокчейн, Бэкенд, Фронтенд, Дизайн, Аналитика, Боты, On-Line сервисы, Аутстафф, Веб-разработка, Программное обеспечение, DevOps, Корпоративные системы, Прототипирование, Разработка MVP, Опыт в Web3, Технический аудит, ИТ-консалтинг
Период
2021-2025

Почему взялись

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

Решение напрашивалось - поднять свой стейкинг. Но одного сервиса было мало: он всё равно остался бы отдельным островом со своей регистрацией. Поэтому задачу поставили шире.

  • Свой стейкинг с автоматическим начислением и выводом без блокировки.
  • Единый вход во все сервисы экосистемы, где есть логин и пароль.
  • Собственная аналитика вместо догадок о том, что происходит.
  • Возможность проверить любое начисление, не веря никому на слово.
  • Цель проекта: удобный и безопасный сервис стейкинга для экосистемы Ubix.Network
    Цель проекта: удобный и безопасный сервис стейкинга для экосистемы Ubix.Network

Единый вход

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

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

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

  • Безопасная и масштабируемая аутентификация: сервер идентификации и доступ по REST API
    Безопасная и масштабируемая аутентификация: сервер идентификации и доступ по REST API

Стейкинг и распределение вознаграждений

Ядро сервиса - контракт, который принимает в стейкинг UBX и другие токены экосистемы и считает вознаграждение сам.

Автоматический расчёт

Вознаграждение зависит от объёма и срока размещения, считается без участия человека.

Ежедневные airdrop

Держателю токена начисляется доля пропорционально тому, сколько он держит.

Периодические выплаты

Дивиденды приходят по расписанию, а не по заявке.

Без блокировки

Забрать средства можно в любой момент.

  • Управление стейкингом и распределение вознаграждений в интерфейсе сервиса
    Управление стейкингом и распределение вознаграждений в интерфейсе сервиса

Распределение прибыли по пользовательским токенам

Эта часть появилась, когда сложились две вещи: единый вход и сервис выпуска токенов без кода.

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

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

Проверить начисление можно в любом сервисе: в кошельке, на бирже, в самом стейкинге. А полную картину поверх блокчейна показывает обозреватель сети.

Платежи и защита средств

Интеграция с платёжным сервисом генерирует одноразовый адрес под каждое пополнение, вывод подтверждается отдельным шагом с ограниченным временем. Одноразовый адрес решает две задачи сразу: платёж однозначно связывается с пользователем, а повторное использование адреса становится невозможным.

  • Обработка платежей: одноразовые адреса пополнения и подтверждение вывода средств
    Обработка платежей: одноразовые адреса пополнения и подтверждение вывода средств

Мониторинг и аналитика

Отдельный сервис собирает статистику по стейкингу и выплатам. Панель администратора показывает её в реальном времени - но не только администратора: свой срез аналитики видел и сам пользователь, прямо в сервисе.

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

С этого началась внутренняя аналитика всей экосистемы - отдельный продукт, который собрал расходы больше десяти проектов в одном месте и раздаёт цифры по той же ролевой модели: менеджерам отчётами на внутренний дашборд, сервисам по API. Отчёт по начислениям и airdrop, который пользователь видит здесь, приходит как раз оттуда. Скриншоты той системы закрыты соглашением о неразглашении, поэтому кейс по ней текстовый.

  • Мониторинг производительности и анализ данных: статистика по стейкингу в реальном времени
    Мониторинг производительности и анализ данных: статистика по стейкингу в реальном времени

Обозреватель сети

Обозреватель - последняя точка проверки для всех сервисов экосистемы. Что бы ни показывал стейкинг, биржа или кошелёк, любое начисление и любую транзакцию можно сверить напрямую с блокчейном.

Требований к дизайну не ставили, поэтому интерфейс прототипировали на Quasar: готовых компонентов хватало, чтобы данные было видно и по ним можно было работать. Так прототип и остался рабочим инструментом.

Основное же было под ним. Серверную часть мы написали целиком, а через несколько лет перевели на более свежий стек.

Инфраструктура

Бэкенд на Node.js 16+ с модульной архитектурой: новое добавляется отдельными частями, не трогая работающее. Основное хранилище - PostgreSQL.

  • Технологический стек платформы стейкинга UbiStake
    Технологический стек платформы стейкинга UbiStake
  • Масштабируемая и надёжная инфраструктура: модульная архитектура на Node.js
    Масштабируемая и надёжная инфраструктура: модульная архитектура на Node.js

Интерфейс

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

  • Дашборд в светлой и тёмной темах
    Дашборд в светлой и тёмной темах
  • Экраны сервиса: пополнение, вывод, настройки и выгрузка операций
    Экраны сервиса: пополнение, вывод, настройки и выгрузка операций
  • Спасибо за просмотр кейса FAMOUS.TEAM по разработке платформы стейкинга UbiStake
    Спасибо за просмотр кейса FAMOUS.TEAM по разработке платформы стейкинга UbiStake

Стек платформы стейкинга UbiStake

  • Vue.js
  • Quasar
  • Node.js 16+
  • PostgreSQL
  • REST API
  • Identity Server
  • Payments Service
  • Analytics Service

Из чего состоит проект

Услуги агентства, которые потребовались для запуска.