随着区块链技术的飞速发展,各类公链生态百花齐放,为开发者提供了丰富的发币选择,EDEN链作为一条新兴的高性能、低成本公链,其友好的开发环境和强大的生态潜力,吸引了众多项目方考虑在其上发行代币,本文将为您详细解析在EDEN链上发行代币的完整步骤,助您轻松上手。

前期准备与规划

在正式启动发币流程之前,充分的准备工作至关重要,这将直接影响到后续步骤的顺利程度和代币的最终表现。

  1. 明确代币定位与用途

    • 问自己:代币的核心价值是什么?是作为平台治理币、应用内支付工具、激励代币,还是其他用途?
    • 经济模型设计:确定代币的总供应量、分配方案(如团队、私募、公募、生态奖励、社区空投等)、释放机制、是否需要锁仓、是否具备通缩/通胀机制等,一个合理的经济模型是代币长期健康发展的基石。
  2. 选择代币标准

    • EDEN链通常支持以太坊兼容的代币标准,如 ERC-20(最常用,适用于 fungible token,即同质化代币)。
    • 如果您的项目需要非同质化代币(NFT),则可以选择 ERC-721ERC-1155 标准。
    • 本文将以最常用的 ERC-20 代币为例进行阐述。
  3. 准备开发环境

    • 安装Node.js:确保您的系统已安装最新稳定版的 Node.js(建议 LTS 版本)。
    • 安装npm/yarn:Node.js 包管理器,用于安装和管理依赖。
    • 代码编辑器:如 VS Code。
    • MetaMask:或支持EDEN链的其他Web3钱包,用于与EDEN链交互、测试和部署。
  4. 获取EDEN链测试网/主网RPC URL和测试币

    • 测试网:在正式部署前,务必在测试网上进行测试,您可以从EDEN链官方文档、官方Discord或Twitter公告中获取测试网的RPC URL和测试水龙头(faucet)地址,以获取测试用的EDEN币(如tEDEN)。
    • 主网:部署到主网时,需要使用主网RPC URL,并确保钱包中有足够的EDEN原生币(如EDEN)用于支付Gas费。

编写智能合约

代币的核心逻辑是通过智能合约来实现的。

  1. 选择开发框架

    • Hardhat:功能强大,插件丰富,适合中大型项目。
    • Truffle:老牌开发框架,社区成熟。
    • Remix IDE:在线集成开发环境,无需本地配置,适合快速原型开发和初学者。
    • 本文以Hardhat为例。
  2. 创建Hardhat项目

    mkdir eden-token-project
    cd eden-token-project
    npm init -y
    npm install --save-dev hardhat
    npx hardhat

    按照提示选择 "Create a JavaScript project"(或TypeScript),并回答相关问题。

  3. 安装OpenZeppelin合约: OpenZeppelin提供了一套经过审计的、安全的智能合约标准模板,包括ERC-20,推荐使用。

    npm install @openzeppelin/contracts
  4. 编写ERC-20代币合约: 在 contracts/ 目录下创建一个新的Solidity文件,MyEDENToken.sol

    // SPDX-License-Identifier: MIT
    pragma solid
    随机配图
    ity ^0.8.20; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract MyEDENToken is ERC20 { constructor(string memory name, string memory symbol) ERC20(name, symbol) { _mint(msg.sender, 1000000 * 10**decimals()); // 发行100万代币,18位小数 } }
    • name:代币全称,如 "My EDEN Token"。
    • symbol:代币简称,如 "MET"。
    • _mint(msg.sender, 1000000 * 10**decimals()):在部署时将100万枚代币铸造给部署者地址。decimals() 通常为18,与以太坊兼容。

编译智能合约

在部署前,需要编译智能合约以确保代码没有语法错误。

npx hardhat compile

编译成功后,合约的ABI(应用二进制接口)和字节码会生成在 artifacts/contracts/ 目录下。

部署智能合约

部署是将智能合约上链到EDEN链的关键步骤。

  1. 配置Hardhat网络: 在 hardhat.config.js 文件中添加EDEN链(测试网或主网)的配置:

    require("@nomicfoundation/hardhat-toolbox");
    require("@nomicfoundation/hardhat-ethers");
    const PRIVATE_KEY = "YOUR_PRIVATE_KEY"; // 部署钱包的私钥(测试网或主网)
    const RPC_URL = "YOUR_EDEN_CHAIN_RPC_URL"; // EDEN链测试网/主网RPC URL
    module.exports = {
      solidity: "0.8.20",
      networks: {
        edenTestnet: {
          url: RPC_URL,
          accounts: [PRIVATE_KEY],
          chainId: 1666800000 // 替换为EDEN测试网的实际chainId,主网chainId请查阅官方文档
        },
        edenMainnet: {
          url: RPC_URL, // 主网RPC
          accounts: [PRIVATE_KEY],
          chainId: 1666800001 // 替换为EDEN主网的实际chainId,请查阅官方文档
        }
      },
    };
    • 获取PRIVATE_KEY:从您的MetaMask钱包中导出私钥(注意:私钥极度敏感,切勿泄露给他人!)。
    • 获取RPC_URL和chainId:从EDEN链官方渠道获取。
  2. 编写部署脚本: 在 scripts/ 目录下创建部署脚本,deploy.js

    async function main() {
      const [deployer] = await ethers.getSigners();
      console.log("Deploying contracts with the account:", deployer.address);
      const MyEDENToken = await ethers.getContractFactory("MyEDENToken");
      const tokenName = "My EDEN Token";
      const tokenSymbol = "MET";
      const myEDENToken = await MyEDENToken.deploy(tokenName, tokenSymbol);
      await myEDENToken.waitForDeployment();
      console.log("MyEDENToken deployed to:", myEDENToken.target);
    }
    main()
      .then(() => process.exit(0))
      .catch((error) => {
        console.error(error);
        process.exit(1);
      });
  3. 执行部署

    • 部署到测试网
      npx hardhat run scripts/deploy.js --network edenTestnet
    • 部署到主网
      npx hardhat run scripts/deploy.js --network edenMainnet

      部署成功后,脚本会输出合约的地址,请务必妥善保存此地址,这是您代币在EDEN链上的唯一标识。

验证智能合约

合约验证后,其他人可以在EDEN链的浏览器上查看合约源代码,增加透明度和可信度。

  1. 获取验证器API Key: 通常需要在EDEN链的区块浏览器(如类似Etherscan的浏览器)上注册并获取API Key,具体请查阅EDEN链官方文档。

  2. 使用Hardhat插件验证: 安装 hardhat-verify 插件:

    npm install --save-dev hardhat-verify

    hardhat.config.js 中配置:

    require("@nomicfoundation/hardhat-verify");
    require("@nomicfoundation/hardhat-toolbox");
    require("@nomicfoundation/hardhat-ethers");
    // ... 其他配置 ...
    module.exports = {
      // ... 其他配置 ...
      etherscan: {
        apiKey: "YOUR_ETHERSCAN_API_KEY", // EDEN链浏览器API Key
      },
    };
  3. 执行验证命令

    npx hardhat verify --network edenTestnet "CONTRACT_ADDRESS" "ARG1" "ARG2"
    • CONTRACT_ADDRESS:您部署的代币合约地址。
    • ARG1, ARG2:构造函数