Solo con fines educativos; no constituye asesoramiento de inversión. Invertir puede ocasionar pérdidas.
Respuesta directa
En el ecosistema EVM, un chain ID es un entero configurado que se utiliza como parámetro del dominio anti-replay. EIP-155 lo incorpora a las firmas protegidas de transacciones legacy; los formatos tipados, como el tipo 2, lo codifican en su propio payload firmado; CHAINID lo expone durante la ejecución de EVM; y eth_chainId lo comunica mediante JSON-RPC. Son interfaces relacionadas, no un certificado universal de identidad.
No se garantiza que el valor sea único en todo el mundo ni permanente. Las redes privadas y los forks controvertidos pueden reutilizarlo, un RPC puede mentir y una misma dirección puede contener código y estado diferentes en distintas cadenas. EIP-712 incluye un campo opcional de chain ID en el dominio, mientras que los mensajes sin estructura y los sistemas no EVM aplican reglas distintas de replay e identidad de red. Por ello deben conocerse el esquema exacto de firma, el endpoint, el genesis o checkpoint y el dominio de la aplicación.
Cómo funciona
- Identifique primero el ecosistema y la semántica del identificador: entero EIP-155 de EVM, dominio EIP-712, referencia con namespace CAIP-2, chain ID textual de Cosmos, genesis hash de Solana u otro esquema. Nunca compare un número sin calificar entre ecosistemas.
- Fije una instantánea fiable de la red: URL RPC, chain ID esperado en decimal y hexadecimal, genesis o checkpoint finalizado, bloque de cabecera, configuración del cliente,
codeHashde contratos clave y fecha de la fuente. El nombre y el icono de red de una wallet son metadatos no fiables. - Consulte
eth_chainIdpara firmar en EVM y analice la cantidad hexadecimal de JSON-RPC sin perder precisión. Compare el entero normalizado con la configuración esperada y el estado del proveedor de la wallet; no sustituyanet_versiony rechace cualquier discrepancia antes de construir una firma. - Reconstruya el dominio exacto de firma. Distinga transacciones legacy sin protección, codificación legacy protegida por EIP-155 y envelopes tipados; en EIP-712 verifique los campos de dominio,
verifyingContract, nonce y deadline; en intents retransmitidos o de smart accounts inspeccione el hash interno del protocolo. - Verifique el destino de ejecución en la cadena activa: destinatario, valor, calldata, dirección del token, código del contrato o implementación del proxy, nonce de la cuenta, comisiones y estado simulado. El chain ID separa un dominio, pero no prueba que ninguno de esos objetos sea auténtico.
- Trate
chainChangedde EIP-1193, los cambios de cuenta y las desconexiones como límites estrictos de estado. Descarte cotizaciones, allowances, nonces, simulaciones y solicitudes de firma almacenados; vuelva a leer cadena y destino; transmita solo la transacción bruta revisada al endpoint fijado. - Concilie la transacción en la cadena prevista: bytes firmados y hash, aceptación del RPC, estado del recibo, número y hash del bloque, consumo del nonce, cambios de estado y finalidad requerida. Vigile forks, cambios de ID, confusión de dominios L1/L2 y desviaciones del proveedor; ante diferencias inexplicadas, deténgase.
Ejemplos desarrollados
- Control RPC hexadecimal y decimal. Base tiene chain ID decimal
8453, representado poreth_chainIdcomo0x2105:2 * 4096 + 1 * 256 + 0 * 16 + 5 = 8453. Ethereum mainnet es1 = 0x1y Arbitrum One42161 = 0xa4b1. Si una wallet espera8453pero recibe0x1, debe abortar antes de firmar en vez de confiar en el nombre de red mostrado. - v de una transacción legacy protegida. Para transacciones legacy EIP-155,
v = 35 + 2 * chainId + yParity. Con chain ID1, los valores son37o38; con chain ID61,157o158. A la inversa,floor((37 - 35) / 2) = 1. Esta aritmética no se aplica al campo y-parity de transacciones tipadas ni a firmas legacy sin protección que usan27o28. - Transacción tipada y rechazo por cadena incorrecta. Un payload de tipo 2 vincula
chain_id=8453. Con21,000 gas, base fee de20 gwei, prioridad máxima de2 gweiy fee máximo de30 gwei, el precio efectivo esmin(30, 20 + 2) = 22 gweiy la comisión21,000 * 22 gwei = 0.000462 ETH. Una cadena que aplique correctamente ID1rechaza el payload firmado por discrepancia del dominio, por lo que ese rechazo no consume gas on-chain allí; en ID 8453 la transacción aún puede fallar por otros motivos. - Identificadores duales y no EVM. Un despliegue Cosmos EVM puede usar el ID textual de Cosmos SDK
local-1y el ID entero EVM independiente262144 = 0x40000. La firma nativa de Cosmos usa el texto junto con número de cuenta y sequence; la firma de transacciones EVM usa el dominio entero. Solana expone en cambio un genesis hash y utiliza un recent blockhash o durable nonce en los mensajes, no un entero EIP-155.
Riesgos
- Conectarse al endpoint RPC o cadena activa de wallet equivocados.
- Confiar en un RPC malicioso que miente sobre ID, estado o transmisión.
- Confundir representaciones hexadecimal y decimal.
- Perder precisión al analizar un chain ID grande con un tipo numérico inseguro.
- Usar
net_versioncomo si siempre coincidiera coneth_chainId. - No detectar
chainChangedde EIP-1193 o una carrera al cambiar de red. - Reutilizar nonces, cotizaciones, approvals o simulaciones tras el cambio.
- Suponer que los chain ID están registrados globalmente y no colisionan.
- Firmar entre redes privadas o forks que reutilizan el mismo ID.
- No definir qué ocurre si un fork cambia o conserva el ID.
- Aceptar una transacción legacy sin dominio EIP-155.
- Aplicar la fórmula legacy de
va transacciones tipadas u otras firmas. - Suponer que un mensaje bruto o una solicitud
personal_signincluye dominio de cadena. - Omitir o codificar mal el chain ID en un dominio EIP-712.
- Omitir
verifyingContract, nonce de aplicación, deadline o propósito. - Confiar en direcciones idénticas sin comparar código y estado.
- Confundir dominios L1, L2, origen del bridge y destino.
- Ignorar el dominio interno de un intent, permit u operación de smart account.
- Tratar metadatos de wallet-add, etiquetas de explorer o iconos como autenticación.
- Trasladar la semántica EVM a Cosmos, Solana, Bitcoin u otro protocolo.
Errores comunes
- Un chain ID es un número oficial, mundialmente único y permanente.
- Un chain ID correcto prueba que el RPC, la red y los contratos son auténticos.
- Toda firma de Ethereum incorpora automáticamente el chain ID.
- Diferentes chain ID impiden el replay de todo mensaje e intent firmado.
- Toda blockchain utiliza un chain ID entero al estilo EIP-155.
Temas relacionados
Fuentes
- EIP-155: Simple replay attack protection - Ethereum Improvement Proposals (consultado: 2026-08-12)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals (consultado: 2026-08-12)
- EIP-1344: ChainID opcode - Ethereum Improvement Proposals (consultado: 2026-08-12)
- EIP-1193: Ethereum Provider JavaScript API - Ethereum Improvement Proposals (consultado: 2026-08-12)
- EIP-3085: wallet_addEthereumChain RPC Method - Ethereum Improvement Proposals (consultado: 2026-08-12)
- EIP-712: Typed structured data hashing and signing - Ethereum Improvement Proposals (consultado: 2026-08-12)
- CAIP-2: Blockchain ID Specification - Chain Agnostic Improvement Proposals (consultado: 2026-08-12)
- getGenesisHash RPC Method - Solana Documentation (consultado: 2026-08-12)