Интеграция Safe{Wallet}: кастомные мультисиг-решения для Web3

Интеграция Safe{Wallet} (Gnosis Safe) Представьте: команда DAO управляет казначейством на $10M через стандартный мультисиг. Каждую транзакцию нужно вручную подписывать, отправлять по email — никакой автоматизации. Мы решаем эту проблему кастомной интеграцией Safe с модулями Zodiac. В нашей практи

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Интеграция 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. Флоу:

  1. Proposer (любой owner) создаёт транзакцию и отправляет её в Transaction Service.
  2. Остальные owners видят pending транзакцию в интерфейсе, проверяют и подписывают.
  3. После сбора 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

  1. Аудит требований: определяем необходимые модули, Guards, сети.
  2. Разработка кастомных контрактов (модули/Guards), настройка Zodiac.
  3. Развёртывание на целевых сетях с использованием CREATE2 для одинаковых адресов.
  4. Интеграция с frontend через Safe Apps SDK или protocol-kit.
  5. Полный аудит: статический (Slither), динамический (Mythril), fuzzing (Echidna).
  6. Деплой с подготовкой документации и обучением команды.

Стек интеграции

Задача Инструмент
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.

Получите консультацию по вашему проекту. Свяжитесь с нами для оценки.