Skip to Content

Ethereum / EVM

Usa el proveedor EIP-1193 inyectado para crear dApps EVM con OneKey. Todas las cadenas compatibles con EVM (Ethereum, Polygon, BSC, Arbitrum, Optimism, Base, etc.) comparten el mismo proveedor.


Detección del proveedor

Detección moderna de varias carteras que evita conflictos:

let onekeyProvider = null const onAnnounce = (event) => { if (event.detail.info.rdns === 'so.onekey.app.wallet') { onekeyProvider = event.detail.provider } } window.addEventListener('eip6963:announceProvider', onAnnounce) window.dispatchEvent(new Event('eip6963:requestProvider')) // Call from your Connect button after the user selects OneKey. async function connectOneKey() { if (!onekeyProvider) throw new Error('OneKey has not announced a provider yet') return onekeyProvider.request({ method: 'eth_requestAccounts' }) } // On component cleanup: // window.removeEventListener('eip6963:announceProvider', onAnnounce)

Acceso directo (alternativa)

const provider = window.$onekey?.ethereum if (!provider) throw new Error('OneKey not detected') const accounts = await provider.request({ method: 'eth_requestAccounts' })

Eventos

// Account changed provider.on('accountsChanged', (accounts) => { console.log('Account:', accounts[0]) }) // Network changed provider.on('chainChanged', (chainId) => { console.log('Chain:', chainId) window.location.reload() // Recommended }) // Connected provider.on('connect', (info) => { console.log('Connected to chain:', info.chainId) })

Códigos de error

CódigoDescripciónSolución
4001Rechazado por el usuarioGestiona el rechazo adecuadamente
4902Cadena desconocidaAñade la cadena con wallet_addEthereumChain
-32602Parámetros no válidosUsa 0x como prefijo de las cadenas hexadecimales
-32603Error internoComprueba el formato de la solicitud

Identificadores de cadena

RedID de cadenaHexadecimal
Red principal de Ethereum10x1
Polygon1370x89
BSC560x38
Arbitrum One421610xa4b1
Optimism100xa
Base84530x2105

Consulta chainlist.org  para ver más cadenas.

Para una integración rápida con componentes de interfaz, usa RainbowKit o Web3Modal.

Última actualización el