首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DefiLlama 上架全过程教学

DefiLlama 上架全过程教学

作者头像
张伟_Lewis Zhang
发布2026-07-14 19:03:56
发布2026-07-14 19:03:56
50
举报

本文记录把 P(Orderly Network broker,broker_id=p)上架到 DefiLlama 的完整、已验证流程。 既是 P 的操作复盘,也是任何「基于 Orderly 的 broker / 一般 DeFi 协议」上架 DefiLlama 的通用教程。 实测结果:PR DefiLlama/dimension-adapters#81,npm test dexs p 跑通(Daily volume 2.85k / fees 0.29)。


0. 先搞懂:DefiLlama 是两个仓库,别走错

这是最容易踩的坑。DefiLlama 的社区适配器分在两个名字很像、但完全独立的 GitHub 仓库:

仓库

收录指标

目录形态

适用

DefiLlama/DefiLlama-Adapters

TVL(锁仓量)

projects/<name>/index.js

有独立链上金库 / 抵押池的协议

DefiLlama/dimension-adapters

交易量 / 手续费 / 收入 / 未平仓量

dexs/、fees/、factory/ 等

DEX、永续、聚合器、Orderly broker

官方「Submit a project」文档(docs.llama.fi)默认讲的是 TVL 适配器(DefiLlama-Adapters)。 但永续 DEX / orderbook 类 / Orderly broker 走的是 dimension-adapters,文档里没细讲,这是最大的信息差。

怎么判断自己该进哪个仓库?

code

代码语言:javascript
复制
你的协议有没有「自己独立的链上合约金库」,用户资金锁在你自己的合约里?
├─ 有(借贷池、AMM LP、金库 vault…)        → DefiLlama-Adapters(TVL 适配器)
└─ 没有 / 资金进的是第三方共享层            → dimension-adapters(交易量·手续费)
     典型:Orderly broker、SYMMIO builder、Hyperliquid 前端…

P 的情况:它是 Orderly Network 的 broker(白标前端),用户资金进的是 Orderly 全网共享金库,已经被 orderly-network 这个 TVL 适配器统一计量了。P 没有可单独归属的 TVL,能单独归属的只有经它路由的交易量和它收到的 builder 手续费。所以:

✅ P → dimension-adapters,量交易量 + 手续费 ❌ 不要放进 DefiLlama-Adapters(那里连 dexs/factory/orderly.ts 都没有,放进去没有落点)


1. Orderly broker 上架流程(P 实操)

DefiLlama 上已有 15+ 个 Orderly broker(WooFi Pro Perps、Kodiak Perps、Clober Perps、COIN360 Perps…),它们全部集中登记在同一个文件里:

code

代码语言:javascript
复制
dimension-adapters/factory/orderly.ts

新增一个 broker = 往这个文件的 feesConfigs 里加一条 config,一个共享 helper getBuilderExports 会自动生成完整的「交易量 + 手续费 + 收入」适配器。不需要自己写抓数逻辑。

Step 1 — 确认你的 broker_id 已在 Orderly 注册

Orderly 有公开的 broker 名录接口(无需鉴权):

bash

代码语言:javascript
复制
curl -s "https://api-evm.orderly.org/v1/public/broker/name" \
  | python3 -c "import sys,json;[print(r['broker_id'],'|',r.get('broker_name')) for r in json.load(sys.stdin)['data']['rows'] if 'p' in str(r).lower()]"
# 输出:p | P  ✅

Step 2 — 验证公开数据接口 & 取首日日期

这是关键接口,DefiLlama 适配器就是读它(公开、无鉴权、按 broker 拆分):

code

代码语言:javascript
复制
https://api.orderly.org/md/volume/builder/daily_stats?broker_id=<你的broker_id>

bash

代码语言:javascript
复制
curl -s "https://api.orderly.org/md/volume/builder/daily_stats?broker_id=p"
# 返回每日:takerVolume / makerVolume / builderFee / date / activeUser
  • 累加验证数据真实、非空
  • 取最早一天的日期作为适配器的 start(P 首日 = 2026-07-07

⚠️ 别用 /v1/volume/broker/daily——那个要 orderly-account-id 鉴权头,DefiLlama 适配器不能用。 只能用上面这个 md/volume/builder/daily_stats 公开端点。

Step 3 — Fork 并克隆 dimension-adapters

在 GitHub 网页 Fork DefiLlama/dimension-adapters 到自己账号,然后:

bash

代码语言:javascript
复制
git clone git@github.com:<你的用户名>/dimension-adapters.git
cd dimension-adapters
git checkout -b <你的broker>-adapter    # 例:p-adapter

Step 4 — 在 factory/orderly.ts 加一条 config

feesConfigs 对象末尾(最后一个条目之后)追加:

ts

代码语言:javascript
复制
"p": {                                   // ← key = DefiLlama 协议 slug
broker_id: "p",                        // ← Orderly 的 broker_id
start: "2026-07-07",                        // ← Step 2 取到的首日
methodology: {
Volume: "Maker/taker volume that flows through the P interface",
Fees: "Builder Fees collected from Orderly Network",
Revenue: "All the fees collected",
ProtocolRevenue: "All the revenue goes to the protocol",
    },
  },

可选字段(按需):

  • holderRevenueRatio: 0 —— 若手续费不分给代币持有者(多数新 broker 这样填)
  • revenueRatio / protocolRevenueRatio —— 收入拆分比例,默认 1

文件底部这段循环会自动把你的 config 变成完整适配器,无需改动

ts

代码语言:javascript
复制
constfeesProtocols: Record<string, any> = {};
for (const [name, config] ofObject.entries(feesConfigs)) {
  feesProtocols[name] = getBuilderExports(config);
}
exportconst { protocolList, getAdapter } = createFactoryExports(feesProtocols);

Step 5 — 本地测试(必做)

bash

代码语言:javascript
复制
npm install            # 首次
npm test dexs p   # npm test dexs <你的slug>

预期输出(P 实测):

code

代码语言:javascript
复制
🦙RunningPadapterfromorderlyfactory🦙
Backfill start time:7/7/2026
Daily volume:2.85k
Daily fees:0.29
Daily revenue:0.29
Daily protocol revenue:0.29

看到 volume/fees 有真实数值 = 通过。若报 Data missing for date 说明那天没交易(正常,Orderly 会跳过零交易日)。

Step 6 — 提交 PR

bash

代码语言:javascript
复制
git add factory/orderly.ts
git commit -m "feat(orderly): add P builder adapter (broker_id p)"
git push -u origin p-adapter

DefiLlama/dimension-adapters 开 PR(base = DefiLlama/dimension-adapters:master,compare = 你的 fork 分支)。PR 正文务必附上协议展示元数据(DefiLlama 团队合并时用它在服务端建协议页):

markdown

代码语言:javascript
复制
## What
Adds fees/volume/revenue adapter for P, an Orderly Network broker (broker_id `p`).

## Protocol metadata
- Name: P
- Website: https://p.io  (app: https://app.p.io)
- Twitter/X: https://x.com/p_io
- Logo: https://app.p.io/favicon/android-icon-192x192.png
- Category: Derivatives / Interface
- Chain: Orderly
- broker_id: p

## Test
`npm test dexs p` → Daily volume 2.85k / fees 0.29  ✅

Step 7 — 等待

  • CI:PR 会自动跑测试,PR 页 Checks 标签可看;mergeable_state: clean = 通过、无冲突
  • CodeRabbit 机器人可能先给 APPROVED——这是自动审查,不等于合并
  • DefiLlama 团队人工 review 并 merge(通常几天,无需催)
  • 合并后约 24 小时,协议出现在站上(分类 Derivatives / Interface)

2. 一般协议的 TVL 适配器流程(非 broker 参考)

如果你的项目有自己的链上金库,走 DefiLlama-Adapters

  1. Fork & clone DefiLlama/DefiLlama-Adapters
  2. 新建 projects/<你的项目>/index.js
  3. 用 SDK 计算 TVL(读金库合约里各 token 余额):

js

代码语言:javascript
复制
const config = { avax: '0x金库地址' }
Object.keys(config).forEach(chain => {
module.exports[chain] = {
tvl: async (api) => api.sumTokens({ owner: config[chain], tokens: [/* token 列表 */] })
  }
})
module.exports.methodology = "Assets deposited into the vault"
  1. npm test projects/<你的项目> 验证
  2. 提 PR 到 DefiLlama-Adapters

两类适配器可以并存:有金库 + 有交易量的协议,TVL 进 DefiLlama-Adapters、交易量进 dimension-adapters,DefiLlama 按同名 slug 归到一个协议页。


3. 常见坑 & FAQ

代码语言:javascript
复制
走错仓库。broker 交易量在 dimension-adapters,两个是不同 repo。

4. 附录:P 全流程命令速查

bash

代码语言:javascript
复制
# 1. 验证 broker 已注册
curl -s "https://api-evm.orderly.org/v1/public/broker/name" | grep -i p

# 2. 验证公开数据 + 取首日
curl -s "https://api.orderly.org/md/volume/builder/daily_stats?broker_id=p"

# 3. Fork(网页) 后克隆
git clone git@github.com:<你>/dimension-adapters.git && cd dimension-adapters
git checkout -b p-adapter

# 4. 编辑 factory/orderly.ts 加 config(见 Step 4)

# 5. 测试
npm install && npm test dexs p

# 6. 提交 PR
git add factory/orderly.ts
git commit -m "feat(orderly): add P builder adapter (broker_id p)"
git push -u origin p-adapter
# 到 DefiLlama/dimension-adapters 开 PR,正文附元数据

5. 关键坐标(存档)

  • 数据源接口https://api.orderly.org/md/volume/builder/daily_stats?broker_id=p
  • 登记文件dimension-adapters/factory/orderly.tsfeesConfigs
  • 生成器 helperdimension-adapters/helpers/orderly.tsgetBuilderExports()
  • 参照先例dexs/quickswap-perps/index.ts(多链 broker)、factory/orderly.ts 内所有条目(纯 Orderly broker)
  • P PR:https://github.com/DefiLlama/dimension-adapters/pull/81
  • 上架后分类:Derivatives / Interface(同类:WooFi Pro Perps、Kodiak Perps)

最后更新:2026-07-14

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI量化沉思录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0. 先搞懂:DefiLlama 是两个仓库,别走错
    • 怎么判断自己该进哪个仓库?
  • 1. Orderly broker 上架流程(P 实操)
    • Step 1 — 确认你的 broker_id 已在 Orderly 注册
    • Step 2 — 验证公开数据接口 & 取首日日期
    • Step 3 — Fork 并克隆 dimension-adapters
    • Step 4 — 在 factory/orderly.ts 加一条 config
    • Step 5 — 本地测试(必做)
    • Step 6 — 提交 PR
    • Step 7 — 等待
  • 2. 一般协议的 TVL 适配器流程(非 broker 参考)
  • 3. 常见坑 & FAQ
  • 4. 附录:P 全流程命令速查
  • 5. 关键坐标(存档)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档