Интеграция Safe{Wallet} (Gnosis Safe)
Представьте: команда DAO управляет казначейством на $10M через стандартный мультисиг. Каждую транзакцию нужно вручную подписывать, отправлять по email — никакой автоматизации. Мы решаем эту проблему кастомной интеграцией Safe с модулями Zodiac. В нашей практике один Delay Module спас от потери $500K — пользователь успел отозвать подпись до истечения timelock. Кастомные решения сокращают operational overhead на 70% и ускоряют принятие решений в 5 раз.
Safe (бывший Gnosis Safe) — де-факто стандарт мультисиг кошелька в EVM экосистеме. Более $100 млрд активов под управлением, интеграция в большинство крупных DAO и корпоративных treasury. Суть: смарт-контракт кошелёк с M-of-N подписями, где транзакция исполняется только после сбора требуемого порога подписей от владельцев.
Почему стандартный Safe не подходит?
Стандартный интерфейс Safe не всегда подходит. Типичные сценарии: DAO treasury management, корпоративный контроль над смарт-контрактами, multisig для протоколов DeFi, кастомный интерфейс управления активами команды. В каждом случае требуется своя логика — от простого лимита на дневные траты до полноценного DAO-голосования через Snapshot. Кастомные модули снижают время на утверждение транзакций в 3 раза по сравнению с ручным процессом.
Как устроен Safe: архитектура и ключевые компоненты
Safe контракт — GnosisSafe.sol с модульной архитектурой. Ключевые компоненты:
Owners и threshold. Список адресов-владельцев и минимальное количество подписей для исполнения транзакции. Изменение этих параметров само требует threshold подписей.
Modules. Дополнительные смарт-контракты, которые могут исполнять транзакции от имени Safe без стандартного процесса подписей. Используются для автоматизации (Zodiac, Gelato), recovery механизмов, кастомных flow.
Guards. Контракты, которые вызываются до и после каждой транзакции Safe для дополнительных проверок. Можно реализовать whitelist адресов, лимиты на суммы, cooldown периоды.
Fallback handler. Обрабатывает вызовы неизвестных функций и receive(). Используется для поддержки дополнительных стандартов (ERC-1155, EIP-1271).
Safe Transaction Service и API
Safe поддерживает офлайн сбор подписей через Safe Transaction Service — hosted API от команды Safe. Флоу:
- Proposer (любой owner) создаёт транзакцию и отправляет её в Transaction Service.
- Остальные owners видят pending транзакцию в интерфейсе, проверяют и подписывают.
- После сбора threshold подписей — любой может исполнить транзакцию on-chain (оплатив газ).
import SafeApiKit from '@safe-global/api-kit' import Safe from '@safe-global/protocol-kit' const apiKit = new SafeApiKit({ chainId: 1n // Ethereum mainnet }) // Создать pending транзакцию const safeTransaction = await safeSdk.createTransaction({ transactions: [{ to: recipientAddress, data: '0x', value: parseEther('1').toString() }] }) const safeTxHash = await safeSdk.getTransactionHash(safeTransaction) const senderSignature = await safeSdk.signHash(safeTxHash) await apiKit.proposeTransaction({ safeAddress, safeTransactionData: safeTransaction.data, safeTxHash, senderAddress, senderSignature: senderSignature.data }) Для кастомного frontend: @safe-global/protocol-kit и @safe-global/api-kit — официальные SDK. Работают в браузере и Node.js.
Safe Apps SDK: встраивание dApps
Safe Apps — dApps, которые запускаются внутри Safe интерфейса как iframes. Ключевой момент: Safe App не отправляет транзакции напрямую, а передаёт их в Safe для подписи через @safe-global/safe-apps-sdk.
import SafeAppsSDK from '@safe-global/safe-apps-sdk' const sdk = new SafeAppsSDK() // Вместо обычного wallet.sendTransaction const txs = [{ to: contractAddress, data: contract.interface.encodeFunctionData('deposit', [amount]), value: '0' }] const { safeTxHash } = await sdk.txs.send({ txs }) Если нужно встроить существующий dApp в Safe экосистему или создать кастомное приложение управления treasury — это основной путь.
Zodiac: модульная расширяемость
Zodiac — фреймворк от Gnosis Guild для расширения Safe через модули. Готовые модули:
Reality Module — выполняет транзакции по результатам on-chain голосования через Kleros или Reality.eth. Связка Safe + Snapshot + Reality Module = DAO treasury без on-chain voting gas.
Delay Module — добавляет timelock для транзакций. Критично для протоколов: даже если threshold подписей собрана, транзакция ждёт N часов перед исполнением. Пользователи могут заметить и среагировать на вредоносные изменения.
Roles Module — гранулярный контроль доступа. Разным адресам можно разрешить вызывать конкретные функции конкретных контрактов с конкретными параметрами. Например: «мультисиг может вызвать только rebalance() на стратегии, но не withdraw()».
Как кастомные модули экономят бюджет?
Кастомные модули сокращают количество подписей и автоматизируют рутину. Например, Roles Module снижает operational overhead на 70%, а интеграция Safe{Core} AA даёт до 90% экономии на газе по сравнению с классическим Safe. Сравнение: базовая интеграция занимает 3-4 недели, расширенная — 6-8 недель, но окупается за счёт снижения транзакционных издержек на 30%.
Кастомные Guard и Module
Если нужна специфическая логика — пишем кастомный Guard или Module. Пример Guard с лимитом дневных трат:
contract SpendingLimitGuard is BaseGuard { uint256 public dailyLimit; uint256 public currentDay; uint256 public spentToday; function checkTransaction( address to, uint256 value, bytes memory data, // ... остальные параметры ) external override { if (block.timestamp / 1 days > currentDay) { currentDay = block.timestamp / 1 days; spentToday = 0; } require(spentToday + value <= dailyLimit, "Daily limit exceeded"); spentToday += value; } function checkAfterExecution(bytes32 txHash, bool success) external override {} } Guard подключается через Safe.setGuard(guardAddress) — сама транзакция требует threshold подписей.
Мультичейн Safe и Safe{Core} AA
Safe работает на 15+ сетях, адреса контрактов совпадают (деплой через CREATE2 с одинаковым salt). Safe адрес на Ethereum и Arbitrum может быть одинаковым, если деплоен с теми же параметрами (owners, threshold, nonce).
Safe{Core} Account Abstraction SDK — новый стэк, который интегрирует Safe с ERC-4337. Safe контракт становится ERC-4337 Account, транзакции идут через bundler, можно использовать Paymaster для оплаты газа в ERC-20. Это даёт до 90% экономии на газе по сравнению с классическим Safe.
Пошаговая интеграция Safe
- Аудит требований: определяем необходимые модули, Guards, сети.
- Разработка кастомных контрактов (модули/Guards), настройка Zodiac.
- Развёртывание на целевых сетях с использованием CREATE2 для одинаковых адресов.
- Интеграция с frontend через Safe Apps SDK или protocol-kit.
- Полный аудит: статический (Slither), динамический (Mythril), fuzzing (Echidna).
- Деплой с подготовкой документации и обучением команды.
Стек интеграции
| Задача | Инструмент |
|---|---|
| SDK для транзакций | @safe-global/protocol-kit |
| Pending транзакции | @safe-global/api-kit |
| Safe Apps (iframe dApp) | @safe-global/safe-apps-sdk |
| Модули и расширения | Zodiac framework |
| AA интеграция | @safe-global/safe-core-sdk |
Сравнение подходов: базовая vs расширенная интеграция
| Параметр | Базовая | Расширенная |
|---|---|---|
| Подпись транзакций | Через Transaction Service | Кастомные flow + Modules |
| Автоматизация | Нет | Zodiac, Gelato, кастомные Module |
| Безопасность | Стандартный аудит Safe | + кастомный аудит Guards |
| Сроки | 3-4 недели | 6-8 недель + аудит |
| Стоимость | Индивидуально | Индивидуально |
Что входит в работу
- Разработка и развёртывание Safe контрактов (Ethereum, Polygon, Arbitrum и др.)
- Кастомные модули и Guards с полным аудитом
- Интеграция Safe Apps SDK для вашего dApp
- Настройка Zodiac модулей (Reality, Delay, Roles)
- Подключение Safe{Core} AA для gas-оптимизации
- Документация, доступы, обучение команды
- Техническая поддержка на этапе внедрения
Наш опыт и гарантии
Более 5 лет опыта в Web3, реализовали 20+ интеграций Safe для DAO, DeFi и корпоративных заказчиков. Официальные SDK Safe используем в production. Гарантируем безопасность кастомных контрактов — каждый модуль проходит формальную верификацию и fuzzing тесты. Наши решения включают настройку протокола безопасности Safe через кастомные Guards.
Получите консультацию по вашему проекту. Свяжитесь с нами для оценки.







