Представляем расширенные разрешения

Предоставляйте dapp-ам ограниченный по времени доступ для выполнения действий от имени пользователей без лишних подписей, отдельных кошельков или компромиссов с хранением.

5 минут
Представляем расширенные разрешения

Наши недавно запущенные Advanced Permissions — созданные на основе ERC-7715 и входящие в состав MetaMask Smart Accounts Kit — позволяют пользователям точно определить, что dapp может делать, в рамках одного взаимодействия. Ваш dapp выполняет действия в пределах этой области через сессионный аккаунт. Кошелёк пользователя остаётся под его контролем.

Подписки, DCA, AI-агенты, вестинг, автокомпаундинг: если вы ждали стандартного способа создавать всё это без нагромождения обходных решений — он перед вами.

Почему мы создали Advanced Permissions

Исторически криптокошельки следовали простой модели взаимодействия, при которой каждая транзакция требовала явной подписи пользователя. Это означало бесконечные всплывающие окна, переключение между приложением и кошельком и усталость от подтверждений. Со временем пользователи начали машинально одобрять запросы, не читая их, — что прямо противоположно осознанному согласию.

Кроме того, не существовало стандартного способа для dapp запрашивать у кошелька разрешения с ограниченной областью действия. Без него целые категории продуктов — подписки, AI-агенты, доступ с ограничением по времени — оставались сложными или вовсе невозможными для качественной реализации.

Встроенные кошельки решали часть этих проблем, но вносили другой компромисс. Пользователи получали отдельные балансы для каждого dapp и были вынуждены пополнять и управлять активами на множестве адресов. Опыт становился всё более фрагментированным.

Advanced Permissions предлагают иной подход: один кошелёк, ограниченный доступ.

Что такое Advanced Permissions?

Advanced Permissions позволяют пользователям предоставлять dapp возможность выполнять конкретные, ограниченные действия от их имени — без передачи полного доступа к кошельку и без подписи каждой транзакции.

Вот как это работает на уровне протокола:

  1. Ваш dapp вызывает wallet_requestExecutionPermissions, запрашивая ограниченное разрешение у кошелька MetaMask пользователя.

  2. MetaMask отображает понятный человеку экран подтверждения, показывающий именно то, что запрашивается: актив, сумму, срок действия и любые ограничения.

  3. Пользователь изучает запрос, при необходимости корректирует параметры (если ваш запрос это допускает) и подтверждает.

  4. Ваш dapp выполняет действия в рамках предоставленной области через сессионный аккаунт — специально созданный аккаунт (EOA или смарт-аккаунт), который ваш dapp создаёт и контролирует. Сессионный аккаунт никогда не хранит средства пользователя. Он реализует разрешения через делегирование ERC-7710, выполняя транзакции непосредственно из MetaMask-аккаунта пользователя в пределах установленных лимитов.

Например, пользователь может настроить DCA-стратегию для AI-агента: тратить до 10 USDC в день на покупку ETH в течение 30 дней. Вместо того чтобы подписывать каждую транзакцию ежедневно, пользователь одобряет единственное ограниченное разрешение через MetaMask.

Интерфейс чётко отображает условия — актив, сумму и срок действия — до подтверждения. После предоставления разрешения приложение может выполнять транзакции от имени пользователя в пределах установленных лимитов.

Поддерживаемые типы разрешений

ERC-7715 определяет спецификации и стандарты для запрашиваемых разрешений и правил, применяемых к ним.

Smart Accounts Kit расширяет это четырьмя типами разрешений на уровне реализации:

Категория

Типы разрешений

Что делает

Примеры использования

Периодические

erc20-token-periodic, native-token-periodic

Лимит на переводы токенов за период; сбрасывается каждый период

Подписки, DCA-стратегии, регулярные газовые бюджеты

Потоковые

erc20-token-stream, native-token-stream

Линейный потоковый лимит с настраиваемым началом, скоростью и максимумом

Вестинг, непрерывные платежи, постепенная разблокировка

Отзыв

erc20-revocation

Позволяет dapp отзывать одобрения ERC-20 токенов от имени пользователя

Очистка устаревших или рискованных разрешений approve

Каждый тип разрешения принимает соответствующие параметры с expiry, понятным человеку обоснованием разрешения и isAdjustmentAllowed. Полную схему см. в справочнике Advanced Permissions.

Что можно создать

Advanced Permissions меняют модель с повторных подтверждений на выполнение на основе намерений: пользователь один раз определяет ограниченные разрешения, и действия выполняются в их рамках с течением времени.

  1. Автоматизированные и повторяющиеся процессы: Подписки, DCA-стратегии и автокомпаундинг могут работать после однократного подтверждения. Сопоставьте их с разрешениями erc20-token-periodic или native-token-periodic с periodDuration, соответствующим вашему циклу выставления счётов или выполнения.

  2. Выполнение через агентов: AI-агенты могут торговать, перебалансировать или совершать действия в пределах границ, определённых пользователем. Агент контролирует ключ сессионного аккаунта и выполняет действия через делегирование — основной кошелёк пользователя никогда не раскрывается, а агент может работать только в рамках предоставленной области. Отдельное пополнение кошелька не требуется.

  3. Доступ с ограничением по времени: Разрешения принимают параметры startTime и expiry, поддерживая такие сценарии, как расписания вестинга, запланированные выполнения или игровые действия в рамках сессии. Комбинируйте с потоковыми разрешениями для постепенного выпуска токенов.

Модель безопасности Advanced Permissions

Advanced Permissions применяются на блокчейне через смарт-контракты Smart Accounts Kit. Вот что это означает на практике:

  • Ограниченная область по замыслу: Каждое разрешение точно определяет, к чему сессионный аккаунт может получить доступ: актив, сумму, временное окно и тип перевода. Enforcers оговорок Delegation Framework отклоняют любое выполнение, выходящее за пределы области.

  • Понятное человеку подтверждение: MetaMask отображает расширенный интерфейс подтверждения с полными параметрами разрешения до того, как пользователь что-либо предоставит.

  • Настраивается пользователем: Если в вашем запросе разрешения установлено isAdjustmentAllowed: true, пользователи могут изменить параметры (например, уменьшить сумму или сократить срок действия) перед подтверждением.

  • Отзываемые: Пользователи могут отозвать любое активное разрешение в любое время через опцию «Подключения dapp» в MetaMask.

  • Сессионные аккаунты не хранят средства: Выполнение происходит через реализацию делегирования из Smart Account пользователя. Сессионный аккаунт является ключом подписи, а не точкой хранения.

Готовы начать разработку? Приступайте к работе с Advanced Permissions в Smart Accounts Kit уже сегодня.


Дополнительные ресурсы по Advanced Permissions

Часто задаваемые вопросы о расширенных разрешениях

Переведено ИИ. Может содержать ошибки. Пожалуйста, всегда проверяйте информацию.

Оцените перевод
  • Ayush Bherwani
    Ayush Bherwani

      Аюш Бхервани — старший менеджер по работе с разработчиками в MetaMask.

      Читать все статьи