Skip to Content
dApps

wallet_addEthereumChain

Solicita a la cartera que añada una cadena nueva. Si la cadena ya existe, la cartera puede cambiar a ella.


Parámetros

Array que contiene un único objeto de configuración de cadena:

CampoTipoObligatorioDescripción
chainIdstringSíID de cadena (cadena hexadecimal con prefijo 0x)
chainNamestringSíNombre legible de la cadena
nativeCurrencyobjectSíInformación de la moneda nativa
nativeCurrency.namestringSíNombre de la moneda
nativeCurrency.symbolstringSíSímbolo de la moneda nativa
nativeCurrency.decimalsnumberSíDecimales de la moneda (normalmente 18)
rpcUrlsstring[]SíMatriz de URL RPC (al menos una)
blockExplorerUrlsstring[]NoMatriz de URL de exploradores de bloques
iconUrlsstring[]NoURL de iconos opcionales; su visualización depende de la cartera

Devuelve

null si la operación tiene éxito


Ejemplo

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

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

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

Errores

CódigoMensajeDescripción
4001El usuario rechazó la solicitudEl usuario denegó la adición de la cadena
-32602Parámetros no válidosConfiguración de cadena no válida

Notas

  • Proporciona endpoints RPC válidos y usa los metadatos que espera la red de destino
  • La cartera verifica que el endpoint RPC responda correctamente
  • Añadir una cadena no garantiza que la cartera cambie a ella; consulta eth_chainId después
  • Definido por EIP-3085 

Añadir y cambiar de cadena en un flujo combinado

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 } } }
Última actualización el