API 概览
本接口 POST /api/v5/defi/user/asset/platform/detail 专为开发者设计,一键拉取「协议维度」的资产持仓列表,帮助钱包或资产管理应用在最短时间内展示用户在不同 DeFi 协议中的实时仓位与价值。
核心关键词:DeFi 资产、协议维度 API、持仓明细、区块链钱包、用户协议、链上数据、Web3 接口、数字资产仓位
接口 URL 与调用方法
POST https://web3.okx.com/api/v5/defi/user/asset/platform/detail
Content-Type: application/json请求参数说明
只需提交 3 个必传字段,即可锁定用户与协议。
analysisPlatformIdstring
协议唯一标识,例如:aave_v3_polygon或uniswap_v3_ethereum。walletAddressListArray
每个对象包含:chainIdstring 区块链编号,如1(Ethereum)或137(Polygon)。walletAddressstring 用户实际持有的钱包地址。
示例请求:
{
"analysisPlatformId": "compound_v2_eth",
"walletAddressList": [
{
"chainId": "1",
"walletAddress": "0xabcd...1234"
},
{
"chainId": "137",
"walletAddress": "0xefgh...5678"
}
]
}响应结构拆解
返回体遵循嵌套式设计,层层解包即可拿到最细颗粒度的持仓字段。
code / msg状态码与信息data顶层Object,下设networkHoldVoList数组
networkHoldVoList 内部属性
| 字段 | 类型 | 含义 |
|---|---|---|
platformName | string | 显示在 UI 的协议简称,如 Aave V3 |
analysisPlatformId | string | 后端排重所用 ID |
platformLogo | string | CDN 图标 URL,demo 可直接使用 |
platformUrl | string | 协议官方站点,用于跳转 |
totalValue | string | 该协议总 USD 价值 |
investTokenBalanceVoList | Array | 多仓位详情列表 |
→ investType | string | 1-存币 2-流动性池 3-挖矿 4-机枪池 5-质押 |
→ coinAmount | string | 原始 Token 数量 |
→ currencyAmount | string | 美元计价金额 |
有了这些字段,前端可在 “资产管理 → 协议详情页” 直接渲染三层嵌套卡片:协议 → 网络 → 仓位。
典型响应示例
{
"code": 0,
"msg": "",
"data": {
"networkHoldVoList": [
{
"network": "Ethereum",
"chainId": "1",
"platformName": "Aave V3",
"analysisPlatformId": "aave_v3_ethereum",
"platformLogo": "https://cdn.xx/aave32.png",
"platformUrl": "https://aave.com",
"totalValue": "12345.67",
"investTokenBalanceVoList": [
{
"investType": "1",
"tokenSymbol": "USDC",
"tokenLogo": ".../usdc.png",
"coinAmount": "10000.00",
"currencyAmount": "10010.00",
"tokenPrecision": "6",
"tokenAddress": "0xA0b86a33E644...",
"network": "Ethereum"
}
]
}
]
}
}实战场景:快速集成钱包首页
步骤 1:聚合多协议
在钱包端循环 analysisPlatformId 列表,并行调用接口,一次性拿到所有 DeFi 资产。
步骤 2:排序与去重
利用 totalValue 进行从大到小排序,并合并相同 walletAddress 的多条结果。
步骤 3:实时刷新
通过前端轮询或 Websocket 回调 实现每 30 秒更新一次数字资产仓位,满足用户随时查看涨跌的需求。
开发技巧与错误排查
- 429 Too Many Requests
调整 QPS 限制:在批量地址时,可用并发队列池一次发送不超过 10 条请求。 - 合规字段长度限制
walletAddressList数量控制 ≤100,防止大数据导致网络阻塞。 - 链 ID 输入校验
若误填chainId“56” 但传了以太坊地址,返回为空数组而非error,需要前端手动提示。
常见问题(FAQ)
Q1:为什么返回空数组?
A:最常见原因:① walletAddress 写错;② chainId 与链不匹配;③ 用户在该协议无仓位。
Q2:能否一次查多个协议?
A:当前接口仅支持 单个 protocolId 批量多地址。多协议请并行请求。
Q3:数据多久更新一次?
A:链上事件监听后 5–15 秒内同步至 API,基本属于 实时数据。
Q4:是否支持测试网?
A:支持。chainId 可填 5(Goerli)或 80001(Mumbai)体验 测试场景。
Q5:如何获取协议 Logo 高分辨率版本?
A:在 platformLogo 末尾追加 _256.png 即可拿到 256x256 像素高清图标。
进阶技巧:锁仓收益可视化
配合本接口返回的字段,你可以:
- 将
investType映射为不同颜色 Tag,让存币、挖矿、质押一目了然。 - 对比 今日 totalValue 与昨日快照,计算 盈亏百分比。
- 在协议卡片右上加 闪电刷新按钮,复用本接口获取最新链上 apr,让 DeFi 资产仪表盘退休用户也能秒懂。
想立即测试?
👉 去体验实时接口沙盒并查看用户协议维度持仓完整示例
最后,别忘记在生产环境设置合理的缓存 TTL:大额用户通常更关注秒级同步,散户可用 60 秒缓存节省 Gas 并减轻后台压力。祝你开发顺利!