Suward
БЕЗОПАСНОСТЬ

Безопасность для движения денег

Восемь рук, одна задача: довести деньги до вас и доказать, что они остались. Платёж держится до заданного порога финальности — с перепроверкой при reorg, идемпотентными API, атомарными балансами без ухода в минус, API-ключами со скоупом и 2FA. И так же прямо говорим, чего пока не умеем.

Как мы защищаем ваши платежи

Приём крипты ломается в конкретных, скучных местах. Блок пере-собрался. Ретрай списал дважды. Один утёкший ключ открыл всё. Каждая карточка ниже — часть, которую Suward уже выполняет в коде, а не обещание, и любую можно открыть и разобрать.

Защита от reorg

Никаких зачислений по одному блоку. Платёж идёт Pending → Safe → Finalized — с авто-перепроверкой до финальности и ручным ReverifyBlock на краевые случаи.

Идемпотентность

Отправьте тот же create-запрос дважды с его Idempotency-Key — вернётся тот же платёж, а не второе списание.

Надёжная внутренняя обработка

Внутри Suward outbox переносит статус-события из монитора в cryptopay, чтобы сбой сервиса их не потерял. Статус вы читаете опросом API, а не из вебхука.

Подтверждения и финальность

У каждой сети свой required_confirmations: 12 на Ethereum, 15 на BSC, 128 на Polygon. Быстрый L2 и склонная к reorg сеть набирают доверие по-разному.

API-ключи и rate-limit

Ключи скоупятся по проектам. Ротируйте legacy-ключ или ведите несколько именованных v2-ключей и отзывайте по одному. Запросы лимитированы по частоте.

2FA и доступ команды

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

Атомарные балансы

Каждое зачисление атомарно и хранится как Decimal128, делится на safe и accepted и никогда не уходит ниже нуля.

Хранение средств

HD-адреса в сетях EVM, уникальный депозитный адрес на каждый платёж. Вывод сегодня проходит проверку оператором. Авто-вывод on-chain — в roadmap.

Reorg

Финальность, которую видно

Цепочка может тихо переписать недавнюю историю. Наивный листенер зачислит этот откатанный блок и не отыграет назад. Suward — нет. Платёж не принимается по одному блоку. Он идёт Pending → Safe → Finalized и держится до заданного порога финальности этой сети, а reorg обрабатывается автоматически до финальности. На редкий краевой случай оператор может вручную перепроверить любой блок через ReverifyBlock.

PendingSafeFinalized
Pending
Safe
Finalized

Деньги, которые сходятся

Decimal128

Балансы

Safe и accepted держатся раздельно. Каждый хранится как Decimal128 — никакого дрейфа float, который потом пришлось бы сводить, а каждое зачисление атомарно. Если reorg сдвинул цепочку под ногами, Suward пересчитывает баланс от on-chain-реальности. В минус он не уходит.

HD wallets

Хранение — без прикрас

Suward работает на HD-кошельках в сетях EVM и выпускает свежий депозитный адрес под каждый отдельный платёж — по этой простой причине два платежа не спутаются в один, а адрес ни разу не переиспользуется. Вывод сегодня идёт через operator-flow. Человек подтверждает txHash. Авто-вывод on-chain — в roadmap, поэтому ручной шаг мы не выдаём за мгновенный.

Доступ и целостность

API-ключи

Legacy-ключи ротируются через RotateAPIKey. Модель v2 добавляет CreateAPIKey и RevokeAPIKey — несколько именованных ключей на проект, каждый со скоупом, чтобы утечка в одном проекте не дошла до других.

Идемпотентность

Idempotency-Key при создании платежа значит, что повторный запрос вернёт исходный платёж. Стройте агрессивные ретраи и ни разу не задвоите платёж.

Внутренняя обработка событий

Outbox переносит статус-события из монитора в cryptopay, чтобы они пережили сбой сервиса. Это внутренняя механика. Статус платежа вы получаете опросом API, потому что вебхуков для мерчанта пока нет.

2FA и роли

Двухфакторка — TOTP плюс backup-коды. Работа делится на организации и проекты, а роли вроде ROLE_OWNER решают, кому что можно.

Инфраструктура и юрлицо

За сервисом стоят health-checks и метрики Prometheus. Страница статуса показывает покомпонентную картину, а не вылизанную цифру аптайма, за которую мы пока не отвечаем. Юрлицо, контакты и юридические документы — на виду, а не спрятаны.

Чего мы не заявляем

Ни SOC 2, ни PCI-сертификата — у нас их нет. Не заявляем паритет фич с крупными шлюзами. Не обещаем instant payout: вывод проверяет оператор. Живых вебхуков мерчанту пока нет, поэтому сегодня вы опрашиваете API. А наш ERC-20-детект читает только calldata transfer() — поэтому мы просим плательщика отправлять стандартный transfer на уникальный адрес. И сказать это прямо — как раз и есть суть.

Безопасность — частые вопросы

Когда он достигает заданного порога финальности своей сети — момента, на котором статус становится Finalized. Это значение своё для каждой сети: 12 подтверждений на Ethereum, 15 на BSC, 128 на Polygon. До этого он на Pending или Safe, и товар вы придерживаете.

Suward пересчитывает баланс от on-chain-реальности. Значения safe и accepted меняются вместе, атомарно, поэтому в реестре не остаётся денег, которые цепочка забрала. Ровно поэтому одного раннего блока для зачисления никогда не хватает.

Пока нет. Сегодня вы запрашиваете статус платежа через API, и этот ответ — источник истины. Вебхуки и live-события SSE в roadmap, помечены Soon, и мы не покажем их готовыми, пока это не так.

API-ключи скоупятся по проектам. С v2-ключами можно вести несколько именованных ключей и отозвать через RevokeAPIKey только скомпрометированный, а заранее созданный ключ держит интеграцию живой. Сверху — TOTP-2FA и роли на аккаунте.

Доверьте платежи восьми надёжным рукам