﻿---
title: "Chain ID"
description: "Guía basada en la verificación sobre los chain ID de EVM, los dominios anti-replay de EIP-155 para transacciones legacy, las transacciones tipadas, CHAINID, las comprobaciones de wallet y RPC, los dominios EIP-712 y los identificadores de redes no EVM."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Chain ID

> Solo con fines educativos; no constituye asesoramiento de inversión. Invertir puede ocasionar pérdidas.

<a id="answer"></a>

## 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.

<a id="mechanism"></a>

## Cómo funciona

1. 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.
2. 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, `codeHash` de contratos clave y fecha de la fuente. El nombre y el icono de red de una wallet son metadatos no fiables.
3. Consulte `eth_chainId` para 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 sustituya `net_version` y rechace cualquier discrepancia antes de construir una firma.
4. 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.
5. 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.
6. Trate `chainChanged` de 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.
7. 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.

<a id="example"></a>

## Ejemplos desarrollados

- **Control RPC hexadecimal y decimal.** Base tiene chain ID decimal `8453`, representado por `eth_chainId` como `0x2105`: `2 * 4096 + 1 * 256 + 0 * 16 + 5 = 8453`. Ethereum mainnet es `1 = 0x1` y Arbitrum One `42161 = 0xa4b1`. Si una wallet espera `8453` pero recibe `0x1`, 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 ID `1`, los valores son `37` o `38`; con chain ID `61`, `157` o `158`. 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 usan `27` o `28`.
- **Transacción tipada y rechazo por cadena incorrecta.** Un payload de tipo 2 vincula `chain_id=8453`. Con `21,000 gas`, base fee de `20 gwei`, prioridad máxima de `2 gwei` y fee máximo de `30 gwei`, el precio efectivo es `min(30, 20 + 2) = 22 gwei` y la comisión `21,000 * 22 gwei = 0.000462 ETH`. Una cadena que aplique correctamente ID `1` rechaza 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-1` y el ID entero EVM independiente `262144 = 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.

<a id="risks"></a>

## 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_version` como si siempre coincidiera con `eth_chainId`.
- No detectar `chainChanged` de 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 `v` a transacciones tipadas u otras firmas.
- Suponer que un mensaje bruto o una solicitud `personal_sign` incluye 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.

<a id="misconceptions"></a>

## 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.

<a id="related"></a>

## Temas relacionados

- [Firma tipada EIP-712](/es/crypto/eip712-typed-signature/)
- [Firma de wallet](/es/crypto/wallet-signature/)
- [Nodo RPC](/es/crypto/rpc-node/)

<a id="sources"></a>

## Fuentes

- [EIP-155: Simple replay attack protection](https://eips.ethereum.org/EIPS/eip-155) - Ethereum Improvement Proposals (consultado: 2026-08-12)
- [EIP-1559: Fee market change for ETH 1.0 chain](https://eips.ethereum.org/EIPS/eip-1559) - Ethereum Improvement Proposals (consultado: 2026-08-12)
- [EIP-1344: ChainID opcode](https://eips.ethereum.org/EIPS/eip-1344) - Ethereum Improvement Proposals (consultado: 2026-08-12)
- [EIP-1193: Ethereum Provider JavaScript API](https://eips.ethereum.org/EIPS/eip-1193) - Ethereum Improvement Proposals (consultado: 2026-08-12)
- [EIP-3085: wallet_addEthereumChain RPC Method](https://eips.ethereum.org/EIPS/eip-3085) - Ethereum Improvement Proposals (consultado: 2026-08-12)
- [EIP-712: Typed structured data hashing and signing](https://eips.ethereum.org/EIPS/eip-712) - Ethereum Improvement Proposals (consultado: 2026-08-12)
- [CAIP-2: Blockchain ID Specification](https://standards.chainagnostic.org/CAIPs/caip-2) - Chain Agnostic Improvement Proposals (consultado: 2026-08-12)
- [getGenesisHash RPC Method](https://solana.com/docs/rpc/http/getgenesishash) - Solana Documentation (consultado: 2026-08-12)

Source: https://wiki.fcontext.com/es/crypto/chain-id/index.mdx
