Magic Eden 钱包 NFT 数量不一致:核对 Solana 集群、筛选与分页
链小知 · 进阶 · 核验 · 依官方文档整理
对照已有钱包 tokens 请求记录,分清列表范围、价格筛选歧义、offset 分页与未知索引状态。
开始前准备
- 准备本人有权查看的既有去敏请求、响应正文与响应头,保留时间、钱包地址及集群;本教程不要求发送新请求或连接钱包。
- 适用 Solana /v2/wallets/{wallet_address}/tokens。官方当前说明 Solana API 暂仍运行但正在评估,不能用旧 Bitcoin/EVM API 文档证明相应服务仍可用。
- 概览要求数据使用遵守条款与注明 Magic Eden;公开 API 文档列默认120 QPM或2 QPS,部分方法需要key。实际访问、额度与费用需当前资格核对,Key不得出现在分享记录。
1. 固定钱包、集群和数据时刻
记录完整wallet_address和请求host。官方概览将api-mainnet.magiceden.dev/v2与api-devnet.magiceden.dev/v2分开,Devnet测试资产不能与主网持有列表混合。钱包地址相同也不能省略集群。
保存响应取得时间和当时参数,作为待比较快照;本页不是钱包余额查询,也不证明接口当前可访问。基础设施公告里的3月27没有单列年份,不自行把日历推断写成实际停服回执。
检查结果:两份记录的钱包、集群及时间可比较,缺项明确列出。
2. 区分合集筛选和挂牌范围
先读collection_symbol与mcc_address:前者为平台合集symbol,后者为Metaplex Certified Collection地址,两种过滤依据不同。listStatus允许listed、unlisted、both,默认both;只查listed时不能把返回数量当全部持有NFT。
将attributes每个内层数组的OR、外层数组之间的AND单独写清。例如同trait的两个值放在同组,和另一个trait的组同时成立,不能把所有条件简单OR。缺参数和显式过滤也不能当同一查询。
检查结果:保留合集身份、listStatus和属性逻辑,数量结论限定该过滤范围。
3. 不要按有歧义的价格说明自动删数据
当前钱包方法页把min_price描述为小于该价、max_price描述为大于该价,与参数名的直觉方向相反;旧更新页只说支持最低/最高价格筛选,没有解决这个冲突。价格单位也未在本轮可见参数正文明确。
记录原参数和原返回,价格方向或单位没有已核实依据就标未知,不交换两个参数、不乘除SOL或lamport尺度来修补数量。比较无价格过滤的既有记录与过滤记录时,也保留时间差和可能的状态变化。
检查结果:价格方向与单位的未核实项可见,没有凭参数名修改原记录。
4. 逐页记录offset与实际返回条目
offset是跳过条目数,默认0;limit默认100、范围1至500。按每页实际参数记录起点、申请数量、返回数量,不能把只有100条的第一页当钱包总量。sort默认updatedAt,另可listPrice,sort_direction默认desc,可asc。
页间排序或过滤变化时先拆成不同记录。滚动中的列表可能造成重复或遗漏;用原返回的明确资产标识去重并保留原行,不能用图片或名称替代身份,也不能宣称多次offset请求构成一个不可变链上快照。
检查结果:每页参数、原行数、去重依据与分页缺口可复查。
5. 只在支持时解释分页响应头
概览说明可请求ME-Pub-API-Metadata: {"paging":true},支持的方法会在同名响应头给paging的total、start、end。这里只核对已有响应头;概览没有保证每个方法都支持,也没有明确end是否包含边界。
无响应头不等于total=0,不能直接用end-start或加1补出真实数量。保留正文行数与三个原字段,各自检查;有缺页、未知索引状态或时刻差异时,不写“全量持有已验证”。
检查结果:响应头存在性、三个原分页值和正文计数分别保存,边界未知未补猜。
6. 把错误与资产不存在分开
该方法参考页列400 Wallet not found;同时还要保留实际HTTP和错误正文。400不证明链上钱包不存在,连接拒绝、权限或限速也不能归为零资产;失败页不能填空数组来让汇总看起来完整。
整理同范围已知行数、重复项、缺页和待核对项。本轮没有执行API或证明平台索引完全性;已有记录足够解释列表差异时即可结束,不为核对数量进入交易instructions或生成签名。
检查结果:形成有限范围数量核对,错误、空结果与缺失分页没有合并。
怎样确认完成
- 已有记录的集群、钱包、过滤、排序、分页和时间分别保留。
- 给出当前记录可解释的数量差异与剩余缺口,没有宣称全链持有完整性。
- 官方文档整理;真实API、钱包页面及全量索引验收未完成。
常见错误与边界
- 主网与Devnet、listed与both混在一个数量里。
- 按参数名猜价格方向和单位,忽略官方描述冲突。
- 分页响应头缺失补0,或以HTTP400证明链上无资产。