Для кошельков
Баланс, история и уведомления.
Без своего индексера.
Кошелёк живёт на трёх вопросах: сколько у меня, что происходило, дошло ли. Settla отвечает на все три по одному ключу в четырёх сетях — без нод, которые нужно синхронизировать, без индексера, который нужно переиндексировать, и без дежурного в четыре утра.
- 4
- Сетей в проде
- 18 ms
- Ответ по балансу
- 0.4 s
- От блока до вебхука
- 99.99%
- Аптайм · 30 дней
Балансы портфеля
api.settla.net/v1/portfolio/balances
один ключ
BTCBitcoin0.482319 ms
ETHEthereum1.28417 ms
SOLSolana214.6215 ms
TRXTron18 42019 ms
Все сети · один запрос 21 ms
Анатомия
Каждая часть экрана — это один вызов
Возьмите любой элемент кошелька — панель покажет маршрут, который его наполняет. Платёж, который приходит сам, устроен так же, только запрашивать его не нужно: это вебхук.
Вызовы за этим экраном
Выберите элемент кошелька — подсветится его вызов
один ключ
- Баланс/v1/eth/balance/0x9f2c…18 ms
- Балансы токенов/v1/eth/tokens/0x9f2c…24 ms
- История переводов/v1/eth/transfers26 ms
- Входящий платёжwebhook: tx.confirmed live
- Оценка комиссии/v1/fees/estimate14 ms
- Отправка в сетьeth_sendRawTransaction21 ms
Все вызовы идут по одному ключу p50 21 ms
Доставка событий
Уведомление приходит один раз и вовремя
Опрашивать блоки ради зачислений — это воркер, отставание и одно и то же событие дважды. Вебхук — это обработчик HTTP на вашей стороне, всё, что до него, наше.
Повторы с задержкой
Пять попыток в течение часа, пока эндпоинт не ответит 2xx. Недоставленные события видны в кабинете.
Одно событие — один id
Каждая доставка несёт тот же event id, поэтому повтор отсекается вашим ключом идемпотентности.
Реорг — тоже событие
Если блок откатился, придёт tx.reverted, а не тишина и баланс, который перестал сходиться.
Подписанные события
Подпись HMAC в заголовке: обработчик убеждается, что событие от нас, прежде чем что-то зачислять.
От блока до вашего обработчика
Медиана по четырём сетям
- Пришёл блок0 msНода в ближайшем регионе видит блок с вашей транзакцией.
- Транзакция разобрана+180 msИз блока распакованы переводы, движения токенов и внутренние вызовы.
- Адрес сопоставлен+240 msПеревод сверен с адресами, на которые вы подписаны.
- Вебхук доставлен+410 msПодписанный POST уходит на ваш эндпоинт, и пользователь видит платёж в приложении.
Порог подтверждений задаёте вы: вебхук может срабатывать на первом блоке или на том числе подтверждений, которого требует ваша политика рисков.
Сети
Один ключ на четыре сети, и их различия не протекают в ваш код
Адресная модель, порог зачисления и механика комиссии в каждой сети свои. Форма ответа — одна.
BitcoinBTC
- Модель адресов
- UTXO, выходы
- Подтверждений для зачисления
- 3 · ≈ 30 мин
- Отправка
- sendrawtransaction
EthereumETH
- Модель адресов
- Счёт и nonce
- Подтверждений для зачисления
- 12 · ≈ 2 мин
- Отправка
- eth_sendRawTransaction
SolanaSOL
- Модель адресов
- Счёт и nonce
- Подтверждений для зачисления
- 32 · ≈ 13 с
- Отправка
- sendTransaction
TronTRX
- Модель адресов
- Счёт и энергия
- Подтверждений для зачисления
- 19 · ≈ 57 с
- Отправка
- broadcasttransaction
Тестовые сети устроены так же — меняется только сегмент сети в адресе.
Чего не будет
Часть кошелька, которой не видит пользователь
Экран собирается за день. Всё, что под ним, — причина, по которой мультичейн-кошелёк выходит в прод на полгода позже плана.
Своя инфраструктура
На Settla
Своя инфраструктура
Полные ноды в четырёх сетях: терабайты состояния, обновления клиентов, форки по выходным.
На Settla
Четыре эндпоинта и один ключ. Форки и обновления — наше дежурство, не ваше.
Своя инфраструктура
Индексер и база под балансы и историю, которые переиндексируются после каждого реорга.
На Settla
Балансы, токены и история переводов приходят готовыми ответами.
Своя инфраструктура
Воркер, который опрашивает блоки ради зачислений: он отстаёт и присылает одно событие дважды.
На Settla
Вебхук с повторами и event id — дедупликация укладывается в одну строку обработчика.
Своя инфраструктура
Мониторинг, алерты и кто-то, кто проснётся, когда нода встанет ночью.
На Settla
99.99% аптайма, страница статуса и поддержка с ответом за два часа.
Вопросы
О чём спрашивают команды кошельков
Инфраструктура не должна вас тормозить.
Старт бесплатный. Карта не нужна.