Skip to content

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 (币安智能链)
DEXPancakeSwap

初始分配

代币分配方案:

  • 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

安全特性

  1. Ownable: 只有 owner 可以执行管理操作
  2. 自动交换阈值: 避免频繁小额交换,降低gas消耗
  3. 免税地址白名单: 确保协议内部交易不被征税

代码示例

检查税率

solidity
uint256 feeRate = taxToken.FEE_RATE(); // 300 = 3%

检查是否免税

solidity
bool exempt = taxToken.isFeeExempt(address);

触发税收交换

solidity
// 当合约内代币 >= 200时自动触发
taxToken.swap(); // 手动触发交换

相关链接

Chaos Protocol Documentation