在构建任何 Web3 产品之前,第一步就是确认钱包 API 到底支持哪些链。本文手把手演示如何通过 一次 GET 请求,实时拉取 Bitcoin、Ethereum 等所有链的名称、图标、唯一标识,并将返回的数据嵌入到你的 DApp 逻辑之中。
为什么需要这张“支持链清单”?
- 资产展示:在不同链上展示正确的链 Logo,让用户一眼识别资产来源。
- 链切换逻辑:根据
chainIndex值,动态渲染对应网络。 - 未来兼容:新链发布后,用同一接口即可自动同步,无需手动维护配置表。
核心关键词
钱包 API、链上信息查询、支持链列表、多链钱包、Web3 开发、区块链网络、chainIndex、链 Logo
接口速览
| 请求方法 | GET |
|---|---|
| 完整路径 | https://web3.okx.com/api/v5/wallet/chain/supported-chains |
| 请求头 | OK-ACCESS-* 系列(见下文) |
| 请求参数 | 无 |
返回 JSON 极简,只含四个字段: name(链名)→ shortName(简称)→ logoUrl(标志地址)→ chainIndex(全局唯一 ID)。
五步集成:从拿到清单到落地展示
1.准备密钥
在项目后台申请一套 API Key 与 Passphrase,才能通过权限验证。
2.构造 GET 请求
示例使用 cURL,真实开发换用 axios 或 fetch 即可:
curl --location 'https://web3.okx.com/api/v5/wallet/chain/supported-chains' \
--header 'OK-ACCESS-PROJECT: YOUR_PROJECT_ID' \
--header 'OK-ACCESS-KEY: YOUR_ACCESS_KEY' \
--header 'OK-ACCESS-SIGN: GENERATED_SIGN' \
--header 'OK-ACCESS-PASSPHRASE: YOUR_PASSPHRASE' \
--header 'OK-ACCESS-TIMESTAMP: 2024-07-25T12:00:00Z'3.解析示例响应
成功响应格式精简易读,采样一条 Ethereum 数据:
{
"code": "0",
"data": [
{
"name": "Ethereum",
"logoUrl": "http://www.eth.org/eth.png",
"shortName": "ETH",
"chainIndex": "1"
}
],
"msg": ""
}4.渲染链列表
前端把 data 数组传入 React/Vue 的虚拟列表,网络 Logo 用 <img src={logoUrl}> 即可动态展示。
5.缓存策略
建议把结果写进本地缓存(Redis / browser storage),设置 10 分钟刷新一次,降低无谓请求。
代码片段
Node.js 快速实现
import fetch from 'node-fetch';
const headers = {
'OK-ACCESS-PROJECT': process.env.PROJECT_ID,
'OK-ACCESS-KEY': process.env.ACCESS_KEY,
// 省略其余签名与时间戳计算
};
const chains = await fetch('https://web3.okx.com/api/v5/wallet/chain/supported-chains', { headers })
.then(r => r.json())
.then(res => res.data);
console.log('当前支持链数:', chains.length);FAQ:开发者需关注的热点疑问
Q1:短时间内高并发会触发限速吗?
A:单 IP 每分钟 120 次。如需更高额度,在控制台申请提高配额。
Q2:新链加入后,会自动出现在清单吗?
A:是的,维护团队完成上线后 5 分钟内即可见到相应链路信息。
Q3:logoUrl 支持 HTTPS 吗?
A:绝大多数链均已转向 HTTPS,少数老链仍用 HTTP;开发时请先对地址做安全校验。
Q4:同一个 chainIndex 会不会变化?
A:官方承诺永不变动,可放心将其写入数据库主键或枚举常量。
Q5:可以仅过滤 EVM 系列吗?
A:接口默认返回全部链,前端按 shortName 如 ETH、BNB、OP 等自行筛选即可。
典型应用场景示例
- 跨链桥面板
在用户发起资产桥接前,先下拉选择源链与目的链,图标取自logoUrl,名称来自name,确保体验一致。 - 去中心化钱包
首次启动钱包时自动请求清单,动态渲染“链管理”页面,未来新增链无需升级客户端。 - NFT 市场 filter
利用chainIndex做分组聚合,用户在筛选时勾选多条链,光速展示符合条件的藏品。
高级贴士
- 错误处理
返回中code不等于0时,统一弹出 “网络异常,稍后重试” ,并记录实际msg便于排查。 - 前端网络错误兜底
若 API 拉取失败,可用本地静态链表作为兜底,确保核心功能不停摆。 - 本地 Mock 数据
单元测试时复制一个真实响应 JSON 存本地,避免每次 CI 都发起外部请求。
结语
核心接口只有一行代码,却能为整个 Web3 应用节省大量维护时间。调通支持链列表后,你就能专注在业务逻辑、交互体验及多链生态的深度挖掘上。记住:“清单先行,开发无忧”。
若你希望进一步对接钱包即服务(WaaS)的转账、签名、NFT 查询等功能,请从下一段落开始,探索其余 Wallet API 目录吧!