Skip to Content
dApps

wallet_addEthereumChain

Fordert die Wallet auf, eine neue Chain hinzuzufügen. Wenn die Chain bereits vorhanden ist, kann die Wallet zu ihr wechseln.


Parameter

Array mit einem einzelnen Chain-Konfigurationsobjekt:

FeldTypErforderlichBeschreibung
chainIdstringJaChain-ID (Hex-Zeichenfolge mit 0x-Präfix)
chainNamestringJaFür Menschen lesbarer Chain-Name
nativeCurrencyobjectJaInformationen zur nativen Währung
nativeCurrency.namestringJaWährungsname
nativeCurrency.symbolstringJaSymbol der nativen Währung
nativeCurrency.decimalsnumberJaDezimalstellen der Währung (üblicherweise 18)
rpcUrlsstring[]JaArray von RPC-URLs (mindestens eine)
blockExplorerUrlsstring[]NeinArray von Block-Explorer-URLs
iconUrlsstring[]NeinOptionale Symbol-URLs; die Anzeige hängt von der Wallet ab

Rückgabe

null bei Erfolg


Beispiel

await window.$onekey.ethereum.request({ method: 'wallet_addEthereumChain', params: [{ chainId: '0x89', chainName: 'Polygon Mainnet', nativeCurrency: { name: 'POL', symbol: 'POL', decimals: 18 }, rpcUrls: ['https://polygon-rpc.com'], blockExplorerUrls: ['https://polygonscan.com'] }] })

Base hinzufügen

await window.$onekey.ethereum.request({ method: 'wallet_addEthereumChain', params: [{ chainId: '0x2105', chainName: 'Base', nativeCurrency: { name: 'Ethereum', symbol: 'ETH', decimals: 18 }, rpcUrls: ['https://mainnet.base.org'], blockExplorerUrls: ['https://basescan.org'] }] })

Arbitrum hinzufügen

await window.$onekey.ethereum.request({ method: 'wallet_addEthereumChain', params: [{ chainId: '0xa4b1', chainName: 'Arbitrum One', nativeCurrency: { name: 'Ethereum', symbol: 'ETH', decimals: 18 }, rpcUrls: ['https://arb1.arbitrum.io/rpc'], blockExplorerUrls: ['https://arbiscan.io'] }] })

Fehler

CodeNachrichtBeschreibung
4001Nutzer hat die Anfrage abgelehntNutzer hat das Hinzufügen der Chain abgelehnt
-32602Ungültige ParameterUngültige Chain-Konfiguration

Hinweise

  • Geben Sie gültige RPC-Endpunkte an und verwenden Sie die vom Zielnetzwerk erwarteten Metadaten
  • Die Wallet prüft, ob der RPC-Endpunkt korrekt antwortet
  • Das Hinzufügen einer Chain garantiert nicht, dass die Wallet zu ihr wechselt; lesen Sie eth_chainId anschließend
  • Spezifiziert durch EIP-3085 

Hinzufügen und Wechseln kombinieren

async function switchToChain(chainConfig) { try { await window.$onekey.ethereum.request({ method: 'wallet_switchEthereumChain', params: [{ chainId: chainConfig.chainId }] }) } catch (error) { if (error.code === 4902) { await window.$onekey.ethereum.request({ method: 'wallet_addEthereumChain', params: [chainConfig] }) await window.$onekey.ethereum.request({ method: "wallet_switchEthereumChain", params: [{ chainId: chainConfig.chainId }] }) } else { throw error } } }
Zuletzt aktualisiert am