La billetera cripto autocustodiada líder y puerta de entrada a Web3, desarrollada por Consensys.
Leer todos los artículosGanador del Hackathon ETHLisbon

MetaMask Snaps es la hoja de ruta para convertir a MetaMask en la wallet más extensible del mundo. Como desarrollador, puedes llevar tus funciones y APIs a MetaMask de formas completamente nuevas. Los desarrolladores de Web3 son el núcleo de este crecimiento, y esta serie tiene como objetivo destacar los novedosos MetaMask Snaps que se están construyendo hoy en día.
Repositorio del Snap: https://github.com/idriss-crypto/multiresolver
¿Por qué construiste el multi-resolver snap?
La experiencia de usuario en web3 ha sido ignorada durante mucho tiempo. Un área en la que vemos avances es la abstracción de cuentas. Parece que cada semana surge un nuevo servicio de nombres. El objetivo de estos servicios es simplificar la forma en que interactuamos entre nosotros en este espacio: los nombres son más reconocibles que las direcciones de wallet y, por lo tanto, constituyen una capa base para los sistemas de identidad y reputación.
Además, los estándares de nombres originales pueden beneficiar la popularidad de los proyectos. Por ejemplo, imaginemos un proyecto llamado "x". El nuevo estándar de nombres que propone este proyecto podría llamarse x-domains o x-names. El éxito del proyecto ayudaría automáticamente a hacer crecer el servicio de nombres, mientras que el éxito del servicio de nombres haría lo mismo por el proyecto: una situación en la que todos ganan. Ahora bien, nos encontramos con un panorama fragmentado del espacio de nombres. Claro, hay personas que intentan usar todos los servicios de nombres, lo que genera una carrera por los nombres en el limitado espacio de nombres que tenemos en algunos servicios de nombres basados en dominios. Otros servicios de nombres utilizan identificadores más familiares, como correos electrónicos, números de teléfono o handles sociales más generales (nombre de usuario de Twitter, handle de IG) que las personas ya poseen, para eliminar los posibles mercados en torno a estas identidades. La mayoría de las personas termina con uno, quizás dos handles de diferentes servicios de nombres. Debido a la variedad de opciones, los desarrolladores necesitan integrar múltiples resolvers de servicios de nombres en sus aplicaciones.
Cuando un nuevo servicio de nombres acapara un porcentaje considerable del mercado, también debería integrarse en la aplicación de uno para no excluir a los usuarios de ese servicio de nombres. Desde la perspectiva del usuario, buscar aplicaciones alternativas con funcionalidad similar que también admitan el servicio de nombres de su elección resulta tedioso. ¿Por qué no permitir que las personas usen lo que ya conocen Y ofrecer una solución que ayude a los desarrolladores a centrarse en crear la mejor aplicación posible?
El Multi-resolver Snap hace exactamente eso.
¿Puedes explicarnos la implementación técnica?
El snap fue construido para MetaMask Flask 10.20. La versión actual utiliza los permisos endowment:network-access y snap_confirm. El primero se usa en una versión preliminar para solicitar direcciones resueltas y traducir IDs de Twitter a nombres de usuario de Twitter. El segundo muestra una pantalla de confirmación al usuario destacando la dirección resultante antes de que se cree una transacción.
Los resolvers actualmente compatibles son IDriss y ENS. El Snap se ejecuta en localhost.
Para que un desarrollador integre este Snap, y por lo tanto todos los resolvers disponibles, primero debe conectarse a una wallet y al snap:
La invocación ocurre a través del método resolve_send y puede llamarse mediante:
que devuelve la dirección resuelta. Aquí, id_ es el identificador que el usuario introduce en un campo de envío.
Usando el nuevo multiChainProvider, conectarse al snap es tan sencillo como conectarse a la wallet con los permisos requeridos:
El método resolve_send mencionado anteriormente puede renombrarse como eth_sendTransaction, lo que permite a las aplicaciones usar el Multi-resolver Snap sin necesidad de cambiar ninguna integración. Cada vez que se llama a eth_sendTransaction, el Snap interviene y resuelve el input antes de crear la transacción. Las aplicaciones deben permitir inputs de tipo String en lugar de arrojar un error cuando el input del usuario no coincide con una dirección. ¡El snap se encarga del resto!
¿Cuáles son los próximos pasos si implementaras esto?
Como siguiente paso, este snap se hará open-source para animar a otros desarrolladores a buscar errores, mejorar el código e incluso añadir sus propios resolvers personalizados. Hacer el código open-source desbloqueará el verdadero potencial de este Snap: ningún desarrollador o entidad tendrá que integrar todos los servicios de nombres emergentes. Un archivo contribute.md promueve este proceso. Además, se realizará un seguimiento del desarrollo adicional por parte del equipo de MetaMask Snaps.
En concreto, dos aspectos específicos benefician enormemente a este snap:
El permiso endowment:transaction-insight para transferencias entre cuentas, con el fin de eliminar la llamada adicional a snap_confirm antes de que se active una transacción, y
Las inyecciones de UI en MetaMask. El objetivo es implementar el snap en el campo de envío para que los usuarios puedan utilizar el multi-resolver sin necesidad de conectarse a un sitio web.
Por último, se busca una integración completa con el resolver de IDriss. La integración completa permite a los usuarios enviar criptomonedas y NFTs a cualquier correo electrónico, número de teléfono y nombre de usuario de Twitter sin necesidad de estar registrados en el libro de IDriss.
¿Puedes contarnos un poco sobre ti y tu equipo?
Mi nombre es Lennard y me interesa el espacio blockchain desde 2017. Durante más de un año, he estado construyendo y cofundando IDriss, un mapeo descentralizado de correos electrónicos, números de teléfono y nombres de usuario de Twitter a direcciones de wallet. En términos más generales, me enfoco en construir herramientas hacia un web3 más usable, lo que me motivó a desarrollar este snap.
¿Cuándo conociste MetaMask Snaps por primera vez y cómo fue tu experiencia?
El equipo de Snaps tiene una gran presencia en conferencias este año (2022), así que me los he encontrado varias veces. La primera vez que interactué con el código fue después de una de sus presentaciones en EthCC 2022 en París. Aunque las funciones aún eran limitadas, la documentación ya era prometedora, y tengo muchas esperanzas en el futuro de MetaMask Snaps.
¿Qué diferencia a MetaMask Snaps de otras wallets?
Aún no he visto un enfoque similar para incluir a colaboradores externos en el desarrollo de wallets. Aunque otras wallets han hecho su código open-source, Snaps permite a los desarrolladores ampliar la funcionalidad de MetaMask directamente. Estoy seguro de que este enfoque será adoptado por otros proyectos también, ya que puede mantenerse de manera más eficiente.
¿Cómo es para ti y tu equipo el proceso de construir Snaps con MetaMask?
Fue una gran oportunidad construir este snap durante un hackathon. Contar con el equipo de MetaMask Snaps cerca fue de gran ayuda cada vez que surgían preguntas. Algo que aún falta es la capacidad de personalizar la UI de MetaMask. Además, algunos problemas de dependencias son difíciles de depurar, lo que consume la mayor parte del tiempo de desarrollo.
¿Qué significa MetaMask Snaps para ti?
Snaps ofrece un espacio de experimentación para que los desarrolladores integren sus proyectos o ideas directamente en MetaMask de forma sin permisos. Para mí, esto significa que el crecimiento de cualquier proyecto puede acelerarse, ya que los usuarios pueden disfrutar de más beneficios usando las herramientas (wallets) que ya poseen.
¿Qué oportunidades ves con MetaMask Snaps y las posibilidades que desbloquea para el espacio Web3?
Snaps puede ayudar a prevenir estafas mediante transaction insights, crear una experiencia más inclusiva entre redes con keyrings, y permitir una experiencia web3 más amigable para el usuario mediante resolvers personalizados combinados con mejoras de UI. En conjunto, esto traerá a más personas al espacio.
¿Algún consejo que quieras compartir con los desarrolladores que desean probar MetaMask Snaps?
¡Ve a hackathons! Es la mejor manera de interactuar directamente con el equipo y obtener retroalimentación inmediata.
Para comenzar con MetaMask Snaps:
Consulta la documentación para desarrolladores
Instala MetaMask Flask
Revisa una guía de MetaMask Snaps
Mantente conectado con nosotros en Twitter, GitHub discussions y Discord
¡Estate atento a nuestro equipo en el próximo hackathon cerca de ti! ¡Feliz BUIDLing! ⚒️
Aviso legal: Los MetaMask Snaps son generalmente desarrollados por terceros distintos a Consensys Software. El uso de MetaMask Snaps desarrollados por terceros se realiza a tu propia discreción y riesgo, y con el acuerdo de que serás el único responsable de cualquier pérdida o daño que resulte de dichas actividades. Consensys no ofrece ninguna garantía expresa o implícita, ya sea oral o escrita, con respecto a los MetaMask Snaps desarrollados por terceros, y declina toda responsabilidad por los Snaps desarrollados por terceros. El uso de software relacionado con blockchain conlleva riesgos, y los asumes en su totalidad al usar MetaMask Snaps.
Traducido por IA. Puede contener errores. Por favor, verifique siempre la información.