En esta página
Integración con dApps
Conecta tu dApp con la cartera OneKey mediante un proveedor específico de la cadena o una biblioteca de conexión de carteras.
Elige tu método
| Método | Ideal para | Framework |
|---|---|---|
| RainbowKit | Interfaz de cartera lista para usar en aplicaciones React | React |
| Web3Modal | Interfaz de cartera para varios frameworks | React / Vue / JS |
| Web3-Onboard | Amplias opciones de personalización y varios frameworks | React / Vue / JS |
| Wagmi | Interfaz personalizada con hooks de React | React |
| API del proveedor | Control total, sin dependencias | Cualquiera |
Recomendación rápida: Usa RainbowKit para aplicaciones React y Web3Modal o Web3-Onboard para Vue o JavaScript sin framework.
Inicio rápido
RainbowKit (React)
npm install @rainbow-me/rainbowkit@^2 wagmi@^2 viem@^2 @tanstack/react-query@^5App.tsx
import '@rainbow-me/rainbowkit/styles.css'
import { getDefaultConfig, RainbowKitProvider, ConnectButton } from '@rainbow-me/rainbowkit'
import { oneKeyWallet, injectedWallet, walletConnectWallet } from '@rainbow-me/rainbowkit/wallets'
import { WagmiProvider } from 'wagmi'
import { mainnet } from 'wagmi/chains'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
const config = getDefaultConfig({
appName: 'My dApp',
wallets: [{ groupName: 'Wallets', wallets: [oneKeyWallet, injectedWallet, walletConnectWallet] }],
projectId: 'YOUR_WALLETCONNECT_PROJECT_ID', // Get from cloud.reown.com
chains: [mainnet],
})
const queryClient = new QueryClient()
export default function App() {
return (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider>
<ConnectButton />
</RainbowKitProvider>
</QueryClientProvider>
</WagmiProvider>
)
}API del proveedor (sin dependencias)
// Detect OneKey using EIP-6963
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)Detección de OneKey
| Propiedad | Valor |
|---|---|
EIP-6963 rdns | so.onekey.app.wallet |
| Proveedor | window.$onekey.ethereum |
Cadenas compatibles
EVM: Ethereum y redes EVM compatibles, como Polygon, BSC, Arbitrum, Optimism y Base
No EVM: Bitcoin, Solana, Cosmos, Aptos, Sui, TON, TRON, Polkadot, Cardano, NEAR, y más
Ver todas las API de proveedores
Recursos
- Registro de cambios: versiones de cross-inpage-provider
- Código fuente: cross-inpage-provider
- Incidencias: Incidencias en GitHub
- Demostración en directo: Ejemplo del proveedor
Última actualización el