Skip to Content
Connect to Software

Getting Started

Learn how to detect, connect, and interact with Sui using OneKey’s provider.

OneKey implements the Sui Wallet Standard, ensuring compatibility with all Sui dApps.


Provider Detection

// Detect OneKey Sui provider const provider = window.$onekey?.sui if (!provider) { throw new Error('OneKey Sui provider not detected') }

Check Permissions

// Check if already connected const hasPermission = await provider.hasPermissions() if (hasPermission) { const accounts = await provider.getAccounts() console.log('Connected accounts:', accounts) }

Request Connection

// Request permissions to connect const result = await provider.requestPermissions() if (result) { const accounts = await provider.getAccounts() console.log('Connected:', accounts[0].address) }

Get Accounts

const accounts = await provider.getAccounts() accounts.forEach(account => { console.log({ address: account.address, // Sui address publicKey: account.publicKey, // Public key bytes chains: account.chains, // Supported chains features: account.features, // Supported features }) })

Get Active Chain

const chain = await provider.getActiveChain() console.log('Active chain:', chain) // e.g., 'sui:mainnet'

Check Connection Status

const isConnected = provider.isConnected() console.log('Connected:', isConnected)

Disconnect

await provider.disconnect()

Event Listeners

Listen for Account Changes

provider.onAccountChange((account) => { if (account) { console.log('Account changed:', account.address) } else { console.log('Disconnected') } })

Listen for Network Changes

provider.onNetworkChange((network) => { console.log('Network changed:', network) })

Using with Sui Wallet Kit

For React applications, use the official Sui Wallet Kit:

npm install @mysten/dapp-kit @mysten/sui.js @tanstack/react-query
import { SuiClientProvider, WalletProvider } from '@mysten/dapp-kit' import { getFullnodeUrl } from '@mysten/sui.js/client' import { QueryClient, QueryClientProvider } from '@tanstack/react-query' const queryClient = new QueryClient() const networks = { mainnet: { url: getFullnodeUrl('mainnet') }, testnet: { url: getFullnodeUrl('testnet') }, } function App() { return ( <QueryClientProvider client={queryClient}> <SuiClientProvider networks={networks} defaultNetwork="mainnet"> <WalletProvider> <YourApp /> </WalletProvider> </SuiClientProvider> </QueryClientProvider> ) }

OneKey is automatically detected through the Sui Wallet Standard.

Last updated on