Skip to Content
dApp 接入

快速开始

签名前先连接 provider。交易示例使用 algosdk 2 的 from / to 字段,请安装匹配的 SDK 主版本。运行示例前,需要准备好 algodClient、地址和分组交易。在浏览器中使用 Buffer 时,应显式导入 buffer,或使用等效的 base64 编码工具。

了解如何检测、连接和与 Algorand 进行交互。

OneKey 的 Algorand provider 同时支持旧版和 ARC-0001 兼容接口。


Provider 检测

// Detect OneKey Algorand provider const provider = window.$onekey?.algo if (!provider) { throw new Error('OneKey Algorand provider not detected') } // Check compatibility console.log('isOneKey:', provider.isOneKey) // true

连接(旧版 API)

const { address } = await provider.connect() console.log('Connected:', address) // Check connection status console.log('isConnected:', provider.isConnected) console.log('Address:', provider.address)

启用 (ARC-0001)

const result = await provider.enable({ genesisID: 'mainnet-v1.0', genesisHash: 'wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=', }) console.log('Accounts:', result.accounts) console.log('Genesis Hash:', result.genesisHash)

断开连接

await provider.disconnect() console.log('Disconnected')

事件处理

监听账户变更

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

监听连接

provider.on('connect', ({ address }) => { console.log('Connected:', address) }) provider.on('disconnect', () => { console.log('Disconnected') })

与 Algod 客户端配合使用

从 Provider 获取客户端

// Get pre-configured clients const algodTransport = await provider.getAlgodv2Client() const indexerTransport = await provider.getIndexerClient() // These are BaseHTTPClient transports, not Algodv2 or Indexer SDK instances. // Use the manual setup below for SDK methods such as status().do().

手动设置客户端

import algosdk from 'algosdk' const algodClient = new algosdk.Algodv2( '', // Token (not needed for public nodes) 'https://mainnet-api.algonode.cloud', '' ) const indexerClient = new algosdk.Indexer( '', 'https://mainnet-idx.algonode.cloud', '' )
最后更新于