ethers.js vs viem: cuál usar en tu proyecto en 2026
Compara interfaces, tipos derivados del ABI y costes de migración de ethers.js y viem. Evalúa el rendimiento con el proyecto y las versiones concretas.

Una aplicación que utiliza Ethereum necesita consultar datos de la red, comunicarse con contratos y solicitar firmas al usuario. viem y ethers.js son bibliotecas que facilitan esa conexión desde el código de la aplicación. Elegir entre ellas influye en cómo el equipo organiza las llamadas, interpreta las respuestas y gestiona los errores.
viem destaca por la inferencia de tipos a partir del ABI, que describe la interfaz del contrato. ethers.js organiza el trabajo mediante proveedores, firmantes y contratos. Comparar ambos enfoques sobre una operación del proyecto permite valorar sus integraciones y su comportamiento cuando el usuario rechaza una firma o el proveedor deja de responder.
Tipado e integración con Ethereum
viem permite inferir nombres de funciones, argumentos y resultados a partir de un ABI disponible como tipo literal. Es una ayuda para detectar errores durante el desarrollo, pero no comprueba que el contrato desplegado coincida con ese ABI ni evita fallos del RPC, permisos o cambios de estado.
ethers.js v6 ofrece interfaces para contratos, proveedores y firmantes. Un proyecto que ya depende de su API debe valorar el coste de migración, las integraciones de terceros y las pruebas que habrá que adaptar. Cambiar de biblioteca no consiste solo en cambiar imports.
Cómo comparar el tamaño de la aplicación
No existe un peso único que describa todos los proyectos. El resultado cambia con la versión, los imports, el bundler y la compresión. Para comparar, construye dos aplicaciones con las mismas operaciones: conectar una wallet, leer un contrato y enviar una transacción. Mide el JavaScript enviado al navegador, incluyendo conectores y dependencias.
El tree-shaking puede eliminar código no utilizado cuando el paquete y la configuración lo permiten. Publicar cifras en kB sin ese contexto mezcla tamaños de descarga, paquete completo y bundle final.
Prueba de integración antes de elegir
- Comprueba la inferencia del ABI y cómo se representan enteros y direcciones.
- Prueba rechazo de firma, cambio de cuenta o red y errores de transporte.
- Distingue envío de una transacción, inclusión y confirmación.
- Revisa las dependencias del SDK y de los conectores de wallet.
Una transferencia como prueba de comparación
Para evaluar ambas bibliotecas, construye el mismo recorrido con un token de prueba. La aplicación lee el saldo, convierte el importe introducido a las unidades del contrato, prepara la operación y solicita autorización. Después conserva la referencia de envío y consulta su resultado. Esta propuesta de prueba mide una integración completa, sin atribuir diferencias de rendimiento antes de observarlas.
Incluye un importe con decimales, un saldo insuficiente y un cambio de red durante el proceso. Si se pierde precisión al transformar el importe, el tipado del ABI no corrige automáticamente el error de negocio. La interfaz debe mantener separados el valor presentado al usuario y el entero utilizado por el contrato.
viem ofrece simulateContract para simular una llamada antes de enviarla. Esa consulta puede ayudar a detectar un rechazo, pero el estado puede cambiar antes de la ejecución. En la comparación, importa cómo se muestra ese cambio al usuario y cómo se recupera el flujo, además de cuántas líneas requiere la llamada.
Para una migración, conserva casos reproducibles de las operaciones existentes y compara resultados antes de sustituir la biblioteca. Incluye los errores que consume el frontend: una nueva forma de representar una excepción puede romper la experiencia aunque la transacción correcta siga funcionando.
Criterio de elección
Para un frontend nuevo en TypeScript, viem merece una prueba por su inferencia y su API modular. Si usas React, examina también la integración con wagmi. Si ethers.js ya resuelve las necesidades del producto, exige un beneficio concreto antes de migrar.
Este es un criterio técnico de evaluación, no una clasificación de popularidad ni una garantía de seguridad. La decisión debe quedar respaldada por un pequeño prototipo y por las necesidades de mantenimiento del equipo.
¿Tienes un proyecto blockchain en mente?
De la idea al producto, estrategia y tecnología deben avanzar juntas.







