在以太坊上发代币,本质是编写并部署一份符合erc-20标准的智能合约,而不是在钱包里点击一个创建资产按钮。合约上线后,代币名称、简称、总供应量、余额记录、转账规则都会写入链上,任何地址都能通过合约读取或调用。erc-20之所以被广泛采用,是因为它统一了transfer、approve、transferfrom、balanceof、totalsupply等接口,钱包、区块浏览器和去中心化交易所更容易识别和接入。

准备阶段要把代币规则想清楚。名称和ticker只是展示层信息,真正影响后续运营的是总发行量、初始分配、小数位以及是否允许追加铸造。openzeppelin的erc-20实现默认使用18位小数,供应机制需要在继承合约中通过_mint明确写出;常见的固定总量写法,是在构造函数里一次性把设定数量铸造给部署地址。也可以加入销毁、暂停转账、上限供应等扩展,但每增加一项权限,合约复杂度和用户理解成本都会上升。

实际操作通常采用solidity、openzeppelin和remix这一套工具组合。开发者可从openzeppelin的模块化erc-20合约开始,在remix中新建.sol文件,导入对应版本的库,设定代币名称、简称和铸造数量,再选择与代码声明一致的solidity编译器完成编译。测试阶段不宜直接使用以太坊主网,先在公开测试网络验证转账、授权、余额变化和异常输入,确认没有把代币误铸到错误地址。部署时,remix的运行环境切换为连接浏览器钱包的injected provider,metamask签名交易后,合约才会真正写入以太坊;部署行为属于改变链上状态的操作,需要支付eth作为gas,费用会随网络拥堵和合约复杂度波动。

交易确认后生成的合约地址,就是这枚代币在链上的唯一识别入口。把地址导入钱包只能让资产显示出来,并不代表代币已经有市场价格,也不会自动出现在交易所。为了提升透明度,应在etherscan等区块浏览器提交与部署时完全一致的源码、编译器版本、优化设置和构造参数,完成源码验证后,用户才能查看可读代码并使用read contract、write contract等功能。验证通过也不等于合约安全,只能说明公开源码与链上字节码相匹配。
想让代币具备买卖属性,还需要在uniswap等dex建立流动性池,存入代币和eth或稳定币,并根据存入比例形成初始价格。这里最容易被忽略的是合约权限:谁能继续mint,谁能暂停转账,谁拥有黑名单或修改手续费的权力,都应在上线前向市场清楚披露。openzeppelin的ownable和accesscontrol可用于管理单一管理员或多角色权限,但权限配置错误可能导致无法维护,管理员密钥泄露则可能直接影响供应量和交易规则。真正完整的发币流程,终点不是拿到一个合约地址,而是完成测试、验证、权限审查、流动性安排和持续监控。