Logo
Nuevos usuarios de RPC: 35% de descuento el primer mesVer oferta
RPC Assistant

Polygon Mainnet RPC: ¿Cómo te conectas a la Chain ID 137?

Resumen

Polygon Mainnet es una cadena compatible con EVM identificada por la chain ID 137, con POL como su token de gas nativo. Para conectarte, apunta tu billetera o aplicación a un endpoint RPC HTTP o WebSocket y confirma que la chain ID coincida con 137 antes de enviar transacciones. OnFinality proporciona un endpoint público de Polygon para pruebas e infraestructura de nodo dedicada de Polygon para cargas de trabajo en producción que necesitan capacidad constante.

Polygon Mainnet es una red compatible con EVM con chain ID 137 y POL como su token de gas nativo. Si estás conectando una billetera, un indexador backend o un bot de trading a Polygon, lo primero que necesitas es un endpoint RPC funcional más la configuración correcta de la cadena. Esta página te da la configuración, algunos ejemplos de solicitudes y una forma práctica de decidir entre un endpoint público y una infraestructura de nodo dedicada.

Recomendación rápida: ¿endpoint público o nodo dedicado?

Comienza con el endpoint público cuando estés prototipando, ejecutando un script o verificando que la configuración de tu billetera sea correcta. Es la forma más rápida de confirmar la chain ID, los saldos y las llamadas a contratos sin necesidad de registrarte.

Cambia a un nodo dedicado de Polygon cuando se cumpla cualquiera de estas condiciones:

  • Envías un flujo constante de solicitudes eth_call, eth_getLogs o eth_sendRawTransaction y no puedes tolerar capacidad compartida.
  • Necesitas un rendimiento predecible durante mints, liquidaciones u otros eventos de ráfaga.
  • Dependes de suscripciones WebSocket como newHeads o logs y quieres una conexión que controles.
  • Necesitas lecturas históricas tipo archivo o depuración tipo trace que los endpoints públicos a menudo restringen.

OnFinality ofrece ambos: un endpoint público de Polygon para desarrollo e infraestructura de nodo dedicado para producción. Puedes revisar los precios de RPC y las redes RPC compatibles para ver qué se ajusta a tu carga de trabajo.

Configuración de Polygon Mainnet de un vistazo

Usa estos valores al agregar Polygon a una billetera, una configuración de Hardhat o un cliente backend.

ConfiguraciónValor
Nombre de la redPolygon Mainnet
Chain ID137
Moneda nativaPOL (18 decimales)
Explorador de bloqueshttps://polygonscan.com
TransporteHTTP y WebSocket
URL RPC públicahttps://polygon.api.onfinality.io/public

Si una herramienta solicita un "network ID" por separado de una chain ID, usa 137 para ambos en Polygon Mainnet. Los ID que no coinciden son una de las causas más comunes de errores de "red incorrecta" en billeteras y dApps.

Conexión desde una billetera

La mayoría de las billeteras EVM aceptan una red personalizada. Ingresa los valores anteriores y luego confirma que la billetera muestre POL como token de gas y que el saldo de tu dirección se cargue. Si el saldo está vacío pero esperas fondos, verifica que no sigas apuntando a una testnet como Polygon Amoy (chain ID 80002).

Un error común es pegar una URL RPC de testnet mientras se mantiene la chain ID de mainnet, o al revés. La billetera rechazará la conexión o mostrará silenciosamente los saldos incorrectos. Siempre empareja el endpoint con la chain ID 137 para mainnet.

Realizando tus primeras llamadas JSON-RPC

Puedes verificar un endpoint con una sola solicitud curl. El siguiente ejemplo pide el número de bloque actual:

curl -X POST https://polygon.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

Una respuesta saludable devuelve un número de bloque en hexadecimal. A partir de ahí, puedes verificar la chain ID y obtener un saldo:

curl -X POST https://polygon.api.onfinality.io/public \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"eth_chainId","params":[]}'

El resultado de eth_chainId debería ser 0x89, que es 137 en decimal. Si obtienes un valor diferente, estás hablando con la red incorrecta.

Usando Polygon desde JavaScript

Con ethers, puedes apuntar un proveedor al endpoint y leer el estado sin administrar claves:

import { JsonRpcProvider, formatEther } from "ethers";

const provider = new JsonRpcProvider("https://polygon.api.onfinality.io/public");

const network = await provider.getNetwork();
console.log("chainId:", network.chainId.toString()); // 137

const block = await provider.getBlockNumber();
console.log("latest block:", block);

const balance = await provider.getBalance("0xYourAddressHere");
console.log("POL balance:", formatEther(balance));

Si usas viem, la misma idea aplica con createPublicClient y http() apuntando al endpoint. Para enviar transacciones, agrega un firmante y asegúrate de que la cuenta tenga suficiente POL para cubrir el gas.

Suscripciones WebSocket en Polygon

Polygon admite transporte WebSocket, lo cual es útil para reaccionar a nuevos bloques o eventos específicos de contratos sin hacer polling. Una suscripción mínima se ve así:

import WebSocket from "ws";

const ws = new WebSocket("wss://polygon.api.onfinality.io/public/ws");

ws.on("open", () => {
  ws.send(JSON.stringify({
    jsonrpc: "2.0",
    id: 1,
    method: "eth_subscribe",
    params: ["newHeads"]
  }));
});

ws.on("message", (data) => {
  const msg = JSON.parse(data.toString());
  if (msg.method === "eth_subscription") {
    console.log("new head:", msg.params.result.number);
  }
});

Las conexiones WebSocket son con estado, así que planifica reconexiones. Si tu aplicación depende de suscripciones de larga duración, un nodo dedicado te da una conexión que no se comparte con tráfico no relacionado.

Qué falla primero en producción

La mayoría de los problemas de Polygon RPC no son exóticos. Caen en unas pocas categorías repetibles:

SíntomaCausa probableQué verificar
"Red incorrecta" en la billeteraLa chain ID no coincide con el endpointConfirma la chain ID 137 y la URL de mainnet
Saldo vacíoApuntando a testnetVerifica Amoy (80002) vs mainnet (137)
Solicitudes lentas o limitadasCapacidad pública compartidaMueve las lecturas pesadas a un nodo dedicado
eth_getLogs falla o expiraRango de bloques amplio en endpoint compartidoReduce el rango o usa un nodo dimensionado para consultas de logs
Suscripción se caeWebSocket inactivo o inestableAgrega lógica de reconexión y heartbeat
Transacción atascadaPrecio de gas demasiado bajo para las condiciones actualesVuelve a estimar el gas y verifica el saldo de POL

Si estás depurando un fallo específico, aíslalo: ejecuta eth_chainId, luego eth_blockNumber, luego el método que falla. Esa secuencia te dice si el problema es el endpoint, la red o tu payload de solicitud.

Eligiendo infraestructura para cargas de trabajo en Polygon

La elección correcta depende de lo que realmente hace tu aplicación. Una forma rápida de enmarcarlo:

Carga de trabajoEndpoint públicoNodo dedicado
Prototipado y scriptsBuena opciónNo necesario
Lecturas de billetera o dAppGeneralmente bienÚtil a escala
Indexación de alto volumenRiesgosoRecomendado
Suscripciones WebSocketLimitadoRecomendado
Consultas de archivo o traceA menudo restringidoRecomendado
Tráfico en ráfaga (mints, liquidaciones)ImpredecibleRecomendado

La página de red RPC de Polygon de OnFinality lista el endpoint y los detalles de transporte. Si estás comparando proveedores de manera más amplia, la guía de selección de proveedor de RPC cubre criterios como soporte de métodos, failover y observabilidad.

Agregando failover y monitoreo

Un solo endpoint es un único punto de falla. Para producción, ejecuta al menos dos endpoints y cambia según umbrales de error o latencia. Una sonda de salud simple puede verificar la chain ID y la frescura del bloque:

async function probe(url) {
  const res = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      jsonrpc: "2.0",
      id: 1,
      method: "eth_chainId",
      params: []
    })
  });
  const data = await res.json();
  return data.result === "0x89";
}

Ejecuta esto de forma programada y redirige el tráfico lejos de los endpoints que fallen o se retrasen. Rastrea la altura del bloque a lo largo del tiempo para detectar un nodo que se está quedando atrás en lugar de fallar por completo.

Puntos clave

  • Polygon Mainnet usa chain ID 137 y POL como su token de gas nativo.
  • El endpoint público de OnFinality en https://polygon.api.onfinality.io/public es adecuado para desarrollo y verificación.
  • Confirma que eth_chainId devuelva 0x89 antes de confiar en cualquier endpoint.
  • Usa transporte WebSocket para suscripciones y agrega lógica de reconexión.
  • Mueve lecturas pesadas, consultas de logs y suscripciones a un nodo dedicado cuando la capacidad compartida se convierta en un cuello de botella.
  • Siempre planifica failover y monitorea la frescura del bloque, no solo el uptime.

Preguntas frecuentes

¿Cuál es la URL RPC de Polygon Mainnet?

El endpoint público de Polygon de OnFinality es https://polygon.api.onfinality.io/public. Para producción, usa un endpoint dedicado desde el panel de tu proveedor.

¿Cuál es la chain ID de Polygon?

Polygon Mainnet usa chain ID 137, que es 0x89 en hexadecimal. Polygon Amoy, la testnet, usa chain ID 80002.

¿Polygon RPC admite WebSocket?

Sí. Polygon admite transporte HTTP y WebSocket. Usa WebSocket para métodos eth_subscribe como newHeads y logs.

¿Puedo usar el endpoint público en producción?

Puedes, pero la capacidad compartida es impredecible bajo carga. Para tráfico constante, ráfagas o suscripciones, un nodo dedicado es la opción más segura.

¿Cómo sé si mi endpoint está en la red incorrecta?

Llama a eth_chainId. Si no devuelve 0x89, estás conectado a una red diferente o a una testnet.

¿Dónde puedo ver los endpoints de Polygon compatibles y los precios?

Consulta la página de la red Polygon, los precios de RPC y la lista completa de redes RPC compatibles.

Base de conocimiento RPC

Detalles RPC relacionados

Nunca te preocupes por la infraestructura nuevamente

OnFinality elimina la carga pesada de DevOps para que puedas construir de forma más inteligente y rápida.

Comenzar