Saltar al contenido principal
Change page

Bibliotecas de API de JavaScript

Para que una aplicación web interactúe con la cadena de bloques de Ethereum (es decir, lea datos de la cadena de bloques y/o envíe transacciones a la red), debe conectarse a un nodo de Ethereum.

Para este propósito, cada cliente de Ethereum implementa la especificación JSON-RPC, por lo que hay un conjunto uniforme de métodos en los que las aplicaciones pueden confiar.

Si quieres usar JavaScript para conectarte con un nodo de Ethereum, es posible usar JavaScript puro, pero existen varias bibliotecas de conveniencia dentro del ecosistema que lo hacen mucho más fácil. Con estas bibliotecas, los desarrolladores pueden escribir métodos intuitivos de una sola línea para inicializar solicitudes JSON-RPC (internamente) que interactúan con Ethereum.

Ten en cuenta que desde La Fusión, se requieren dos piezas de software de Ethereum conectadas (un cliente de ejecución y un cliente de consenso) para ejecutar un nodo. Asegúrate de que tu nodo incluya tanto un cliente de ejecución como uno de consenso. Si tu nodo no está en tu máquina local (por ejemplo, tu nodo se está ejecutando en una instancia de AWS), actualiza las direcciones IP en el tutorial en consecuencia. Para obtener más información, consulta nuestra página sobre cómo ejecutar un nodo.

Requisitos previos

Además de entender JavaScript, podría ser útil entender la pila de Ethereum y los clientes de Ethereum.

¿Por qué usar una biblioteca?

Estas bibliotecas abstraen gran parte de la complejidad de interactuar directamente con un nodo de Ethereum. También proporcionan funciones de utilidad (por ejemplo, convertir ETH a Gwei) para que, como desarrollador, puedas pasar menos tiempo lidiando con las complejidades de los clientes de Ethereum y más tiempo enfocado en la funcionalidad única de tu aplicación.

Características de las bibliotecas

Conectarse a nodos de Ethereum

Usando proveedores, estas bibliotecas te permiten conectarte a Ethereum y leer sus datos, ya sea a través de JSON-RPC, Infura, Etherscan, Alchemy o MetaMask.

Advertencia: Web3.js fue archivado el 4 de marzo de 2025. Lee el anuncio (opens in a new tab). Considera usar bibliotecas alternativas como ethers.js (opens in a new tab) o viem (opens in a new tab) para proyectos nuevos.

Ejemplo con Ethers

// Un BrowserProvider envuelve un proveedor estándar de Web3, que es
// lo que MetaMask inyecta como window.ethereum en cada página
const provider = new ethers.BrowserProvider(window.ethereum)

// El complemento de MetaMask también permite firmar transacciones para
// enviar ether y pagar para cambiar el estado dentro de la cadena de bloques.
// Para esto, necesitamos el firmante de la cuenta...
const signer = provider.getSigner()

Ejemplo con Web3js

Una vez configurado, podrás consultar la cadena de bloques para obtener:

  • números de bloque
  • estimaciones de gas
  • eventos de contratos inteligentes
  • ID de la red
  • y más...

Funcionalidad de billetera

Estas bibliotecas te brindan la funcionalidad para crear billeteras, administrar claves y firmar transacciones.

Aquí hay un ejemplo de Ethers

Lee la documentación completa (opens in a new tab)

Una vez configurado, podrás:

  • crear cuentas
  • enviar transacciones
  • firmar transacciones
  • y más...

Interactuar con funciones de contratos inteligentes

Las bibliotecas de clientes de JavaScript permiten que tu aplicación llame a funciones de contratos inteligentes leyendo la Interfaz Binaria de Aplicación (ABI) de un contrato compilado.

La ABI explica esencialmente las funciones del contrato en un formato JSON y te permite usarlo como un objeto normal de JavaScript.

Así que el siguiente contrato de Solidity:

Daría como resultado el siguiente JSON:

Esto significa que puedes:

  • Enviar una transacción al contrato inteligente y ejecutar su método
  • Llamar para estimar el gas que tomará la ejecución de un método cuando se ejecute en la EVM
  • Desplegar un contrato
  • Y más...

Funciones de utilidad

Las funciones de utilidad te brindan atajos prácticos que hacen que construir con Ethereum sea un poco más fácil.

Los valores de ETH están en Wei por defecto. 1 ETH = 1,000,000,000,000,000,000 Wei – ¡esto significa que estás lidiando con muchos números! web3.utils.toWei convierte ether a Wei por ti.

Y en ethers se ve así:

// Obtener el saldo de una cuenta (por dirección o nombre ENS)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// A menudo necesitarás formatear la salida para el usuario
// que prefiere ver los valores en ether (en lugar de Wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Bibliotecas disponibles

Web3.js - API de JavaScript de Ethereum.

Ethers.js - Implementación completa de billetera de Ethereum y utilidades en JavaScript y TypeScript.

The Graph - Un protocolo para indexar datos de Ethereum e IPFS y consultarlos usando GraphQL.

Alchemy SDK - Envoltorio (wrapper) alrededor de Ethers.js con API mejoradas.

viem - Interfaz de TypeScript para Ethereum.

Codex - API de datos de cadena de bloques enriquecidos en tiempo real en docenas de cadenas.

Drift - Metabiblioteca de TypeScript con almacenamiento en caché integrado, hooks y simulaciones (mocks) de prueba.

Lecturas adicionales

¿Conoces algún recurso de la comunidad que te haya ayudado? ¡Edita esta página y agrégalo!

Tutoriales: API de JavaScript y WebSockets en Ethereum

  • Usar WebSockets – Cómo usar WebSockets con Alchemy para suscribirse a eventos de Ethereum y hacer solicitudes JSON-RPC en tiempo real.