DeFi Protocol 列表查询接口全指南:URL、参数、返回值一次读懂

·

想快速拉取链上所有 DeFi protocol 的精简信息?或者只想聚焦某个 platformId 的「投资产品」入口地址?本文用一篇彻底拆解官方提供的 query protocol list 接口,帮你 3 分钟搞懂 Request 怎么写、Response 如何读、高阶场景如何二次封装


一、接口定位与核心关键词

核心关键词:DeFi API、协议列表、Web3 接口、投资产品、链上协议、WaaS、RESTful、JSON 返回


二、请求地址(Request URL)

只需用 GET 方法访问:

https://web3.okx.com/api/v5/defi/explore/protocol/list

接口默认返回 全部协议,如加参数即可过滤单个平台。


三、请求参数(Request Parameters)

参数名称类型必填说明
platformIdString平台唯一标识,传值后仅列出该平台协议
platformNameString平台正式名称,与 platformId 二选一即可
若两者皆为空,API 会一次性返回所有协议,方便做 冷启动缓存全量对比脚本

四、响应结构(Response Parameters)

一条协议在 JSON 中表现为对象字段,层级如下:

  1. platformId — 平台 ID
  2. platformName — 平台中文或英文名
  3. platformWebSite — 官方网址
  4. investmentApiUrlPattern — 在 后端 拉投资产品详情的 ReST 模板,不含 UI,适合写脚本
  5. investmentPageUrlPattern — 在 OKX 官网 UI 打开的浏览器地址,适合前端跳转
  6. platformMinInfos — 产品级数组

    每一项再细分:

    • investmentId 产品 ID
    • protocolId 隶属的协议 ID
    • network 所属主网,如 Ethereum、Arbitrum
    • chainId 链 ID,数值型,可与 EIP-155 对齐

示例路由器径示范:

platformMinInfos[0].chainId == 42161  // Arbitrum One

五、完整 cURL 调用示例

不带过滤:

curl -X GET "https://web3.okx.com/api/v5/defi/explore/protocol/list"

带 Platform 名称过滤:

curl -X GET "https://web3.okx.com/api/v5/defi/explore/protocol/list?platformName=AAVE"

六、高阶用法:从列表到产品详情

  1. 步骤 1:先用本文接口抓到所有 protocolinvestmentId
  2. 步骤 2:使用返回字段 investmentApiUrlPattern,把 {{investmentId}} 模板替换成真实 ID
  3. 步骤 3:得到完整产品详情路径,再组合私钥做签名调用,即可完成 收益复投(auto-compound)

👉 立即查看高阶实例:如何用递归脚本批量复投收益


七、速率与缓存建议


八、错误码速查

返回码含义解决思路
40001参数格式异常检查 platformName 是否 UTF-8
429触发速率限制增加退避时间或申请企业链路
500服务内部错误捕获异常 3 s 后重试一次

九、常见问题 FAQ

Q1:平台没有 platformWebSite 字段怎么办?
A1:该值可能为空,建议接管兜底跳转至 https://etherscan.io/address/{protocolId} 方便人工核查。

Q2:如何仅获取 Arbitrum 网络的产品?
A2:列表接口本身不做链级过滤,拿到全部数据后在本地过滤 chainId==42161 即可。

Q3:有 GraphQL 版本吗?
A3:官方暂无 GQL 封装,可用 REST 拉取后自行转换为 GraphQL 子图,降低前端 bundle 体积。

Q4:返回里出现同名 protocol,是 BUG 吗?
A4:不是。多数协议会部署多链 Factory,同名但 chainIdprotocolId 不同,可作为双重区分维度。

Q5:为何我 platformName=Uniswap 查不到?
A5:注意大小写与空格;官方使用「Uniswap V3」完整写法,建议先用模糊匹配列表,再精准过滤。

Q6:浏览器打不开 investmentPageUrlPattern
A6:该模板需替换域内变量,例:https://okxdog.com/web3/defi/invest/{investmentId},如缺失,请确认是否完成模板拼接。


十、开发时的 3 个避坑小贴士

  1. 在使用 investmentPageUrlPattern 做前端跳转时,务必 URL Encode investmentId,以免遇到特殊字符(如 +、%)导致 404。
  2. 全局缓存切勿持久化到本地文件,链上数据每天滚动更新,推荐 Redis TTL 5 分钟
  3. 若部署在云函数,请启用 Keep-alive 减少 HTTPS 握手时间 —— 实测节省 180 ms。

👉 订阅最新 DeFi 接口更新,第一时间掌握链上机会