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

从智能合约转移Zed.Run NFT:无法确定tokenID问题咨询

从智能合约转移Zed.Run NFT的操作步骤

一、获取Zed.Run NFT的合约地址

Zed.Run的NFT遵循ERC721标准,各链的官方合约地址是固定的:

  • Polygon链:0xCe761D788DF608BD21bdd59d6f4B54b2e27F25Bb
  • Avax链:0x59468516a8259058baD1cA5F8f4BFF190d30E066
  • Klaytn链:0x04263D1235448234D352d757c37A2e761210d29A

二、获取NFT的TokenID

有两种可靠方式获取你智能合约持有Zed.Run NFT的TokenID:

  1. 通过钱包查看:在MetaMask等钱包中,找到你的智能合约地址对应的资产列表,定位到Zed.Run NFT,点击详情即可看到TokenID。
  2. 通过合约方法读取:
    • 打开对应链的区块浏览器(如Polygon的PolygonScan、Avax的SnowTrace),输入上述Zed.Run合约地址,进入「Read Contract」页面。
    • 调用balanceOf方法,传入你的智能合约地址,得到合约持有Zed.Run NFT的总数。
    • 循环调用tokenOfOwnerByIndex方法,第一个参数填你的智能合约地址,第二个参数从0开始递增(直到总数-1),逐个获取每个NFT的TokenID。

三、在智能合约中实现转移

确认合约地址和TokenID后,即可通过ERC721的transferFrom或safeTransferFrom方法完成转移,示例Solidity代码如下:

// 声明ERC721核心接口
interface IERC721 {
    function safeTransferFrom(address from, address to, uint256 tokenId) external;
}

contract YourContract {
    // 替换为对应链的Zed.Run合约地址
    address public constant ZED_RUN_CONTRACT = 0xCe761D788DF608BD21bdd59d6f4B54b2e27F25Bb;

    // 转移NFT到指定地址
    function transferZedRunNFT(address to, uint256 tokenId) external {
        // 调用safeTransferFrom,from为当前合约地址(合约持有NFT时)
        IERC721(ZED_RUN_CONTRACT).safeTransferFrom(address(this), to, tokenId);
    }
}

注意:如果你的合约是被用户授权管理其NFT,from参数需改为用户地址,且需确保用户已通过approve或setApprovalForAll给你的合约授权。

内容的提问来源于stack exchange,提问作者Galimi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:42:39