
本文记录把 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)。
这是最容易踩的坑。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
你的协议有没有「自己独立的链上合约金库」,用户资金锁在你自己的合约里?
├─ 有(借贷池、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都没有,放进去没有落点)
DefiLlama 上已有 15+ 个 Orderly broker(WooFi Pro Perps、Kodiak Perps、Clober Perps、COIN360 Perps…),它们全部集中登记在同一个文件里:
code
dimension-adapters/factory/orderly.ts
新增一个 broker = 往这个文件的 feesConfigs 里加一条 config,一个共享 helper getBuilderExports 会自动生成完整的「交易量 + 手续费 + 收入」适配器。不需要自己写抓数逻辑。
Orderly 有公开的 broker 名录接口(无需鉴权):
bash
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 ✅
这是关键接口,DefiLlama 适配器就是读它(公开、无鉴权、按 broker 拆分):
code
https://api.orderly.org/md/volume/builder/daily_stats?broker_id=<你的broker_id>
bash
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公开端点。
在 GitHub 网页 Fork DefiLlama/dimension-adapters 到自己账号,然后:
bash
git clone git@github.com:<你的用户名>/dimension-adapters.git
cd dimension-adapters
git checkout -b <你的broker>-adapter # 例:p-adapter
factory/orderly.ts 加一条 config在 feesConfigs 对象末尾(最后一个条目之后)追加:
ts
"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
constfeesProtocols: Record<string, any> = {};
for (const [name, config] ofObject.entries(feesConfigs)) {
feesProtocols[name] = getBuilderExports(config);
}
exportconst { protocolList, getAdapter } = createFactoryExports(feesProtocols);
bash
npm install # 首次
npm test dexs p # npm test dexs <你的slug>
预期输出(P 实测):
code
🦙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 会跳过零交易日)。
bash
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
## 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 ✅
Checks 标签可看;mergeable_state: clean = 通过、无冲突APPROVED——这是自动审查,不等于合并如果你的项目有自己的链上金库,走 DefiLlama-Adapters:
DefiLlama/DefiLlama-Adaptersprojects/<你的项目>/index.jsjs
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"
npm test projects/<你的项目> 验证DefiLlama-Adapters两类适配器可以并存:有金库 + 有交易量的协议,TVL 进 DefiLlama-Adapters、交易量进 dimension-adapters,DefiLlama 按同名 slug 归到一个协议页。
走错仓库。broker 交易量在 dimension-adapters,两个是不同 repo。bash
# 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,正文附元数据
https://api.orderly.org/md/volume/builder/daily_stats?broker_id=pdimension-adapters/factory/orderly.ts → feesConfigsdimension-adapters/helpers/orderly.ts → getBuilderExports()dexs/quickswap-perps/index.ts(多链 broker)、factory/orderly.ts 内所有条目(纯 Orderly broker)最后更新:2026-07-14