Desde o lançamento do beta aberto do MetaMask Snaps em setembro de 2023, nos propusemos a democratizar a inovação, permitindo que desenvolvedores independentes criassem os recursos e funcionalidades do MetaMask que capturam toda a extensão da criatividade no nosso espaço web3. Nos 9 meses desde o lançamento, vimos 55 Snaps desenvolvidos por desenvolvedores terceiros, listados em nosso diretório oficial, e mais de 900 mil instalações em todos os Snaps.
À medida que continuamos a encontrar maneiras de tornar a criação de Snaps e a extensão do MetaMask mais fluidas para os desenvolvedores, identificamos 2 áreas-chave e lançamos algumas atualizações importantes, que discutiremos mais adiante neste post.
1. Requisitos de auditoria reduzidos para inclusão na allowlist do diretório de Snaps
Publicar um Snap de terceiros ficou mais simples. Antes, os desenvolvedores precisavam concluir uma auditoria antes de submeter qualquer Snap à allowlist para ser incluído no registro de Snaps. A partir de hoje, estamos flexibilizando essa regra para que Snaps que não realizam gerenciamento de chaves (entropy API) possam ser submetidos à allowlist sem uma auditoria de segurança e distribuídos pelo nosso canal.
É importante destacar que ainda exigiremos auditorias de segurança de terceiros para Snaps que realizam gerenciamento de chaves. APIs de gerenciamento de chaves ou entropy são aquelas utilizadas para gerenciar contas blockchain em nome do usuário. Essas APIs incluem snap_getBip32Entropy, snap_getBip44Entropy e snap_getEntropy. Se você utiliza essas APIs e quer saber como preparar seu Snap para uma auditoria de segurança de terceiros, confira este post sobre 5 dicas de auditoria de segurança do MSQ Snap e da Consensys Diligence.
A partir de hoje, a inclusão na allowlist ainda é um processo manual. Verificamos se um Snap precisa de auditoria quando submetido para a allowlist e, caso não precise, prosseguiremos com a submissão ao registro. Todos os Snaps exigem duas aprovações da equipe de Snaps antes de serem permitidos.
Além disso, um subconjunto de Snaps de terceiros agora pode ser instalado por qualquer pessoa sem inclusão na nossa allowlist, de forma permissionless. Snaps que dependem apenas de permissões "abertas" da lista a seguir não precisam estar na allowlist antes de serem instalados:
endowment:cronjob
endowment:ethereum-provider
endowment:lifecycle-hooks
endowment:page-home
endowment:signature-insight
endowment:transaction-insight
snap_dialog
snap_getLocale
snap_manageState
Snap_notify
Ainda incentivamos os desenvolvedores a obterem auditorias de segurança de terceiros para seus Snaps, mesmo que não sejam obrigatórias para a inclusão na allowlist. Além disso, a inclusão na allowlist ainda é necessária para que os Snaps apareçam no Diretório de Snaps.
2. Conexão automática fluida para dapps selecionados
Os desenvolvedores agora podem especificar uma lista de dapps com privilégios de conexão automática para o seu Snap. Isso significa que, para dapps específicos, quando o dapp chamar wallet_requestSnaps, os usuários não precisarão mais confirmar uma conexão manualmente, e o dapp poderá verificar se o Snap está instalado de forma fluida. Isso é especialmente útil para Snaps utilizados por múltiplos dapps, pois permite o seguinte fluxo de UX:
Você cria um Snap para uso por um ou mais dapps e autoriza uma conexão automática ao dapp companion do seu Snap, listando-o na opção de configuração initialConnections.
Um usuário instala seu Snap ao interagir com um dapp que o utiliza.
O usuário acessa o dapp companion do seu Snap.
Seu dapp companion pode identificar imediatamente que o Snap já foi instalado.
O usuário pode interagir com o dapp companion sem conectar o Snap manualmente.
Isso pode ser estendido aos dapps confiáveis de sua escolha que integram seu Snap.
O Linea Voyager Snap já utiliza esse recurso, e você pode ver a conexão fluida instalando o Linea Voyager Snap pelo Diretório de Snaps e visitando o dapp companion do Linea Voyager. Ao contrário da maioria dos dapps companion, este se conecta automaticamente ao Snap, mesmo que você não o tenha instalado ou conectado manualmente pelo dapp. Consulte a documentação do Snaps para informações detalhadas sobre como usar esse recurso.
Continue construindo com o MetaMask Snaps
À medida que continuamos a construir o futuro permissionless para carteiras web3, trabalhamos constantemente para melhorar a experiência, e essas duas novas atualizações são parte do que temos em desenvolvimento.
Se você está atualmente construindo com Snaps, gostaríamos de saber o que você acha, então deixe seu feedback, pois isso nos ajuda a construir uma carteira melhor para o futuro. Se você é um desenvolvedor interessado em criar um Snap, pode começar lendo a documentação do Snaps e depois compartilhar seu projeto conosco quando estiver pronto.