SuperAPI AI 工具集

nft-blockchain

通用与其它

查看项目

更新于 10-16 05:05

技能介绍

用途:在 Decentraland 场景中展示 NFT、连接区块链与钱包,并按资产持有情况限制访问。

主要能力:

  1. NFT 展示:用 NftShape 在画框中显示 NFT,URN 格式为 urn:decentraland:<chain>:<contractStandard>:<contractAddress>:<tokenId>,示例 urn:decentraland:ethereum:erc721:0x06012c8cf97bead5deae237070f9587f8e7a266d:558536。链支持 ethereum、matic、klaytn、bsc、arbitrum、arbitrum_nova、avalanche、optimism、solana、base、blast、zora;图片经 opensea.decentraland.org 代理加载。可选多种 NftFrameType 边框风格,如 NFT_CLASSIC、NFT_GOLD_WIDE、NFT_NONE 等。
  2. 钱包检查:从 @dcl/sdk/src/players 的 getPlayer() 读取 player.userId(以太坊地址);任何区块链交互前须检查 isGuest。
  3. 签名请求:用 ~system/SignedFetch 的 signedFetch({ url, init }) 自动附加 ADR-44 签名头;响应体为字符串,需 JSON.parse(response.body)。仅需签名头可用 getHeaders。
  4. 合约交互:用 eth-connect 配合 @dcl/sdk/ethereum-provider 的 createEthereumProvider,通过 ContractFactory 调用读(无 gas)或写(需签名与 gas)方法。
  5. 常用封装:dcl-crypto-toolkit 提供 ethereum、mana、currency、nft、marketplace 等模块,支持发送 MANA、查询余额、转账 NFT、token gating、市场买卖、EIP-712 签名。
  6. 门槛控制:crypto.nft.checkTokens(contractAddress, tokenIds?) 按 NFT 持有判断,或按 MANA/ERC20 余额判断。

必要用法:安装命令 npm install eth-connect 与 npm install dcl-crypto-toolkit;异步调用包在 executeTask 中并处理错误。开发可用 Sepolia 测试网。

限制:guest 玩家无连接钱包;写操作需用户签名和 gas;链名原样传给 OpenSea v2 API,无法识别会被拒绝;主网与测试网合约地址不同。完整模式见 {baseDir}/references/blockchain-patterns.md。