BEZ-Coin token logoBEZHAS
lanIntegraciónIntermedio3 min de lectura

RPC y endpoints

Redes y chain IDs

RedChain IDNotas
BeZhas L22708Red del protocolo, gas en BEZ, bloque de 2 s
Local (Anvil)31337Desarrollo con Foundry
Polygon137BEZ ERC-20
BNB Chain56Bridge (próximamente); BEZ no está desplegado en BNB

Las direcciones de contrato no coinciden entre redes. Resuélvelas siempre por SDK o por API, nunca hardcodeadas.

Desarrollo local

bash
anvil --chain-id 31337 --port 8545
env
BEZHAS_L2_RPC_URL=http://127.0.0.1:8545
BEZHAS_CHAIN_ID=31337

Comprobar que responde:

bash
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'

WebSocket, cuando el nodo lo expone: ws://127.0.0.1:8546.

Métodos JSON-RPC

La L2 es EVM-compatible: funcionan los métodos estándar de Ethereum.

MétodoUso
eth_chainIdVerificar a qué red estás conectado
eth_blockNumberAltura de bloque actual
eth_getBalanceSaldo nativo de una dirección
eth_callLectura de contrato sin transacción
eth_estimateGasEstimar coste antes de firmar
eth_sendRawTransactionEnviar transacción firmada
eth_getLogsConsultar eventos históricos
eth_subscribeSuscripción a eventos (solo WS)

Conectar desde tu aplicación

ethers.js v6

js
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider(process.env.BEZHAS_L2_RPC_URL);
const red = await provider.getNetwork();
console.log('chainId:', red.chainId);

viem

js
import { createPublicClient, http, defineChain } from 'viem';

export const bezhasL2 = defineChain({
  id: 2708,
  name: 'BeZhas L2',
  nativeCurrency: { name: 'BeZhas Coin', symbol: 'BEZ', decimals: 18 },
  rpcUrls: { default: { http: [process.env.BEZHAS_L2_RPC_URL] } },
});

const client = createPublicClient({ chain: bezhasL2, transport: http() });

Añadir la red a una wallet

js
await window.ethereum.request({
  method: 'wallet_addEthereumChain',
  params: [{
    chainId: '0xA94',                 // 2708
    chainName: 'BeZhas L2',
    nativeCurrency: { name: 'BeZhas Coin', symbol: 'BEZ', decimals: 18 },
    rpcUrls: ['<RPC público de BeZhas L2>'],
    blockExplorerUrls: ['<explorador de BeZhas L2>'],
  }],
});

Consulta los endpoints públicos vigentes en la página RPC & Nodos del portal — se actualizan ahí antes que en cualquier copia.

Opciones de acceso

ModoPara quéConsideraciones
RPC públicoPruebas, lecturas, volumen bajoRate limit compartido
RPC dedicadoProducción con carga sostenidaCuota propia y SLA
Nodo propioMáxima privacidad y controlVer Nodos

Si tus consultas revelan patrones de negocio (qué contenedores rastreas, con qué contrapartes operas), un RPC público las expone a quien opere ese endpoint. Para operación real, nodo propio o RPC dedicado.

Buenas prácticas

  • No expongas tu RPC a Internet sin autenticación ni rate limiting.
  • Usa siempre HTTPS/WSS fuera de localhost.
  • Reintenta con backoff exponencial: un RPC puede devolver 429 bajo carga.
  • Prefiere eth_getLogs con rangos acotados y filtros por dirección y topic; las consultas de rango abierto son lentas y suelen recortarse.
  • Verifica eth_chainId al arrancar: es la forma más barata de detectar que apuntas a la red equivocada antes de firmar algo.
  • Para eventos en tiempo real usa WebSocket con reconexión automática, no sondeo agresivo.

Ver también