Skill flagged — review recommended

ClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.

ERC20 Tokenomics Builder

v1.0.1

Design and model ERC20 tokenomics with vesting schedules, allocation tables, Uniswap liquidity math, and investor documentation for new token launches.

0· 348· 10 versions· 1 current· 1 all-time· Updated 17h ago· MIT-0

Install

openclaw skills install erc20-tokenomics-builder

ERC20 Tokenomics Builder

End-to-end token launch readiness: allocation design → vesting contracts → liquidity math → investor docs.

Workflow

  1. Gather inputs — total supply, allocations, unlock schedules, raise target, listing price
  2. Build allocation table — categories, amounts, percentages, unlock logic
  3. Generate vesting schedules — cliff + linear using OpenZeppelin VestingWallet
  4. Model Uniswap liquidity — initial price, pool depth, slippage targets
  5. Draft investor documentation — token sale summary, SAFT context, vesting proof

1. Allocation Table

Standard allocation buckets (adjust to project):

Category% SupplyCliffVestingTGE Unlock
Team15–20%12 mo36 mo0%
Investors (seed)10–15%6 mo24 mo0–5%
Investors (priv)8–12%3 mo18 mo5–10%
Ecosystem/DAO20–30%048 mo5%
Community/Airdrop10–15%00–12 mo100%
Liquidity5–10%00100%
Reserve/Treasury10–20%0Governance0–5%

Output format: Markdown table + CSV for investor decks.


2. OpenZeppelin VestingWallet

OZ VestingWallet handles cliff + linear release natively.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/finance/VestingWallet.sol";

// Deploy one per beneficiary (or use a factory)
// constructor(address beneficiary, uint64 startTimestamp, uint64 durationSeconds)

// Example: 12mo cliff + 24mo linear for team member
// start = TGE timestamp + 12 months (cliff built in by setting start = cliff end)
// duration = 24 months (linear release after start)

VestingWallet teamVest = new VestingWallet(
    teamMemberAddress,
    uint64(tgeTimestamp + 365 days),   // start after 12mo cliff
    uint64(730 days)                    // 24mo linear vesting
);

Key methods:

  • release(token) — beneficiary calls to claim vested tokens
  • vestedAmount(token, timestamp) — query how much is unlockable
  • releasable(token) — current claimable balance

Cliff pattern: Set startTimestamp = TGE + cliffDuration. Vesting begins linearly after cliff with no special code needed.

Multi-beneficiary factory pattern: See references/vesting-factory.md


3. Vesting Schedule Modeling

Calculate monthly unlock amounts for each category:

Monthly unlock (post-cliff) = (allocation_tokens / vesting_months)
TGE unlock = allocation_tokens × tge_pct
Remaining = allocation_tokens × (1 - tge_pct)
Linear_per_month = Remaining / vesting_months_after_cliff

Circulating supply projection formula:

CS(t) = Σ [tge_i + max(0, (t - cliff_i) / vest_i) × (1 - tge_pct_i)] × supply_i

Where t = months since TGE, i = each allocation bucket.

Model month-by-month in a table through month 48. Flag any month where unlock > 5% of circulating supply (selling pressure risk).


4. Uniswap Liquidity Math

v2 Pool Setup (constant product: x * y = k)

Initial price = ETH_amount / TOKEN_amount
k = ETH_amount × TOKEN_amount

Slippage for trade size S:
  price_impact = S / (ETH_reserve + S)
  tokens_out = TOKEN_reserve × S / (ETH_reserve + S)

Recommended: price impact < 1% for typical retail trade size
→ Pool depth = trade_size / 0.01

Example: Target $10k retail trade at <1% impact → Need $1M TVL in the pool

v3 Concentrated Liquidity

  • Define price range: [P_low, P_high] where P = token price in ETH/USDC
  • Recommended initial range: ±20–30% from listing price
  • Concentrated liquidity = ~10x capital efficiency vs v2 in-range
  • Use tickLower / tickUpper = log(price) / log(1.0001)

Listing price discovery:

FDV_target = total_supply × listing_price
Implied_MC = circulating_supply × listing_price
Liquidity_ratio = pool_TVL / MC  → target 5–15% for healthy launch

See references/uniswap-math.md for deeper tick/range calculations.


5. Investor Documentation Templates

Token Sale Summary (SAFT context)

## Token: [NAME] ($TICKER)
- Total Supply: X,000,000,000
- TGE Date: [DATE]
- Network: Ethereum / [L2]
- Contract: [0x...]

## This Round
- Round: Seed / Private / Strategic
- Raise: $X at $Y/token → $Z FDV
- Allocation: X% of supply
- Vesting: X mo cliff, X mo linear, X% TGE
- VestingWallet: [contract address or "to be deployed"]

## Token Release Schedule
[Month-by-month unlock table for this tranche]

## Use of Funds
[breakdown]

Vesting Proof for Investor

After deploying VestingWallet, provide:

  • Contract address
  • Etherscan link
  • vestedAmount(tokenAddress, block.timestamp) call
  • Next release milestone date

6. Common Pitfalls

  • Too much TGE unlock for team → dump signal; keep 0% until cliff
  • Liquidity < 5% of MC → vulnerable to price manipulation
  • No vesting cliff for advisors → cheap paper hands
  • FDV too high at listing → suppresses price for years
  • Missing release() automation → beneficiaries forget; use a keeper script
  • Single VestingWallet per team → use individual wallets per person for clean cap table

References

  • references/vesting-factory.md — Solidity VestingWallet factory + batch deployment
  • references/uniswap-math.md — Detailed Uniswap v2/v3 tick math and liquidity formulas
  • references/allocation-templates.md — Pre-built allocation tables for DeFi, GameFi, DAO, Infrastructure

NOT This Skill

  • Already-deployed contract audit → use solidity-audit-precheck
  • LP position monitoring / IL tracking → use defi-position-tracker
  • Safe/multisig treasury management → use multi-sig-treasury
  • General ERC20 contract upgrades → use upgrade-solidity-contracts

Version tags

latestvk97645xj2wjchkk5fkj5a7c4r9835rrp