Материал проверен 30 октября 2026?
БК

ГЛАВНАЯ / ИНСТРУКЦИИ / EIP-712 TYPED DATA: КАКИЕ ПОЛЯ ПРОВЕРЯТЬ В СТРУКТУРИРОВАННОЙ ПОДПИСИ

EIP-712 typed data: какие поля проверять в структурированной подписи

EIP-712 превращает набор полей в типизированное сообщение для подписи, но не проверяет за пользователя смысл операции. До подтверждения сопоставьте домен, сеть, контракт и каждое существенное значение с действием, которое вы начали.

EIP712Domain

Домен задаёт контекст, в котором подписывается структура

Стандарт EIP-712 вычисляет подпись из domain separator и хэша сообщения. Среди возможных полей домена – name, version, chainId, verifyingContract и salt. Разработчик включает те поля, которые нужны приложению; отсутствие отдельного поля не обязательно означает ошибку, но убирает соответствующую проверку контекста.

Сверьте читаемое имя приложения и версию с сайтом, который открыли сами. chainId должен соответствовать выбранной сети, а verifyingContract – ожидаемому адресу контракта. Не подтверждайте подпись, если домен выглядит чужим или сеть внезапно отличается.

Тип и значения

Смысл задают структура, поля и конкретные данные

Проверьте primaryType и типизированные поля: какие адреса участвуют, какой актив и сумма указаны, какой nonce и срок действия применяются. Название типа само по себе не является доказательством назначения. Например, Permit может выражать разрешение контракту тратить токены, хотя прямого перевода в запросе нет.

Сравните сумму и адрес с экраном приложения до открытия окна подписи. Для списков и вложенных структур проверьте все элементы, а не только первые строки предпросмотра. Если кошелёк свернул содержание или показывает только хэш, не считайте его проверенным.

Ограничения

EIP-712 не включает автоматическую защиту от повтора

Спецификация прямо не включает replay protection. Nonce, deadline и правила использования подписи должны задаваться самим протоколом или приложением. Проверяйте, присутствуют ли эти поля и как контракт их применяет. Нельзя считать каждую подпись одноразовой или ограниченной одной сетью.

Подпись может быть передана релейеру и исполнена позже. Если изменились страница, сеть, получатель или параметры действия, отмените окно подписи и начните проверку заново. Не повторяйте одну подпись в другом контексте без ясного понимания её назначения.

Проверка по шагам

Короткий порядок проверки

  • проверить название и версию домена
  • сверить chainId
  • проверить verifyingContract
  • домен относится к ожидаемому приложению
  • сеть и контракт проверены
  • числа и адреса сопоставлены
Условия остановки

Когда не следует продолжать

  • nonce и срок не приняты на веру
FAQ

Частые вопросы

Какие поля домена нужно проверить?

Если они присутствуют: name, version, chainId, verifyingContract и salt. Сверьте их с ожидаемым приложением и сетью.

EIP-712 всегда показывает понятный текст?

Формат структурирован, но качество предпросмотра зависит от кошелька и приложения.

Есть ли в стандарте защита от повтора?

Нет. Проверяйте nonce, deadline и логику контракта конкретной подписи.

Что означает verifyingContract?

Это адрес контракта, который должен проверять подпись, если поле включено в домен.

Нужно ли проверять сумму Permit?

Да. Также проверьте spender, токен, срок и ограничения разрешения.

Итоговая проверка

Чек-лист: eip-712 typed data: какие поля проверять в структурированной подписи

  • домен и приложение совпадают;
  • chainId относится к ожидаемой сети;
  • verifyingContract сопоставлен при наличии;
  • primaryType прочитан;
  • адреса и суммы проверены;
  • nonce и срок изучены;
  • непонятные поля не подписаны.

Материал подготовлен редакцией сайта и проверен 30 октября 2026 года. Условия бирж, кошельков и блокчейн-сетей могут меняться. Перед операцией сверяйте данные в интерфейсе выбранного сервиса.