Ejecutar una dApp de Ethereum en producción sin un proveedor de nodos fiable es un camino corto hacia la sobrecarga. Los nodos Geth autoalojados se retrasan, pierden las reorganizaciones y se bloquean en el momento en que tu aplicación gana tracción. La API de Alchemy soluciona esto proporcionándote una capa de nodos robusta y un conjunto de APIs mejoradas que la especificación JSON-RPC original nunca definió, como obtener cada NFT en una billetera con una sola llamada en lugar de escanear cada bloque desde el génesis.
Esta guía recorre toda la superficie de la API de Alchemy: creando una aplicación, autenticándose, llamando a métodos JSON-RPC estándar, utilizando endpoints mejorados, suscribiéndose a transacciones pendientes a través de WebSocket y lanzando cuentas inteligentes con patrocinio de gas a través de Account Kit. Verás ejemplos con curl y Node para cada flujo principal, y entenderás cómo las unidades de cómputo (CU) se relacionan con tu factura mensual antes de implementar.
Si estás evaluando la infraestructura de billeteras y web3 de manera más amplia, Apidog te ayuda a probar cada endpoint en un solo lugar. Consulta también nuestra guía sobre la mejor API de billetera de criptomonedas para tener una visión de mercado más amplia antes de comprometerte con un proveedor.
En resumen
- Alchemy cubre Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, zkSync, Starknet y más desde un único panel.
- Cada aplicación obtiene endpoints HTTPS y WebSocket para JSON-RPC estándar, además de APIs mejoradas como
alchemy_getAssetTransfers,alchemy_getTokenBalancesygetNFTs. - El SDK de Alchemy para JavaScript (
alchemy-sdk) envuelve ethers.js y añade ayudantes tipados para cada endpoint mejorado. - Account Kit implementa cuentas inteligentes ERC-4337 con patrocinio de gas, claves de sesión y autenticación con passkey a través de Gas Manager.
- El uso se mide en unidades de cómputo; el nivel gratuito te da 300M CU por mes, Growth es 400M CU más excedente, Scale es personalizado.
- Los límites de velocidad son por aplicación y por método; las solicitudes por lotes y la retirada incorporada del SDK te mantienen por debajo de los límites de aceleración.
¿Qué es la API de Alchemy?
Alchemy es una plataforma para desarrolladores web3 que opera nodos de blockchain gestionados y superpone un motor de indexación de datos. Obtienes tres recursos difíciles de construir por tu cuenta:
- Nodos JSON-RPC de alta disponibilidad en más de 40 cadenas.
- APIs mejoradas que preindexan transferencias y metadatos NFT.
- Una pila de abstracción de cuentas (Account Kit) para una experiencia de usuario sin gas.
Por ejemplo, obtener cada transferencia ERC-20 para una dirección requiere solo una llamada a alchemy_getAssetTransfers; en un nodo simple tendrías que iterar bloque por bloque. Por eso muchas billeteras, dashboards DeFi y marketplaces NFT usan Alchemy en producción.
Autenticación y configuración
- Crea una cuenta en el panel de control de Alchemy.
- Haz clic en Crear nueva aplicación.
- Elige una cadena (Ethereum Mainnet, Polygon, Base, etc.) y red (mainnet o testnet como Sepolia).
- Obtén tu clave API única (forma el último segmento de la URL).
Endpoints:
# HTTPS
https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
# WebSocket
wss://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY
Recomendaciones:
- Trata la clave API como un secreto. Usa variables de entorno.
- Para apps de navegador, configura listas blancas en el panel de control para restringir el uso por dominio.
Instalación del SDK:
npm install alchemy-sdk
Inicializa un cliente:
import { Alchemy, Network } from "alchemy-sdk";
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
const block = await alchemy.core.getBlockNumber();
console.log("Latest block:", block);
Endpoints principales
JSON-RPC estándar sobre HTTPS
Puedes ejecutar cualquier método estándar de Ethereum JSON-RPC. Ejemplo con eth_getBalance usando curl:
curl https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"method":"eth_getBalance",
"params":["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","latest"],
"id":1
}'
La respuesta es el saldo en wei (hexadecimal). El mismo patrón aplica para eth_call, eth_sendRawTransaction, eth_getLogs, etc.
API mejorada: getAssetTransfers
alchemy_getAssetTransfers te devuelve cada transferencia (ETH, ERC-20, ERC-721, ERC-1155, internas y externas) para una dirección en un rango de bloques. Una llamada reemplaza miles de queries a eth_getLogs.
import { Alchemy, Network, AssetTransfersCategory } from "alchemy-sdk";
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
const transfers = await alchemy.core.getAssetTransfers({
fromBlock: "0x0",
toAddress: "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
category: [
AssetTransfersCategory.EXTERNAL,
AssetTransfersCategory.ERC20,
AssetTransfersCategory.ERC721,
],
maxCount: 100,
});
for (const t of transfers.transfers) {
console.log(`${t.asset} ${t.value} from ${t.from} to ${t.to}`);
}
API mejorada: getTokenBalances y getNFTs
Para obtener todos los tokens en una wallet (sin conocer los contratos):
const balances = await alchemy.core.getTokenBalances(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
for (const token of balances.tokenBalances) {
const meta = await alchemy.core.getTokenMetadata(token.contractAddress);
console.log(`${meta.symbol}: ${token.tokenBalance}`);
}
Para obtener los NFT de una wallet:
const nfts = await alchemy.nft.getNftsForOwner(
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
);
console.log(`Owns ${nfts.totalCount} NFTs`);
API de suscripción sobre WebSocket
La API de suscripción te permite recibir eventos en tiempo real. Suscríbete a transacciones pendientes para una dirección:
import { Alchemy, Network, AlchemySubscription } from "alchemy-sdk";
const alchemy = new Alchemy({
apiKey: process.env.ALCHEMY_API_KEY,
network: Network.ETH_MAINNET,
});
alchemy.ws.on(
{
method: AlchemySubscription.PENDING_TRANSACTIONS,
toAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
},
(tx) => console.log("Pending USDC tx:", tx.hash)
);
Este patrón es ideal para bots de mempool, MEV y UIs en tiempo real, evitando el polling constante.
Account Kit y Gas Manager
Account Kit es la solución de cuentas inteligentes de Alchemy. Incluye un SDK de React, implementaciones de cuentas inteligentes (Light Account y Modular Account) y Gas Manager para patrocinar transacciones de usuarios. Los usuarios se registran con passkey o email, obtienen una wallet inteligente y evitan la gestión de seeds o gas.
import { createLightAccountClient } from "@account-kit/smart-contracts";
import { alchemy, sepolia } from "@account-kit/infra";
const client = createLightAccountClient({
transport: alchemy({ apiKey: process.env.ALCHEMY_API_KEY }),
chain: sepolia,
signer: yourSigner,
});
const { hash } = await client.sendUserOperation({
uo: { target: "0x...", data: "0x", value: 0n },
});
Para flujos de onboarding que combinan cuentas inteligentes y wallets embebidas, revisa la guía sobre la API de Privy.
Errores comunes y límites de velocidad
Alchemy mide el uso en unidades de cómputo (CU). Cada método tiene un costo:
-
eth_call: 26 CU -
eth_getLogs: 75 CU -
alchemy_getAssetTransfers: 150 CU -
eth_getBlockByNumber: 16 CU
El nivel gratuito otorga 300M CU/mes; cada nivel superior incrementa límites y features.
Errores frecuentes:
- 429 Demasiadas solicitudes: Límite de CU por segundo alcanzado. Implementa backoff; el SDK lo maneja automáticamente.
- 403 Prohibido: Error de whitelist o clave deshabilitada.
- -32600 Solicitud inválida: JSON-RPC mal formado.
-
-32000 ejecución revertida: La llamada al contrato fue revertida; decodifica la razón usando
eth_cally simuladores.
Consejo: Usa solicitudes por lotes (hasta 1000 por POST) para optimizar uso y CUs. Para pruebas de batch, revisa pruebas de API sin Postman.
Precios de Alchemy
- Gratuito: 300M CU/mes, 1 app, soporte comunidad. Ideal prototipos y proyectos personales.
- Crecimiento: $49/mes, 400M CU incluidos, excedente facturado, análisis avanzados.
- Escala: $289/mes, 1.5B CU, rendimiento dedicado, soporte prioritario.
- Empresarial: Precios personalizados, SLAs, nodos privados, soporte ingeniería dedicada.
Las CU se reinician mensualmente. Si excedes el límite en Growth/Scale, pagas el excedente; en Free, las solicitudes fallan con 429 hasta el siguiente ciclo. Monitorea el uso en el dashboard durante tu primer mes para ajustar bien el nivel.
Probando la API de Alchemy con Apidog
Depurar JSON-RPC manualmente puede ser complejo. Cada request es un POST con arrays y respuestas en hexadecimal; las suscripciones WebSocket no son triviales de monitorear en terminal. Apidog te da un workspace unificado para tráfico REST, GraphQL y WebSocket. Así puedes:
- Acceder a los endpoints HTTPS de Alchemy.
- Abrir un WebSocket a
wss://eth-mainnet.g.alchemy.com/v2/.... - Visualizar suscripciones de transacciones pendientes en tiempo real.
Guarda tu clave API como variable de entorno y reutilízala en colecciones para mainnet, Sepolia, Polygon y Base. Programa aserciones en los campos de respuesta para detectar regresiones al lanzar nuevos endpoints. Descarga Apidog e importa la especificación OpenAPI de Alchemy para configurar tu colección en menos de un minuto.
Preguntas frecuentes
¿Alchemy es gratuito para uso en producción?
Sí, dentro de los 300M CU al mes. Muchas dApps pequeñas operan indefinidamente en el tier gratuito. Si necesitas más rendimiento, Growth ($49) es el siguiente paso.
¿Alchemy es compatible con Solana?
Sí. Alchemy soporta mainnet y devnet de Solana, con métodos RPC estándar y endpoints mejorados para tokens y NFT. Crea una app de Solana para obtener el endpoint.
¿Puedo usar la API de Alchemy sin el SDK?
Totalmente. Todos los endpoints se pueden llamar por HTTPS con curl, fetch o cualquier cliente HTTP. El SDK es opcional, solo agrega conveniencia, tipados y reconexión automática.
¿Cuál es la diferencia entre Alchemy y las APIs de MetaMask?
MetaMask se enfoca en la experiencia de usuario y firma; Alchemy en nodos y datos. Son complementarios. Consulta esta guía sobre la API de MetaMask para detalles.
¿Cómo roto una clave API de Alchemy?
Crea una nueva app, actualiza tu entorno, despliega, y luego elimina la app vieja. No hay rotación inmediata, planifica una breve ventana de solapamiento.
¿Account Kit funciona en cualquier cadena EVM?
Account Kit es compatible con Ethereum, Optimism, Arbitrum, Base, Polygon y sus testnets. Configura las políticas de Gas Manager por red.
Top comments (0)