このページの内容
dApp の統合
チェーン別のプロバイダーまたはウォレット接続ライブラリを使って、dApp を OneKey ウォレットに接続します。
統合方法を選択
| 方法 | 適した用途 | フレームワーク |
|---|---|---|
| RainbowKit | 既製のウォレット UI、React アプリ | React |
| Web3Modal | 複数フレームワーク対応のウォレット UI | React / Vue / JS |
| Web3-Onboard | 幅広いカスタマイズ、複数フレームワーク対応 | React / Vue / JS |
| Wagmi | React フックによるカスタム UI | React |
| プロバイダー API | 完全な制御、依存関係なし | 任意 |
おすすめ: React アプリには RainbowKit、Vue/バニラ JS には Web3Modal または Web3-Onboard を使用してください。
クイックスタート
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>
)
}Provider API (依存関係なし)
// 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)OneKey の検出
| プロパティ | 値 |
|---|---|
EIP-6963 rdns | so.onekey.app.wallet |
| プロバイダー | window.$onekey.ethereum |
対応チェーン
EVM: Ethereum および対応する EVM ネットワーク (Polygon、BSC、Arbitrum、Optimism、Base など)
Non-EVM: Bitcoin, Solana, Cosmos, Aptos, Sui, TON, TRON, Polkadot, Cardano, NEAR, その他
リソース
- 変更履歴: cross-inpage-provider のリリース
- ソースコード: cross-inpage-provider
- 課題: GitHub Issues
- ライブデモ: プロバイダーの例
最終更新日