# NFTScan 大Token ID与元数据空值：保留精度、URI和毫秒时间

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/nftscan-large-token-id-metadata-null-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

按链+合约+字符串Token ID定位已有NFT记录，核对十六/十进制、metadata_json、显示属性及ERC1155空值，避免精度损失和字段类型误判。

## 使用工具
- [NFTScan API / SDK](https://lianxiaozhi.com/tools/nftscan) · [官方入口](https://docs.nftscan.com/)

## 前置条件
- 已有脱敏单NFT结果或官方Asset字段模型，以及chain、contract_address和原token ID。
- 保留原JSON文本与SDK版本；不要先经Number转换后再保存Token ID。
- 固定源码核对不等于读取真实NFT、运行SDK、获取元数据URL内容或验证当前链上所有权。

## 1. 锁定三元身份和方法参数

从已有记录取chain、contract_address、原token ID，名称/图片另列。固定getAssetsByContractAndTokenId(contractAddress,tokenId,showAttribute)要求contract与tokenId非空字符串，组成/v2/assets/{contract}/{tokenId}；它不是以nftscan_id替代Token ID的路径。

核对实际chain/baseURL是否在该固定版本配置内。不能用付款FAQ的Ethereum/BNBChain/Polygon或未来链计划来确定数据接口支持，也不将该EVM路径套到Solana mint。

核对结果：同名NFT仍按链、合约和Token ID区别；错误方法或网络先解决，缺结果不当销毁。
依据：[NFTScan 固定 EVM asset 方法实现](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/api/evm/asset/index.ts)
依据：[NFTScan 固定 SDK 链与路径常量](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/util/nftscan.const.ts)
依据：[NFTScan Developer FAQ](https://developer.nftscan.com/faq)

## 2. 用字符串和精确整数核对Token ID

Asset.token_id声明string、注释数值形式，contract_token_id注释Hex。保存原值；需要比较时以十进制字符串和带0x十六进制字符串用BigInt精确换算后比较，先验证格式，异常不能落成0。

本地算术例子：十进制"9007199254740993"与Hex"0x20000000000001"表示同一整数。BigInt(hex).toString(10)可得到精确十进制；Number已可能丢精度，不能用parseInt/Number后再toString补救。将比较结果输出字符串，BigInt不直接作为JSON数值写出。该例只是单位/精度检查，不是真实NFT查询。

核对结果：原token ID没有浮点化；十进制与十六进制的精确对应可复核，非法/缺失值保持错误或未知。
依据：[NFTScan 固定 EVM Asset 与多链响应类型](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/response-data.ts)
依据：[NFTScan 固定 EVM asset 方法实现](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/api/evm/asset/index.ts)

## 3. 分开元数据原文、展示URI与代理URI

metadata_json在固定模型中是string，先保存原字符串；已有值可在本地JSON.parse并捕获格式错误，不能假定它已是object。token_uri是token URI，content_uri/image_uri是展示内容，nftscan_uri/small_nftscan_uri是NFTScan保存的图片地址，分别记录。

代理URI或图片相同不证明原metadata相同、版权授权或永久存储。nftscan_uri注释未存储时可null，类型却是string；空值保留，不能自动回填另一URI让来源混淆。只有字段，没有实际内容读取证据时标“URI已记录，内容未核实”。

核对结果：原元数据、解析状态与各URI角色分列；错误JSON/null没有被转为空对象或合并成一个来源URL。
依据：[NFTScan 固定 EVM Asset 与多链响应类型](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/response-data.ts)

## 4. 核对属性开关和ERC1155的null冲突

show_attribute默认false。单NFT方法第三参数showAttribute为true时才组装show_attribute:true；已有记录没开启属性时，缺attributes不能直接判断NFT没有traits。即使开启也要保留实际返回状态，源码不保证当前后台完整属性。

ERC1155 owner、own_timestamp和mint_price注释可null，而声明为string/number，遇到null应保留合法未知分支，不能强制断言或填空地址/0时间。ERC1155可能多持有人，不能根据这份单一owner字段断言无人持有；amount仍按原字符串数量检查。

核对结果：能说明属性是否请求、返回是否取得，以及空值属于未取得/可能不适用/版本矛盾哪一类。
依据：[NFTScan 固定 EVM asset 参数](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/request-params.ts)
依据：[NFTScan 固定 EVM asset 方法实现](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/api/evm/asset/index.ts)
依据：[NFTScan 固定 EVM Asset 与多链响应类型](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/response-data.ts)

## 5. 按毫秒显示时间并隔离成交价格

mint_timestamp、own_timestamp、latest_trade_timestamp注释均为毫秒，先判数值是否存在与有效，再按毫秒转换，例如有效值可用new Date(value).toISOString()显示UTC。不要乘1000把毫秒当秒，也不要让null变成1970年记录。

latest_trade_price需与latest_trade_symbol、latest_trade_token、latest_trade_timestamp一起保存；模型没有保证所有值均用wei或当前可成交价，不能从number类型套固定缩放。最后按同一身份输出时间/URI/属性/owner/价格的已知与未知，成交记录不代替当前账户到账或最新所有权验证。

核对结果：时间单位、UTC显示与原值均可复查；价格单位/时刻未取得时不作估值或到账断言。
依据：[NFTScan 固定 EVM Asset 与多链响应类型](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/response-data.ts)
依据：[NFTScan 固定 SDK 包版本](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/package.json)

## 常见错误
- 先把大Token ID转Number，造成静默精度丢失；token_id注释Number不改变TS string声明。
- 将metadata_json字符串、图片代理地址和链上token_uri视为同一内容证据。
- 按非nullable类型强制解析ERC1155的null，或把未请求attributes解释为无属性。
- 将毫秒乘1000、null映射1970时间，或把latest_trade_price自动当ETH/wei/实时估值。

## 完成检查
- 形成链/合约/精确Token ID一致的核对记录，保存原值及十六/十进制对应。
- 逐字段记录解析状态、URI角色、属性开关、null/缺失、毫秒时间与未知币种口径；注明固定源码范围与未实测服务。

## 相关知识
- [如何核对 Meme 币？先确认链、合约地址和交易池](https://lianxiaozhi.com/learn/meme-token-identity)
- [原始、解码和整理后的链上数据有什么区别？](https://lianxiaozhi.com/learn/raw-decoded-curated-data)
- [把数据上链，与只保存数据哈希有什么区别？](https://lianxiaozhi.com/learn/data-onchain-vs-offchain)
- [链上指标历史数值为什么会变？](https://lianxiaozhi.com/learn/point-in-time-metrics)

## 官方依据
- [NFTScan Developer FAQ](https://developer.nftscan.com/faq)
- [NFTScan 固定 EVM asset 方法实现](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/api/evm/asset/index.ts)
- [NFTScan 固定 EVM asset 参数](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/request-params.ts)
- [NFTScan 固定 EVM Asset 与多链响应类型](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/types/evm/asset/response-data.ts)
- [NFTScan 固定 SDK 链与路径常量](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/src/util/nftscan.const.ts)
- [NFTScan 固定 SDK 包版本](https://raw.githubusercontent.com/nftscan-official/nftscan-api-js-sdk/5ab7fe77baf804ebde1cd938e7bd74d3bc2f7e51/package.json)
