Pular para o conteúdo

Apresentando Permissões Avançadas

Conceda aos dapps acesso limitado e temporário para executar em nome dos usuários sem assinaturas extras, carteiras separadas ou concessões de custódia.

5 minutos
Apresentando Permissões Avançadas

Nossas recém-lançadas Advanced Permissions—desenvolvidas sobre o ERC-7715 e parte do MetaMask Smart Accounts Kit—permitem que os usuários aprovem exatamente o que um dapp pode fazer em uma única interação. Seu dapp executa dentro desse escopo por meio de uma conta de sessão. A carteira do usuário permanece sob o controle dele.

Assinaturas, DCA, agentes de IA, vesting, auto-compounding: se você estava esperando uma forma padronizada de construir essas funcionalidades sem precisar juntar gambiarras, chegou a hora.

Por que criamos as Advanced Permissions

As carteiras de criptomoedas historicamente seguiam um modelo de interação simples, em que cada transação exigia uma assinatura explícita do usuário. Isso significava pop-ups repetitivos, alternância entre app e carteira, e fadiga de aprovação. Com o tempo, os usuários passaram a aprovar solicitações por hábito, sem lê-las — o oposto do consentimento informado.

Também não havia uma forma padronizada para um dapp solicitar permissões com escopo definido de uma carteira. Sem isso, categorias inteiras de produtos — assinaturas, agentes de IA, acesso por tempo limitado — continuavam difíceis ou impossíveis de construir bem.

As carteiras embutidas resolveram parte dessa fricção, mas introduziram uma troca diferente. Os usuários acabavam com saldos separados por dapp, gerenciando ativos em múltiplos endereços. A experiência se tornou mais fragmentada.

As Advanced Permissions adotam uma abordagem diferente: uma carteira, acesso com escopo definido.

O que são as Advanced Permissions?

As Advanced Permissions permitem que os usuários concedam a um dapp a capacidade de realizar ações específicas e limitadas em seu nome, sem abrir mão do acesso completo à carteira ou assinar cada transação.

Veja como funciona no nível do protocolo:

  1. Seu dapp chama wallet_requestExecutionPermissions, solicitando uma permissão com escopo definido da carteira MetaMask do usuário.

  2. O MetaMask exibe uma tela de aprovação legível por humanos, mostrando exatamente o que está sendo solicitado: o ativo, o valor, a duração e quaisquer restrições.

  3. O usuário revisa, opcionalmente ajusta os parâmetros (se sua solicitação permitir) e aprova.

  4. Seu dapp executa dentro do escopo concedido por meio de uma conta de sessão — uma conta criada especificamente para esse fim (EOA ou smart account) que seu dapp cria e controla. A conta de sessão nunca mantém fundos do usuário. Ela resgata permissões por meio de delegação ERC-7710, executando transações diretamente da conta MetaMask do usuário dentro dos limites definidos.

Por exemplo, um usuário pode configurar uma estratégia de DCA para que um agente de IA gaste até 10 USDC por dia para comprar ETH durante 30 dias. Em vez de assinar cada transação diariamente, o usuário aprova uma única permissão com escopo definido pelo MetaMask.

A interface descreve claramente os termos, o ativo, o valor e a duração antes da aprovação. Uma vez concedida, a aplicação pode executar transações em nome dos usuários dentro dos limites definidos.

Tipos de permissão suportados

O ERC-7715 define as especificações e os padrões para as permissões que devem ser solicitadas e as regras que devem ser aplicadas a essas permissões.

O Smart Accounts Kit expande isso com quatro tipos de permissão no nível de implementação:

Categoria

Tipos de permissão

O que faz

Exemplos de uso

Periódica

erc20-token-periodic, native-token-periodic

Limite por período para transferências de tokens; reinicia a cada período

Assinaturas, estratégias de DCA, orçamentos recorrentes de gas

Streaming

erc20-token-stream, native-token-stream

Limite de streaming linear com início, taxa e teto configuráveis

Vesting, pagamentos contínuos, desbloqueios graduais

Revogação

erc20-revocation

Permite que um dapp revogue aprovações de tokens ERC-20 em nome do usuário

Limpeza de aprovações antigas ou arriscadas

Cada tipo de permissão aceita parâmetros respectivos com expiração, uma justificativa de permissão legível por humanos e isAdjustmentAllowed. Consulte a referência de Advanced Permissions para o schema completo.

O que você pode construir

As Advanced Permissions mudam o modelo de aprovações repetidas para execução baseada em intenção: um usuário define permissões com escopo uma vez, e as ações são realizadas dentro desse escopo ao longo do tempo.

  1. Fluxos automatizados e recorrentes: Assinaturas, estratégias de DCA e auto-compounding podem ser executados após uma aprovação única. Mapeie-os para permissões erc20-token-periodic ou native-token-periodic com um periodDuration que corresponda ao seu ciclo de cobrança ou execução.

  2. Execução baseada em agentes: Agentes de IA podem negociar, rebalancear ou realizar ações dentro dos limites definidos pelo usuário. O agente controla a chave da conta de sessão e executa por meio da delegação — a carteira principal do usuário nunca é exposta, e o agente só pode operar dentro do escopo concedido. Sem necessidade de financiar uma carteira separada.

  3. Acesso por tempo limitado: As permissões aceitam parâmetros startTime e expiry, suportando casos de uso como cronogramas de vesting, execuções agendadas ou ações em jogos durante a sessão. Combine com permissões de streaming para liberações graduais de tokens.

Modelo de segurança das Advanced Permissions

As Advanced Permissions são aplicadas onchain por meio dos Smart Contracts do Smart Accounts Kit. Veja o que isso significa na prática:

  • Escopo por design: Cada permissão define exatamente o que a conta de sessão pode acessar: ativo, valor, janela de tempo e tipo de transferência. Os caveat enforcers do Delegation Framework rejeitam qualquer execução que esteja fora do escopo.

  • Aprovação legível por humanos: O MetaMask exibe uma interface de confirmação detalhada mostrando todos os parâmetros da permissão antes que o usuário conceda qualquer coisa.

  • Ajustável pelo usuário: Se sua solicitação de permissão definir isAdjustmentAllowed: true, os usuários podem modificar os parâmetros (por exemplo, reduzir o valor ou encurtar a duração) antes de aprovar.

  • Revogável: Os usuários podem revogar qualquer permissão ativa a qualquer momento pela opção de conexões de Dapp do MetaMask.

  • Contas de sessão não mantêm fundos: A execução ocorre por meio do resgate de delegação da Smart Account do usuário. A conta de sessão é uma chave de assinatura, não um ponto de custódia.

Pronto para construir? Comece agora com as Advanced Permissions no Smart Accounts Kit.


Recursos adicionais sobre Advanced Permissions

Perguntas frequentes sobre Permissões Avançadas

Traduzido por IA. Pode conter erros. Por favor, verifique sempre as informações.

Avalie a tradução

Este artigo foi escrito por:

  • Ayush Bherwani

      Ayush Bherwani é Gerente Sênior de Relações com Desenvolvedores na MetaMask.

      Ler todos os artigos