Интеграция со Snapshot (голосование) под ключ
Мы помогли уже 15+ DAO интегрировать Snapshot — от Uniswap-подобных протоколов до небольших NFT-сообществ. Недавно к нам обратился DAO с 15 000 участников, которые ежемесячно тратили огромные суммы на газ при on-chain голосовании. Явка падала, а затраты росли. После перехода на Snapshot расходы на газ исчезли, а явка выросла на 40%. Если ваше сообщество тратит тысячи долларов на газ при каждом голосовании — вы теряете участников. Snapshot решает это: голос — это подпись, не транзакция. Верификация off-chain, результаты в IPFS. Для 80% DAO этого достаточно.
Почему Snapshot, а не on-chain голосование?
On-chain голосование через Governor стоит дорого: при 5000 голосующих каждый платит газ за вызов castVote(). При ценах газа 50 gwei это $1–3 за голос. Snapshot полностью устраняет эти затраты. Минус — отсутствие автоматического исполнения. Но для снятия сигналов — идеально. Snapshot выполняет голосование в 100 раз быстрее и дешевле, чем on-chain. Это позволяет проводить частые сигнальные голосования без финансового бремени для участников.
Как устроена архитектура Snapshot?
Snapshot использует распределённую архитектуру: фронтенд загружает список предложений из Snapshot Hub через GraphQL API, а голоса подписываются и отправляются в IPFS. Конфигурация Space хранится в ENS. Это даёт высокую отказоустойчивость.
Как настроить Snapshot Space правильно?
Space создаётся на snapshot.org и конфигурируется JSON-файлом, который хранится в ENS-записи вашего домена. Критичные параметры: стратегия подсчёта голосов (какие токены и в каких сетях учитываются), минимальный порог (количество токенов для создания предложения) и длительность голосования (обычно 3–7 дней). Пример конфига Space.json:
{ "name": "My DAO", "network": "1", "strategies": [ { "name": "erc20-balance-of", "params": { "address": "0x...", "symbol": "TKN", "decimals": 18 } } ], "members": [], "filters": { "minScore": 100 } } Что входит в интеграцию
Мы предоставляем полный пакет: настройка Space (конфигурация стратегий, ENS-запись, тестирование), фронтенд голосования (вывод активных предложений, форма голосования, история), backend API (прокси для Snapshot Hub, кэширование, обработка ошибок), уведомления о новых предложениях и окончании голосования, а также документация и техподдержка в течение 2 недель после запуска. Свяжитесь с нами для детального обсуждения вашего проекта.
Сравнение Snapshot vs On-chain голосование
| Критерий | Snapshot | On-chain (Governor) |
|---|---|---|
| Стоимость для участника | 0 газа | $1–5 за голос |
| Скорость | Мгновенно | Зависит от сети |
| Автоматическое исполнение | Нет | Да (Timelock) |
| Прозрачность | IPFS | Цепочка |
| Гибкость стратегий | Высокая | Средняя |
| Идеально для | Сигналов | Исполнения |
Пример интеграции через Snapshot API
Для получения активных предложений используем GraphQL: https://hub.snapshot.org/graphql. Пример запроса:
query GetActiveProposals($space: String!) { proposals( where: { space: $space, state: "active" } orderBy: "created" orderDirection: desc ) { id title choices start end state scores scores_total votes } } Подача голоса через Snapshot SDK:
import { Client } from '@snapshot-labs/snapshot.js'; import { Web3Provider } from '@ethersproject/providers'; async function vote(proposalId, choiceIndex, provider) { const hub = 'https://hub.snapshot.org'; const client = new Client.Client(hub); const web3 = new Web3Provider(provider); const [account] = await web3.listAccounts(); const result = await client.vote(web3, account, { space: 'yourspace.eth', proposal: proposalId, type: 'single-choice', choice: choiceIndex, reason: '', app: 'your-app' }); return result; } Когда нужен on-chain execution
Если результат голосования должен автоматически изменить параметры протокола (например, процент комиссии), одной подписи недостаточно. В таких случаях мы используем гибрид: Snapshot как первый этап (сигнал), затем on-chain голосование через Governor с Timelock. Этот паттерн применяется, например, в DAO.
Для полной картины рассмотрим основные стратегии Snapshot:
-
erc20-balance-of: голос пропорционален балансу токена на момент снэпшота. -
erc20-votes: голос с делегированием (стандарт ERC-20Votes). -
delegation: учёт переданных голосов. -
whitelist: голосовать могут только избранные кошельки. - Комбинация стратегий с весами: например, 50% по токенам + 50% по NFT.
Выбор стратегий влияет на защиту от атак и вовлечённость сообщества. Например, комбинация erc20-balance-of и whitelist позволяет избежать захвата предложений неактивными держателями. Мы помогаем подобрать оптимальный набор для вашего DAO.
Процесс работы
- Анализ — изучаем текущее управление, подбираем стратегии.
- Прототип — создаём Space и тестовую голосовалку.
- Интеграция — встраиваем в ваше приложение, настраиваем API.
- Тестирование — проверяем все сценарии, включая edge cases.
- Деплой — запуск в mainnet, мониторинг.
После запуска мы предоставляем документацию и техподдержку в течение 2 недель. Закажите интеграцию уже сегодня и экономьте тысячи долларов на газе.
Ориентировочные сроки
| Этап | Срок |
|---|---|
| Базовый UI с голосованием | от 1 недели |
| Полноценная интеграция с уведомлениями и делегированием | 2–3 недели |
| Гибрид с on-chain исполнением | от 4 недель |
Для оценки вашего проекта свяжитесь с нами — мы подготовим предложение за 1–2 дня. Наш опыт: 5+ лет в Web3, десятки интеграций, включая DeFi-протоколы и NFT-сообщества. Получите консультацию уже сегодня.







