Resumen
La API de Metis se refiere a la interfaz JSON-RPC para la cadena de bloques Metis Andromeda Layer 2, un rollup compatible con Ethereum. Este artículo cubre la configuración de la cadena, los métodos RPC esenciales, cómo conectar billeteras y dApps, y los criterios para elegir un proveedor RPC confiable para cargas de trabajo de producción.
Lista de verificación para la decisión de la API de Metis
Antes de integrar la API de Metis, evalúe estos criterios para asegurarse de que su infraestructura coincida con su carga de trabajo:
| Criterio | Qué verificar | Por qué es importante |
|---|---|---|
| ID de cadena | 1088 (red principal Metis Andromeda) | Un ID de cadena incorrecto causa rechazo de transacciones |
| Fiabilidad del endpoint RPC | Historial de actividad, límites de tasa, soporte de conmutación por error | Endpoints no fiables rompen dApps y causan frustración al usuario |
| Disponibilidad de datos de archivo | Soporte para eth_getLogs y eth_call con bloques históricos | Requerido para análisis, indexación e historial de eventos |
| Soporte de WebSocket | Endpoint WSS para suscripciones en tiempo real | Necesario para actualizaciones en vivo en billeteras y aplicaciones de trading |
| Precisión en la estimación de gas | Consistencia en la respuesta de eth_estimateGas | Previene fallos de transacciones debido a gas subestimado |
| Transparencia del proveedor | Límites de tasa, precios y términos publicados | Evita limitaciones o costos inesperados |
| Disponibilidad de testnet | Testnet de Metis basada en Sepolia para desarrollo | Esencial para pruebas seguras antes del despliegue en mainnet |
¿Qué es la API de Metis?
La API de Metis es la interfaz JSON-RPC para la cadena de bloques Metis Andromeda, una solución de escalado de Ethereum Layer 2 (L2) que utiliza rollups optimistas. Es completamente compatible con la especificación JSON-RPC de Ethereum, lo que significa que cualquier herramienta o biblioteca que funcione con Ethereum (por ejemplo, ethers.js, web3.js, Hardhat) puede conectarse a Metis apuntando a un endpoint RPC de Metis.
Los desarrolladores usan la API de Metis para:
- Enviar transacciones y desplegar contratos inteligentes
- Consultar datos en cadena como saldos, registros y recibos de transacciones
- Estimar costos de gas y simular llamadas a contratos
- Suscribirse a eventos en tiempo real a través de WebSocket
Debido a que Metis es equivalente a EVM, migrar dApps desde Ethereum u otras cadenas EVM requiere cambios mínimos, típicamente solo actualizar el endpoint RPC y el ID de cadena.
Configuración de la cadena Metis
Para conectarse a Metis Andromeda, configure su billetera o aplicación con los siguientes parámetros:
| Parámetro | Valor |
|---|---|
| Nombre de la red | Metis Andromeda |
| URL RPC | (Proporcionada por su proveedor RPC) |
| ID de cadena | 1088 |
| Símbolo de moneda | METIS |
| Explorador de bloques | https://andromeda-explorer.metis.io |
| URL de WebSocket | (Proporcionada por su proveedor RPC) |
Para la testnet Metis Sepolia, use el ID de cadena 59902 y el explorador de testnet correspondiente.
Métodos RPC comunes en Metis
Dado que Metis es compatible con EVM, los métodos JSON-RPC estándar de Ethereum funcionan de manera idéntica. Aquí están los más utilizados:
eth_getBalance
Devuelve el saldo de una dirección.
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getBalance",
"params": ["0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18", "latest"],
"id": 1
}'
eth_call
Ejecuta una llamada a un contrato inteligente sin crear una transacción.
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_call",
"params": [{"to": "0x...", "data": "0x..."}, "latest"],
"id": 1
}'
eth_getLogs
Recupera registros de eventos que coinciden con un filtro. Útil para indexar transferencias de tokens o eventos de contratos.
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_getLogs",
"params": [{
"address": "0x...",
"fromBlock": "0x0",
"toBlock": "latest"
}],
"id": 1
}'
eth_estimateGas
Estima el gas requerido para una transacción.
curl -X POST https://your-metis-rpc.com \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "eth_estimateGas",
"params": [{
"from": "0x...",
"to": "0x...",
"value": "0x0",
"data": "0x..."
}],
"id": 1
}'
eth_subscribe (WebSocket)
Se suscribe a eventos en tiempo real. Requiere una conexión WebSocket.
const WebSocket = require('ws');
const ws = new WebSocket('wss://your-metis-rpc.com');
ws.on('open', () => {
ws.send(JSON.stringify({
jsonrpc: '2.0',
method: 'eth_subscribe',
params: ['newHeads'],
id: 1
}));
});
ws.on('message', (data) => {
console.log(JSON.parse(data));
});
Conexión de billeteras y dApps
La mayoría de las billeteras EVM (MetaMask, WalletConnect, etc.) permiten agregar redes personalizadas. Use la tabla de configuración de la cadena anterior. Para acceso programático, configure su biblioteca de proveedor:
ethers.js
import { ethers } from 'ethers';
const provider = new ethers.JsonRpcProvider('https://your-metis-rpc.com', 1088);
const signer = provider.getSigner();
web3.js
import Web3 from 'web3';
const web3 = new Web3('https://your-metis-rpc.com');
Elegir un proveedor RPC de Metis
Los endpoints RPC públicos (como los de la documentación oficial de Metis) son adecuados para pruebas, pero a menudo tienen límites de tasa estrictos y sin SLA. Para dApps de producción, considere un servicio RPC gestionado que ofrezca:
- Endpoints dedicados: URLs RPC privadas con mayor rendimiento y sin limitación compartida.
- Datos de archivo: Estado histórico completo para consultas como
eth_getLogsdesde el génesis. - Soporte de WebSocket: Para suscripciones en tiempo real.
- Distribución geográfica: Acceso de baja latencia desde múltiples regiones.
- Precios transparentes: Costos predecibles basados en uso o tarifa plana.
OnFinality proporciona endpoints RPC para Metis Andromeda y testnet, con opciones de acceso público y nodos dedicados. Consulte la página de precios para más detalles.
Solución de problemas comunes
"El ID de cadena no coincide"
Asegúrese de que su billetera o aplicación use el ID de cadena 1088 para mainnet y 59902 para testnet.
"Límite de tasa excedido"
Los endpoints públicos a menudo limitan las solicitudes por segundo. Cambie a un endpoint privado o actualice su plan.
"eth_getLogs devuelve vacío"
Verifique la dirección del contrato y el rango de bloques. Algunos proveedores limitan el rango para consultas de archivo; use un proveedor con soporte completo de archivo.
"WebSocket se desconecta con frecuencia"
Verifique la estabilidad de WebSocket de su proveedor. Los endpoints dedicados suelen ofrecer conexiones más fiables.
Conclusiones clave
- La API de Metis es completamente compatible con EVM, por lo que las herramientas existentes de Ethereum funcionan con cambios mínimos.
- El ID de cadena 1088 es crítico para Metis Andromeda; la testnet usa 59902.
- Los métodos JSON-RPC estándar como
eth_getBalance,eth_callyeth_getLogsse utilizan para la recuperación de datos. - Para producción, elija un proveedor con endpoints dedicados, soporte de archivo y capacidades de WebSocket.
- OnFinality ofrece endpoints RPC de Metis como parte de sus redes compatibles.
Preguntas frecuentes
P: ¿Es la API de Metis igual que la JSON-RPC de Ethereum? R: Sí, Metis implementa la especificación JSON-RPC de Ethereum, por lo que los métodos y parámetros son idénticos.
P: ¿Cuál es la URL RPC de la testnet de Metis? R: La testnet Metis Sepolia usa el ID de cadena 59902. Contacte a su proveedor RPC para la URL del endpoint.
P: ¿Puedo usar la API de Metis de forma gratuita? R: Los endpoints públicos están disponibles para pruebas, pero el uso en producción requiere un plan de pago para evitar límites de tasa.
P: ¿Metis soporta WebSocket? R: Sí, la mayoría de los proveedores ofrecen endpoints WSS para suscripciones en tiempo real.
P: ¿Cómo obtengo un endpoint RPC dedicado de Metis? R: Servicios como OnFinality proporcionan nodos dedicados y endpoints RPC. Visite la página de redes para más detalles.