TaxToken
TaxToken 是 Chaos Protocol 的基础代币合约,实现了带有交易税机制的 BEP-20 代币。
基本信息
| 属性 | 值 |
|---|---|
| 代币名称 | 太初 (Chaos) |
| 代币符号 | Chaos |
| 初始供应量 | 100,000,000 (1亿) |
| 初始流动性 | 50,000,000 Chaos + 80,000 USDT |
| 私募投资者 | 603人 |
| 私募投入范围 | 200-2000 USDT/地址 |
| 分配比例 | Token = USDT × 156.25 |
| 税率 | 3% |
| 链 | BSC (币安智能链) |
| DEX | PancakeSwap |
初始分配
代币分配方案:
- 50% (50,000,000 Chaos) 用于添加初始流动性
- 50% 按比例分配给603个私募投资者
详见 代币经济学 - 私募投资者分配。
核心功能
1. 交易税机制
TaxToken 实现了自动交易税机制,仅在涉及 PancakeSwap 交易对的转账时收取税费。
solidity
uint256 public constant FEE_RATE = 300; // 3%触发条件:
- 买入(从交易对买入代币)
- 卖出(卖出代币到交易对)
免税场景:
- 普通钱包之间转账
- 铸造 (mint)
- 销毁 (burn)
burnPool地址相关交易vault地址相关交易
2. 税收处理流程
交易税的处理是自动化的:
用户交易 → 扣除3%税费 → 税费暂存合约
↓
达到MIN_SWAP_AMOUNT (200代币)
↓
通过PancakeSwap换成USDT
↓
┌─────────┴─────────┐
↓ ↓
80% → BurnPool 20% → 奖金池
(notifyUsdtReceived) (notifyPrizeReceived)3. 免税地址
以下地址在交易时不收取税费:
solidity
mapping(address => public isFeeExempt;
// 免税地址
burnPool // 燃烧池地址
vault // 金库地址4. Launch 控制
合约实现了启动控制机制,在 launch() 被调用之前,所有转账操作都会被拒绝。
solidity
function launch() external onlyOwner {
_launched = true;
}
function _transfer(...) internal override {
if (!_launched) revert NotLaunched();
// ...
}用途: 确保在项目正式启动前,代币不会被交易。
5. 批量空投
Owner 可以使用 batchAirdrop 功能批量向多个地址分发代币。
solidity
function batchAirdrop(
address[] calldata recipients,
uint256[] calldata amounts
) external onlyOwner与 PancakeSwap 集成
TaxToken 与 PancakeSwap V2 完全集成:
- Router: PancakeSwap V2 Router
- 交易对: Chaos/USDT
- USDT地址:
0x55d398326f99059fF775485246999027B3197955
安全特性
- Ownable: 只有 owner 可以执行管理操作
- 自动交换阈值: 避免频繁小额交换,降低gas消耗
- 免税地址白名单: 确保协议内部交易不被征税
代码示例
检查税率
solidity
uint256 feeRate = taxToken.FEE_RATE(); // 300 = 3%检查是否免税
solidity
bool exempt = taxToken.isFeeExempt(address);触发税收交换
solidity
// 当合约内代币 >= 200时自动触发
taxToken.swap(); // 手动触发交换