# De.Fi 排查已有 GraphQL 组合记录：链编号、V1/V2 与漏仓位

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/de-fi-graphql-chain-and-protocol-records
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

用已有脱敏请求和响应核对内部 chain_id、地址与协议版本，避免把 HTTP 成功或 V2 无记录误判为全部仓位为零。

## 使用工具
- [De.Fi Dashboard](https://lianxiaozhi.com/tools/de-fi) · [官方入口](https://de.fi/)

## 前置条件
- 准备有权分析的已有 GraphQL 请求与 JSON 响应，包含请求时间、查询文本、HTTP 状态和脱敏地址标签；去掉 X-Api-Key 值。
- 最好同时有 chains 与 protocols 响应及账户额度说明。缺少响应可以按文档结构逐字段盘点，但不调用接口、申请 key 或补跑付费查询。

## 1. 确认入口和查询类型

核对记录目的地是否为 https://public-api.de.fi/graphql，以及查询使用 assetBalances、assetBalancesAdvanced、protocolBalance 或 protocolBalanceV2 中哪一种。钱包持币与协议仓位是不同查询范围。

业务认证要求 X-Api-Key 且预购 credits；复核只保留是否存在认证配置，不复制 key。缺认证或额度的失败不能作为钱包数据。

核对结果：记录包含 endpoint、查询名称和认证配置是否存在，秘密值已移除。
依据：[De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)

## 2. 用 chains 记录映射内部编号

在已有 chains { id name } 结果中核对请求里的 chainIds。官方明确内部1对应 Ethereum、2对应 BNB、3对应 Polygon，而非 BNB Chain 的实际56或 Polygon 的137。

保存内部编号与网络名称映射。不要把内部2理解为某条链的测试网 Chain ID，也不要用其它供应商链编号直接替换。缺 chains 响应时只保留文档例子作为待核映射。

核对结果：内部编号与目标网络有对应证据，实际 Chain ID 和供应商内部 ID 分列。
依据：[De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)

## 3. 核对地址数与资产查询覆盖

assetBalancesAdvanced 的示例用 chainIds、walletAddresses，并返回 total、wallet、chains.chain.id；按地址标签与链拆开检查，不能把一个地址的结果套到整个组合。

此接口为 BETA。文档先将 assetBalances 描述为 ERC20，后又给出非 EVM 场景说明；遇到非 EVM 记录需保留具体 schema/请求证据，不从概述推断所有非 EVM 参数都已支持。

核对结果：目标地址与链都有记录，未因汇总 total 非空就认定组合成员全部覆盖。
依据：[De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)

## 4. 核对协议版本与部分错误

查看已有 protocols(version: V2) 或 V1 响应，确认目标协议 slug 在对应版本里。V2 面向 TOP EVM 平台，其余含非 EVM 平台使用 V1 及逐链、地址、协议组合的 protocolBalance。

protocolBalanceV2 示例分别返回 errors 与 balances。保留 errors，并按 balances.protocol.slug、address、total 对照目标；有部分结果不能掩盖另一协议报错，也不能将缺失项补成0。

核对结果：每个目标协议有版本与结果对应，部分错误和未覆盖仓位单列。
依据：[De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)

## 5. 检查方法对应的 credits 和限制

用请求实际方法核对公开价目：assetBalances、protocolBalance 各10 credits、20次/分钟；chains、protocols 各1 credit、100次/分钟。复杂查询可能消耗更多 credits。

价格表没有独立列出 BETA advanced/V2 的费率，不能将10 credits/20次限制直接移植。API 表保留已 deprecated 的 shields 行，也不等于所有方法都退役或免费。

核对结果：额度说明对应实际方法；未报价的 BETA 项明确未知，没有为了验证而追加收费请求。
依据：[De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)

## 6. 形成可复查的漏仓位说明

整理地址标签、内部链编号、协议 slug、V1/V2、成功结果、errors、时间和缺项。仅在数据完整且无相应错误时解读返回 total；如果缺链、协议或成员，写出具体缺口。

HTTP 状态只说明传输层结果，不能替代查询数据、版本覆盖与索引时点。没有资料时止于待核清单，不触发新查询或连接钱包。

核对结果：得到可定位到查询和协议的排查清单，不将缺记录、错误或未知版本记为零持仓。
依据：[De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)

## 常见错误
- 用56/137直接填入要求内部编号的 chainIds。
- V2 未覆盖某协议，却把 balances 没条目解释为无仓位。
- 只看 total 忽略 errors、多个成员或非 EVM schema 限制。

## 完成检查
- 逐条说明已有查询覆盖的地址、链和协议版本，保留错误及缺失证据。
- 验证级别为文档核对；未调用认证服务、验证额度扣费或确认真实账户资产。

## 相关知识
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)
- [协议手续费与收入指标怎样统一口径？](https://lianxiaozhi.com/learn/protocol-metric-scope)

## 官方依据
- [De.Fi：GraphQL 认证、链编号与计费](https://docs.de.fi/api/api.md)
