Bitget Wallet NEAR 协议开发者集成指南

Posted by QTCGBY 链上情报站 on August 10, 2025

概述

Bitget Wallet(原 BitKeep)作为全球领先的多链数字钱包,为开发者提供了便捷的 NEAR 协议集成方案。当用户在 Bitget Wallet 应用内或已安装 Chrome 扩展的浏览器中访问 DApp 时,可通过全局对象 window.bitkeep.near 调用一系列 API,实现账户管理、交易签名等核心功能。本文详细解析这些接口的使用方法与最佳实践。

初始化与基础配置

在支持的环境中,开发者可通过以下代码获取 NEAR 提供者对象:

const provider = window.bitkeep.near

获取该对象后,即可调用后续各项接口方法。请确保 DApp 运行环境已正确注入该对象,建议在调用前进行可用性检查。

核心 API 详解

获取账户信息

getAccountId

返回当前已登录用户的账户 ID(用户名)。

用法示例:

const accountId = await provider.getAccountId()

getPublicKey

获取与用户账户关联的公钥,用于加密验证或第三方服务集成。

用法示例:

const publicKey = await provider.getPublicKey()

登录与权限管理

requestSignIn

触发 NEAR 钱包登录流程,请求用户登录并授权指定合约的访问权限。

参数说明:

  • contractId: 合约账户 ID
  • methodNames: 允许调用的合约方法名称,传 null 表示无方法限制,''[] 表示允许任何方法
  • createNew: 是否需要创建新的访问密钥,默认为 false

用法示例:

const result = await provider.requestSignIn({
  contractId: 'example-contract.near',
  methodNames: ['method1', 'method2'],
  createNew: false
})

isSignedIn

检查用户当前是否已登录 NEAR 钱包。

用法示例:

const signedIn = await provider.isSignedIn()

signOut

断开当前 NEAR 钱包连接,注销用户登录状态。

用法示例:

await provider.signOut()

交易与签名操作

signAndSendTransaction

对交易进行签名并发送到 NEAR 网络。

参数说明: 接受交易参数对象,包含交易详情

用法示例:

const transactionResult = await provider.signAndSendTransaction({
  // 交易参数
})

requestSignTransactions

请求对多笔交易进行批量签名,提高复杂操作效率。

参数说明: 包含多笔交易的数组

用法示例:

const results = await provider.requestSignTransactions({
  transactions: [tx1, tx2, tx3]
})

所有权验证

verifyOwner

通过签名消息或安全调用,验证当前用户是否为 NEAR 账户的真实所有者。

参数说明:

  • message: 待验证消息
  • accountId: 账户 ID

用法示例:

const isValid = await provider.verifyOwner(message, accountId)

最佳实践与注意事项

  1. 错误处理:所有 API 调用都应使用 try-catch 块进行错误捕获,提供用户友好的错误提示
  2. 状态管理:使用 isSignedIn 定期检查登录状态,处理会话过期情况
  3. 权限控制:根据 DApp 需求合理设置 requestSignIn 的 methodNames 参数,遵循最小权限原则
  4. 用户体验:在交易签名等关键操作前,明确告知用户操作内容和潜在风险

👉 查看实时集成演示与调试工具

常见问题

Q1: 如何检测 Bitget Wallet 是否已安装并注入 NEAR 对象? A: 可以通过检查 typeof window.bitkeep !== 'undefined' && window.bitkeep.near 来判断环境是否就绪。建议在页面加载时进行检测,并引导用户安装钱包或扩展。

Q2: requestSignIn 方法中的 createNew 参数有什么作用? A: 当设置为 true 时,会为用户创建一个新的访问密钥,而不是使用现有密钥。这可用于更细粒度的权限管理或安全隔离,但通常保持默认值 false 即可满足大多数场景。

Q3: 交易发送后如何获取执行结果? A: signAndSendTransaction 返回的 Promise 会解析为交易结果对象,包含交易哈希、执行状态等详细信息。开发者需要解析该对象并处理可能出现的执行失败情况。

Q4: 是否支持测试网络集成? A: 是的,Bitget Wallet 支持 NEAR 主网和测试网。确保您的 DApp 配置与用户选择的网络匹配,以获得正确的链上交互体验。

Q5: verifyOwner 方法的主要应用场景是什么? A: 该方法主要用于需要验证用户对账户所有权的场景,如第三方服务接入、身份验证或高安全等级操作确认。它通过密码学证明确保用户确实控制着指定账户。

Q6: 如何处理用户拒绝签名或交易的情况? A: 所有签名相关方法在用户拒绝时都会抛出错误。开发者应该捕获这些错误并向用户提供清晰的反馈,说明操作已取消,并指导用户如何重新尝试或解决问题。

通过本文介绍的 API,开发者可以轻松地将 NEAR 协议集成到 DApp 中,为用户提供流畅的区块链交互体验。建议在实际开发过程中参考官方文档和社区资源,确保集成方案的稳定性和安全性。