You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Metaplex NFT真伪校验方法及链下部分校验可行性咨询

Metaplex 标准NFT校验问题解答

链下校验的可行性结论

  • 校验流程可以全部在链下完成,不需要发起链上交易,但仅靠本地推导PDA地址、不校验链上账户实际状态的纯离线逻辑完全不足以规避诈骗风险。
  • 你提到的「确认对应账户存在且所有权归属Token Metadata Program」是必须做的校验项,没有这个环节的逻辑存在明确绕过可能。

不同版本Metaplex的校验基础逻辑

  • Metaplex v1.1及以上版本:可直接通过Metadata账户的token_standard字段判断,字段值为NonFungible或ProgrammableNonFungible时才是标准定义的NFT。该字段校验可在链下完成,前提是你获取的Metadata账户数据来自可信RPC节点,未被篡改。
  • Metaplex v1.0版本:检查mint_authority的方向正确,但不能仅靠本地推导的Edition PDA地址做匹配判断。

诈骗方可以直接构造一个自定义Mint,将mint_authority设置为和你本地推导的Edition PDA完全相同的地址——只要该PDA地址上没有被Token Metadata Program初始化生成真实的Edition账户,这个Mint就根本不是Metaplex标准NFT,你的原有逻辑会直接误判。

你提供的校验代码存在的漏洞

// assume that this mint has decimals = 0 and supply = 1.
let edition_pda = Pubkey::find_program_address(['metadata', token_metadata_program_id, mint_id, 'edition']);
if mint_authority == edition_pda {
  // This is NFT
} else {
  // This can be SCAM
}

这段逻辑有三个明确缺陷:

  1. 未校验Edition账户的所有权:必须确认推导出来的edition_pda地址上存在已初始化的账户,且账户的owner字段严格等于Token Metadata Program主网IDmetaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s,地址匹配本身没有任何信任背书效力。
  2. 未校验Mint的冻结权限:正规Metaplex NFT的freeze_authority和mint_authority都会被转移给Edition PDA,仅校验铸造权限会漏掉权限未正确放弃的假NFT。
  3. 把Mint基础属性作为假设而非校验项:decimals=0、supply=1是NFT的必要条件,不能靠默认假设跳过校验,必须从链上Mint账户数据中实际读取验证。

可在链下执行的完整校验流程

只要从可信节点获取到真实链上账户数据,以下步骤全部可在链下完成:

  1. 校验目标Mint账户基础属性:确认decimals == 0、supply == 1,无异常增发配置。
  2. 基于Mint地址推导对应Metadata PDA、Edition PDA地址,确认两个地址均存在已初始化账户,且账户所有者均为Token Metadata Program。
  3. 读取Metadata账户内容,确认账户内存储的mint字段和你当前校验的目标Mint地址完全一致,避免RPC返回错配、篡改的数据:
    • 若为v1.1及以上版本Metadata,直接判断token_standard是否属于NFT类枚举值
    • 若为v1.0版本Metadata,校验Mint的mint_authority、freeze_authority均等于推导得到的Edition PDA
  4. 可选增强校验:校验Metadata的update_authority是否为已知可信项目方地址、是否通过官方Collection认证,进一步过滤仿盘、跑路项目。

内容的提问来源于stack exchange,提问作者S.R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 23:15:51