ContAnchor · 持有验证示例

链上持有验证(只读)

用公共 RPC 调用 ownerOf / balanceOf。这是技术核验,不是官方认证;持有 DualPool NFT 不代表预热授权或平台背书。

// Minimal ethers v6 + public BSC JSON-RPC
import { Contract, JsonRpcProvider } from "ethers";

const RPC = "https://bsc-dataseed.bnbchain.org";
const ABI = [
  "function ownerOf(uint256 tokenId) view returns (address)",
  "function balanceOf(address owner) view returns (uint256)",
  "function totalSupply() view returns (uint256)",
];

const provider = new JsonRpcProvider(RPC, 56);
const nft = new Contract("0x3511530ef37d7eb9884026840e76f411c26f8403", ABI, provider);

export async function ownsToken(wallet, tokenId) {
  const owner = await nft.ownerOf(tokenId);
  return owner.toLowerCase() === wallet.toLowerCase();
}

export async function balanceOf(wallet) {
  return await nft.balanceOf(wallet); // bigint
}

// Example:
// await ownsToken("0xYourWallet", 1n);
// await balanceOf("0xYourWallet");

纯 JSON-RPC(无库)示例 — ownerOf(1):

curl -s https://bsc-dataseed.bnbchain.org -H 'content-type: application/json' -d '{
  "jsonrpc":"2.0","id":1,"method":"eth_call",
  "params":[{
    "to":"0x3511530ef37d7eb9884026840e76f411c26f8403",
    "data":"0x6352211e0000000000000000000000000000000000000000000000000000000000000001"
  },"latest"]
}'
# result 末 40 hex = owner address

ContAnchor · 实时供给请用合约只读方法 totalSupply / *Remaining(BscScan 或公共 RPC)

给 Agent 的集成说明