﻿---
title: "Chain ID"
description: "Guida basata sulla verifica a chain ID EVM, domini anti-replay EIP-155 per transazioni legacy, transazioni tipizzate, CHAINID, controlli wallet e RPC, domini EIP-712 e identificatori non 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 a scopo educativo; non costituisce consulenza né raccomandazione d’investimento. Gli investimenti possono comportare perdite.

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

## Risposta diretta

Nell'ecosistema EVM, il chain ID è un intero configurato usato come parametro del dominio anti-replay. EIP-155 lo vincola alle firme protette delle transazioni legacy; i formati tipizzati, come il tipo 2, lo codificano nel payload firmato; `CHAINID` lo espone durante l'esecuzione EVM; `eth_chainId` lo restituisce tramite JSON-RPC. Sono interfacce correlate, non un certificato universale d'identità.

Il valore non è garantito unico a livello globale né permanente. Reti private e fork controversi possono riutilizzarlo, un RPC può mentire e lo stesso indirizzo può contenere codice e stato differenti su chain diverse. EIP-712 prevede un campo chain ID opzionale nel dominio, mentre messaggi grezzi e sistemi non EVM hanno regole diverse. Servono quindi schema di firma, endpoint, genesis o checkpoint e dominio applicativo esatti.

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

## Come funziona

1. Identificare ecosistema e semantica: intero EIP-155 EVM, dominio EIP-712, riferimento con namespace CAIP-2, chain ID stringa Cosmos, genesis hash Solana o altro schema. Non confrontare numeri non qualificati tra ecosistemi.
2. Fissare uno snapshot affidabile: URL RPC, chain ID previsto in decimale ed esadecimale, genesis o checkpoint finalizzato, head block, configurazione client, `codeHash` dei contratti chiave e data della fonte. Nome e icona della rete nel wallet non sono affidabili.
3. Interrogare `eth_chainId` per firmare su EVM e analizzare la quantità esadecimale JSON-RPC senza perdita di precisione. Confrontare l'intero normalizzato con configurazione e stato del provider; non sostituire `net_version`; rifiutare differenze prima della firma.
4. Ricostruire il dominio di firma esatto. Distinguere transazioni legacy non protette, legacy EIP-155 e envelope tipizzati; per EIP-712 verificare campi del dominio, `verifyingContract`, nonce e deadline; per intent inoltrati o smart account controllare l'hash interno del protocollo.
5. Verificare sulla chain attiva destinatario, valore, calldata, indirizzo token, codice o implementazione proxy, nonce, commissioni e stato simulato. Il chain ID separa un dominio ma non autentica questi oggetti.
6. Trattare `chainChanged` EIP-1193, cambi account e disconnessioni come limiti rigidi. Eliminare quote, allowance, nonce, simulazioni e richieste di firma in cache, rileggere chain e target e trasmettere solo la transazione grezza verificata all'endpoint fissato.
7. Riconciliare sulla chain prevista bytes firmati e hash, accettazione RPC, stato receipt, numero e hash del blocco, consumo nonce, cambi di stato e finalità. Monitorare fork, cambi ID, confusione L1/L2 e deriva del provider; bloccare su differenze inspiegate.

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

## Esempi svolti

- **Controllo RPC esadecimale e decimale.** Base ha chain ID decimale `8453`, restituito da `eth_chainId` come `0x2105`: `2 * 4096 + 1 * 256 + 0 * 16 + 5 = 8453`. Ethereum mainnet è `1 = 0x1`, Arbitrum One `42161 = 0xa4b1`. Se il wallet attende `8453` ma riceve `0x1`, deve interrompere prima della firma.
- **v di transazione legacy protetta.** Per EIP-155, `v = 35 + 2 * chainId + yParity`. Con ID `1`: `37` o `38`; con ID `61`: `157` o `158`. Inversamente, `floor((37 - 35) / 2) = 1`. La formula non vale per y-parity delle transazioni tipizzate né per firme legacy non protette con `27` o `28`.
- **Transazione tipizzata e rifiuto sulla chain errata.** Un payload tipo 2 vincola `chain_id=8453`. Con `21,000 gas`, base fee `20 gwei`, priority fee massimo `2 gwei` e fee massimo `30 gwei`, il prezzo effettivo è `min(30, 20 + 2) = 22 gwei` e la commissione `21,000 * 22 gwei = 0.000462 ETH`. Una chain corretta con ID `1` lo rifiuta per dominio errato senza consumare gas on-chain; sull'ID 8453 può fallire per altri motivi.
- **Identificatori doppi e non EVM.** Cosmos EVM può usare ID stringa Cosmos SDK `local-1` e ID intero EVM indipendente `262144 = 0x40000`. La firma Cosmos-native usa stringa, numero account e sequence; la firma EVM usa l'intero. Solana usa genesis hash e recent blockhash o durable nonce, non un intero EIP-155.

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

## Rischi

- RPC o chain attiva errati.
- RPC malevolo su ID, stato o broadcast.
- Confusione esadecimale/decimale.
- Perdita di precisione numerica.
- `net_version` scambiato per `eth_chainId`.
- Evento `chainChanged` o race ignorati.
- Riutilizzo di nonce, quote, approval o simulazioni.
- Presunta unicità globale senza collisioni.
- Firma su reti private o fork con stesso ID.
- Comportamento del fork non definito.
- Transazione legacy non protetta.
- Formula legacy `v` applicata altrove.
- Dominio presunto in messaggi grezzi o `personal_sign`.
- Chain ID EIP-712 omesso o errato.
- `verifyingContract`, nonce, deadline o scopo omessi.
- Indirizzi uguali senza confronto di codice e stato.
- Domini L1, L2, origine e destinazione confusi.
- Dominio interno di intent, permit o smart account ignorato.
- Metadati, explorer o icone usati come autenticazione.
- Semantica EVM trasferita ad altri protocolli.

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

## Errori comuni

- Chain ID è un numero ufficiale globale, unico e permanente.
- Chain ID corretto autentica RPC, rete e contratti.
- Ogni firma Ethereum include automaticamente il chain ID.
- ID diversi impediscono il replay di ogni messaggio.
- Ogni blockchain usa un intero EIP-155.

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

## Argomenti correlati

- [Firma tipizzata EIP-712](/it/crypto/eip712-typed-signature/)
- [Firma del wallet](/it/crypto/wallet-signature/)
- [Nodo RPC](/it/crypto/rpc-node/)

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

## Fonti

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

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