Для DAO и treasury

Distribute treasury. Любая монета, любой кошелёк.

SwapZilla — non-custodial payout-инфраструктура для DAO и treasury. Отправляй гранты, реварды и airdrop на сотни кошельков в одной операции — с idempotency-safe API-гарантиями и any-to-any routing, чтобы контрибьюторы получали именно тот актив, который они попросили.

На что натыкаются treasury-ops команды

01

Один актив на входе, много на выходе

Treasury держит один-два reserve-актива, а контрибьюторы хотят получать разные монеты. Ручная конвертация — full-time работа.

02

Батч-надёжность на масштабе

Отправить на 500 адресов по-одному — это частичные failures, пропущенные ретраи, double-sends и много Etherscan-refresh чтобы всё свести.

03

Custody-контрагент под грант

Использовать custodial-процессор для дистрибуции гранта = доверять им treasury-фонды. Для DAO с обещаниями non-custodial это не ок.

Как это решает SwapZilla

Ты отправляешь batch-выплату — JSON-массив получателей с их активом, сетью и суммой. SwapZilla роутит каждый свап из treasury-актива в актив получателя и исполняет все выплаты под одним idempotency-ключом. Если вызов повторили — ни один адрес не получит дважды. Всё on-chain, verifiable и non-custodial.

Что получаешь

Batch API с idempotency

Отправляешь сотни выплат за один вызов. Повтор ровно того же вызова — no-op, никто не получит дважды.

Any-to-any asset routing

Treasury держит USDT; A хочет BTC, B — XMR, C — ETH. Каждый leg роутится индивидуально по лучшему курсу.

Non-custodial execution

Каждая выплата — прямой wallet-to-wallet transfer через exchange-провайдера. Treasury-средства не заходят в SwapZilla.

Audit-friendly

У каждой выплаты — on-chain транзакция, твой client_order_id и статус, который можно запросить в любой момент.

Как выглядит batch

  1. 1

    Подготовь список получателей

    JSON-массив: address, asset, network, amount, client_order_id на каждого получателя.

  2. 2

    Отправь под idempotency-ключом

    POST batch с одним Idempotency-Key header. Retry безопасен.

  3. 3

    SwapZilla котирует каждый leg

    Актив каждого получателя котируется у всех провайдеров; лучший маршрут выбирается автоматически.

  4. 4

    Execution

    Каждая выплата исполняется как отдельный свап из treasury-актива с отправкой на кошелёк получателя.

  5. 5

    Сверка через status API

    Поллишь batch-endpoint и смотришь per-recipient статус — completed, pending, failed с причиной.

FAQ для DAO / treasury

Какой batch-size поддерживается?

До нескольких сотен получателей на один вызов. Если нужно больше — дели на несколько batch'ей под разными idempotency-ключами.

Как реально работает idempotency-гарантия?

Ты передаёшь Idempotency-Key header. Если повторить тот же вызов — SwapZilla возвращает исходный результат без второго исполнения выплат. Защищает от дубликатов при сетевых сбоях и ретраях.

Можно смешивать активы — USDT одним, BTC другим?

Да. Каждый получатель указывает свой target-актив и сеть. SwapZilla роутит каждого независимо.

Что если выплата одному получателю упала?

Остальной batch продолжается. Упавшие возвращаются с причиной (невалидный адрес, provider недоступен и т.д.) — можно ретраить только их, не трогая успешные.

Держите ли custody treasury во время batch?

Нет. Каждая выплата — прямой свап через provider'а; treasury-средства уходят из source-кошелька только когда конкретная выплата исполняется. Никакого промежуточного SwapZilla-баланса.

Обсудим твой treasury-workflow

Поможем оскопить интеграцию и пройдёмся по batch API. Большинство treasury-команд выходят на первую боевую выплату за неделю.