
Para quem está começando e se depara com a “Transação Frame” em debates sobre Ethereum e Hegotá, o conceito mais direto é uma transação composta por etapas coordenadas. Um frame pode validar o remetente, outro pode autorizar o pagamento, e os frames seguintes executam a ação do usuário. O foco deste artigo está nessa estrutura fundamental, não na proposta completa do EIP-8141.
O EIP-8141 estabelece um novo tipo de transação Frame, atualmente identificado como 0x06.
Uma transação pode conter até 64 frame, cada um com modo de execução e limites de gas próprios.
Os frame organizam a validação, o pagamento de gas e a execução do usuário separadamente.
O opcode APPROVE permite autorizar execução, pagamento ou ambos de forma independente.
Frame abstraction possibilita abstração de contas, agrupamento atômico, patrocínio de gas e validação programável de assinaturas.
A especificação oficial da transação Frame EIP-8141 apresenta um novo modelo de transação cuja validade e pagamento de gas podem ser definidos de modo abstrato. Especificação EIP-8141
O payload da transação inclui endereço de remetente, assinaturas, taxas e uma lista de frame. Cada frame define seu modo, flags, alvo, limites de execução e gas de estado, valor e dados. A versão atual fixa MAX_FRAMES para 64 e FRAME_TX_TYPE em 0x06.
Resumidamente, uma transação tradicional segue uma lógica rígida de remetente-assina-remetente-paga. Frame abstraction transforma esse modelo em uma sequência programável.
Cada frame EIP-8141 adota um dos três modos de execução:
| Modo | Objetivo principal |
|---|---|
| VERIFY | Define o frame como validação da transação |
| SENDER | Executa com o remetente da transação como chamador |
| DEFAULT | Executa com identidade ENTRY_POINT estabelecida pelo protocolo |
O modo de execução determina o contexto do frame. Um frame VERIFY executa a verificação antes dos frame sender; SENDER permite operações como chamadas do endereço do remetente; DEFAULT oferece uma identidade neutra de execução no protocolo.
Essa modularidade é fundamental para a abstração nativa de contas, já que a validação não precisa ficar restrita a uma única Chave Privada ou esquema de assinatura.
O EIP-8141 introduz o opcode APPROVE, que atualiza o contexto de aprovação da transação.
A validação pode contar com diferentes escopos de aprovação:
APPROVE_PAYMENT autoriza o pagamento de gas.
APPROVE_EXECUTION autoriza frame sender subsequentes.
APPROVE_EXECUTION_AND_PAYMENT autoriza ambos.
O alvo resolvido do frame precisa ser o chamador de APPROVE, limitando quem pode conceder essa autorização. Após a aprovação, os frame SENDER seguintes podem operar no contexto do remetente.
Esse mecanismo permite que um contrato patrocinador ou paymaster autorize o custo máximo de gas, enquanto a lógica de validação do próprio usuário autoriza a execução separadamente.
A especificação atual apresenta sete instruções vinculadas a frame:
| Opcode | Função |
|---|---|
| APPROVE | Autoriza pagamento e/ou execução |
| TXPARAM | Lê parâmetros da transação |
| FRAMEDATALOAD | Carrega dados de um frame definido |
| FRAMEDATACOPY | Copia dados de entrada do frame para a memória |
| FRAMEPARAM | Lê parâmetros do frame e status de execução |
| SIGPARAM | Lê metadados de assinatura |
| SIGDATACOPY | Copia dados de assinatura suportados |
Por exemplo, TXPARAM pode revelar informações como endereço do remetente, taxa máxima, hash de assinatura e número de frame. FRAMEPARAM mostra detalhes como modo de execução, flags, gas utilizado e se o flag de batch atômico está ativo. Essas consultas básicas têm custo de gas 2.
Transação Frame separam o pagamento de gas do remetente. Um frame VERIFY pode autorizar outra conta ou contrato patrocinador a pagar, criando um mecanismo nativo de patrocínio de gas.
Por exemplo, o usuário pode manter stablecoins e outra conta atua como pagadora de gas. A Transação Frame pode transferir tokens ERC-20 para compensar o patrocinador, enquanto o custo da transação Ethereum é quitado pelo pagador designado.
Cada frame recebe limites de execução e gas de estado. O gas não consumido diminui o valor final cobrado do pagador, em vez de aumentar a capacidade de execução dos frame restantes.
Um batch atômico conecta vários frame de execução para que sejam bem-sucedidos ou revertam juntos.
Por exemplo, uma aprovação ERC-20 seguida de um swap: com o flag de batch atômico ativado, se o swap reverter, a aprovação anterior também reverte. Isso evita que permissões indesejadas de token permaneçam após falha na transação.
Esse recurso torna a Transação Frame especialmente útil para simplificar interações com contratos inteligentes em múltiplos passos.
A estrutura de abstração de contas ERC-4337 do Ethereum utiliza contas inteligentes, bundlers, UserOperations e paymasters para programar carteiras. As Transação Frame levam essa flexibilidade para a camada de protocolo.
A validação programável do EIP-8141 permite diferentes esquemas de assinatura, rotação de chaves, agregação futura de assinaturas e prepara o protocolo para cenários pós-quânticos. O código padrão permite participação de contas sem contrato implantado, e um frame de deploy pode viabilizar implantação antes da verificação.
Essa flexibilidade traz desafios: lógica de validação arbitrária pode gerar riscos de negação de serviço ou invalidação em massa no pool de transações. Por isso, regras do mempool público restringem o prefixo de validação e a gestão de Transação Frame pendentes.
Uma Transação Frame Ethereum é uma transação composta por vários frame programáveis. Em vez de fixar validação, pagamento de gas e execução em um único papel, o EIP-8141 permite que frame distintos cumpram cada função.
Essa é a diferença-chave: EIP-8141 é a proposta de protocolo; Transação Frame são o novo formato de transação criado por ela. A modularidade do formato viabiliza patrocínio de gas, agrupamento atômico, validação programável, assinaturas flexíveis e abstração de contas sem a necessidade de sistemas de transação separados para cada recurso.
Sim. O modo VERIFY serve para validação de transação e opera sem alterações persistentes de estado. Isso permite que os nós simulem a validação de modo seguro antes de decidir se a Transação Frame pendente deve entrar ou permanecer no mempool público.
Nem sempre. No EIP-8141, o pagador pode ser definido por lógica programável de validação, então não é possível determinar isso de forma estática apenas pelos dados da transação. A aprovação de pagamento ocorre durante o processo de validação.
A autorização do remetente ocorre primeiro, seguida pela aprovação de pagamento para a conta ou paymaster responsável pelo custo de gas. Isso permite que uma parte autorize a execução e outra o pagamento de gas.
Não. A contabilidade de gas impede que um frame utilize o gas não gasto de outro. Cada frame possui limites de execução e gas de estado definidos, e o limite total de gas da transação inclui o gas intrínseco e os limites de execução dos frame.
Um paymaster canônico segue a implementação definida pelo protocolo e o código do contrato precisa corresponder à especificação esperada, permitindo aos nós rastrear compromissos de gas pendentes com previsibilidade. Paymasters não canônicos têm restrições mais rígidas no mempool, como o limite de uma transação pendente, para mitigar riscos de invalidação em massa e negação de serviço.
Este conteúdo é exclusivamente educativo. O EIP-8141 faz parte do roteiro evolutivo do protocolo Ethereum, e detalhes da especificação podem ser alterados antes da ativação no mainnet.











