Skip to Content
dApps

eth_chainId

Gibt die Chain-ID des aktuell verbundenen Netzwerks zurück. Die Chain-ID dient dazu, Replay-Angriffe über verschiedene Netzwerke hinweg zu verhindern.


Parameter

Keine


Rückgabe

string - Die Chain-ID als hexadezimale Zeichenfolge


Beispiel

const chainId = await window.$onekey.ethereum.request({ method: 'eth_chainId' }) console.log('Chain ID (hex):', chainId) console.log('Chain ID (decimal):', parseInt(chainId, 16))

Netzwerk prüfen

const CHAIN_IDS = { ETHEREUM: '0x1', POLYGON: '0x89', BSC: '0x38', ARBITRUM: '0xa4b1', OPTIMISM: '0xa', BASE: '0x2105' } async function checkNetwork() { const chainId = await window.$onekey.ethereum.request({ method: 'eth_chainId' }) switch (chainId) { case CHAIN_IDS.ETHEREUM: console.log('Connected to Ethereum Mainnet') break case CHAIN_IDS.POLYGON: console.log('Connected to Polygon') break default: console.log('Connected to chain:', parseInt(chainId, 16)) } return chainId }

Bestimmtes Netzwerk voraussetzen

async function requireNetwork(requiredChainId) { const chainId = await window.$onekey.ethereum.request({ method: 'eth_chainId' }) if (chainId !== requiredChainId) { try { await window.$onekey.ethereum.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: requiredChainId }] }) } catch (error) { if (error.code === 4902) { throw new Error('Please add this network to your wallet') } throw error } } } // Usage await requireNetwork('0x1') // Require Ethereum Mainnet

Häufige Chain-IDs

NetzwerkHexDezimal
Ethereum Mainnet0x11
Sepolia Testnet0xaa36a711155111
Polygon0x89137
BSC0x3856
Arbitrum One0xa4b142161
Optimism0xa10
Base0x21058453
Avalanche C-Chain0xa86a43114

Fehler

CodeNachrichtBeschreibung
-32603Interner FehlerProvider-Fehler

Hinweise

  • Die Chain-ID wird immer als Hex-Zeichenfolge mit 0x-Präfix zurückgegeben
  • Auf das Ereignis chainChanged reagieren, um Netzwerkänderungen zu erkennen
  • Spezifiziert durch EIP-695 
window.$onekey.ethereum.on('chainChanged', (chainId) => { console.log('Network changed to:', chainId) // Recommended: reload the page window.location.reload() })
Zuletzt aktualisiert am