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

如何使用智能合约铸造非该合约所有的Hedera Token?

无需将私钥放入合约,铸造第三方Hedera Token的正确方式

首先明确:绝对不能把私钥写进智能合约,这是致命的安全风险,Discord里的说法完全错误,别信。

要通过合约铸造不属于你的Hedera Token,核心是权限授权,流程如下:

  • 先让目标Token的创建者,通过Hedera Token Service(HTS)的grantTokenPermissions函数,把该Token的Mint权限授予你的智能合约地址。这是必要前提,没有授权的话,任何地址都没法随便铸造他人的Token。

  • 你的合约只需要调用HTS预编译合约的mintToken函数即可,参数对应你提到的内容:

    • 第一个参数:目标Token的合约地址(即你要铸造的第三方Token的地址)
    • 第二个参数:铸造数量(FT场景填具体数值,NFT场景固定填1)
    • 第三个参数:NFT元数据数组(NFT场景传单个元数据的数组,FT场景传空数组)

给个Solidity示例代码,更直观:

// 定义HTS预编译合约的接口
interface IHTS {
    function mintToken(address tokenId, uint64 amount, bytes[] calldata metadata) external returns (int64 responseCode);
}

contract MyMinter {
    // Hedera上HTS预编译合约的固定地址
    address constant HTS_PRECOMPILE = address(0x167);

    // 铸造第三方FT
    function mintExternalFT(address targetToken, uint64 mintAmount) external {
        // FT场景元数据传空数组
        IHTS(HTS_PRECOMPILE).mintToken(targetToken, mintAmount, new bytes[](0));
    }

    // 铸造第三方NFT
    function mintExternalNFT(address targetToken, bytes calldata nftMeta) external {
        bytes[] memory metaArray = new bytes[](1);
        metaArray[0] = nftMeta;
        // NFT数量固定填1
        IHTS(HTS_PRECOMPILE).mintToken(targetToken, 1, metaArray);
    }
}

最后几个关键提醒:

  • 必须确认目标Token的创建者已经给你的合约开了Mint权限,否则调用mintToken会返回权限不足的错误
  • 所有HTS操作都是通过预编译合约执行,无需自己编写复杂逻辑
  • 私钥绝对不能出现在合约、交易数据或任何公开场景,权限完全依靠HTS的授权机制管理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:10:36