Skip to Content
dApps

wallet_addEthereumChain

Demande au portefeuille d’ajouter une nouvelle chaîne. Si la chaîne existe déjà, le portefeuille peut y basculer.


Paramètres

Array contenant un seul objet de configuration de chaîne :

ChampTypeObligatoireDescription
chainIdstringOuiID de chaîne (chaîne hexadécimale avec préfixe 0x)
chainNamestringOuiNom de chaîne lisible
nativeCurrencyobjectOuiInformations sur la devise native
nativeCurrency.namestringOuiNom de la devise
nativeCurrency.symbolstringOuiSymbole de la devise native
nativeCurrency.decimalsnumberOuiDécimales de la devise (généralement 18)
rpcUrlsstring[]OuiTableau d’URL RPC (au moins une)
blockExplorerUrlsstring[]NonTableau d’URL d’explorateurs de blocs
iconUrlsstring[]NonURL d’icônes facultatives ; l’affichage dépend du portefeuille

Valeur de retour

null en cas de réussite


Exemple

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'] }] })

Ajouter Base

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'] }] })

Ajouter Arbitrum

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'] }] })

Erreurs

CodeMessageDescription
4001L’utilisateur a rejeté la demandeL’utilisateur a refusé l’ajout de la chaîne
-32602Paramètres non validesConfiguration de chaîne non valide

Remarques

  • Fournissez des points de terminaison RPC valides et utilisez les métadonnées attendues par le réseau cible
  • Le portefeuille vérifie que le point de terminaison RPC répond correctement
  • L’ajout d’une chaîne ne garantit pas que le portefeuille y bascule ; lisez eth_chainId ensuite
  • Défini par EIP-3085 

Ajout et changement combinés

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 } } }
Dernière mise à jour le