Web3 Development · 5 min read ·

Token Launch Checklist: ERC-20 to Ethereum Mainnet

A practical, end-to-end ERC-20 token launch checklist covering design, audits, deployment, liquidity, and post-launch ops on Ethereum mainnet.

Launching an ERC-20 token isn’t “deploy contract, tweet, done.” Mainnet is adversarial, integrations are picky, and mistakes become permanent. Below is a pragmatic checklist we use at ChainMagic Studio to take a token from idea to a production-grade launch.

1) Define the token model (before you write Solidity)

Start with decisions that cannot be patched later without breaking trust.

  • Token purpose: governance, utility, payments, staking, revenue share (be careful), or points-to-token migration.
  • Supply plan: fixed vs. mintable. If mintable, define a credible mint policy (caps, timelocks, roles).
  • Allocations & vesting: team, investors, treasury, ecosystem. Vesting should be on-chain (or provably enforced).
  • Transfer rules: fully transferable, trading start time, allowlists/denylists. If you add restrictions, expect exchange and DeFi friction.
  • Decimals & units: most use 18. Non-18 can break some integrations.

Opinionated take: if you don’t need minting, don’t ship minting. Immutable fixed-supply tokens are easier to reason about, easier to audit, and easier to integrate.

2) Choose a battle-tested implementation (avoid novelty)

Use OpenZeppelin contracts unless you have a strong reason not to.

Baseline choices:

  • ERC20 + ERC20Permit (gasless approvals via EIP-2612)
  • Ownable only if ownership will be renounced or handed to a timelock/multisig
  • AccessControl if you need multiple roles (minting, pausing, upgrades)

If you’re considering:

  • Upgradeable proxies: only if you truly need upgrades (e.g., complex logic, long-lived protocol token). They add risk and operational burden.
  • Pausable: good for early incident response, but it’s a centralization lever. Document when/why it can be used.

3) Lock down admin and key management

Most token “hacks” are admin/key failures.

Checklist:

  • Multisig (Safe): set up a 2/3 or 3/5 Safe for admin actions.
  • Timelock: for sensitive actions (minting, parameter changes). Even 12–48 hours reduces governance drama and improves trust.
  • Role minimization: only grant roles that are required; avoid “god mode.”
  • Key ceremony: hardware wallets, separated signers, written runbooks, backup procedures.

Practical standard: deploy with a deployer EOA, immediately transfer ownership/roles to Safe + timelock, then revoke deployer privileges.

4) Engineer token distribution and vesting on-chain

Avoid manual token drips. Automate.

Common patterns:

  • Vesting wallets: OpenZeppelin VestingWallet for team allocations.
  • Merkle airdrops/claims: publish a Merkle root, let users claim. This reduces gas and ops load.
  • Treasury controls: treasury allocation held by a Safe, not an EOA.

Do a dry run on a fork to validate:

  • exact amounts minted/transferred
  • vesting cliff and duration correctness
  • claim logic and edge cases (double-claims, rounding)

5) Test like mainnet is trying to hurt you

Unit tests are table stakes. Add adversarial testing.

  • Fuzzing/property tests: invariants like “totalSupply never exceeds cap,” “balances conserve,” “no one can mint without role.”
  • Fork testing: simulate Ethereum mainnet state and run the exact deployment and distribution script.
  • Gas profiling: ensure transfers and claims aren’t prohibitively expensive.
  • Static analysis: Slither, Mythril, Foundry’s tools.

If you’re building hooks (fees, rebasing, reflection), budget extra time—these are integration landmines for exchanges and DeFi.

6) Get an audit—and make it count

Audits are not magic. You want:

  • a clear threat model
  • coverage of privileged roles and deployment scripts
  • review of tokenomics-critical logic (mint, burn, pause, restrictions)

Audit checklist:

  • freeze features before audit (no “just one more change”)
  • produce a concise spec (what the contract should do)
  • remediate findings and request a re-review
  • publish the report and remediation notes

If budget is tight, do a phased approach: internal review + automated tooling + smaller audit first, then a full audit before major liquidity.

7) Prepare a production deployment plan

Deployment is an engineering project.

  • Tooling: Foundry or Hardhat scripts with deterministic outputs.
  • Network config: correct chain IDs, RPC endpoints, Etherscan API.
  • Nonce and signer control: avoid “oops” deployments from the wrong account.
  • Address book: track all deployed addresses, roles, and config in version control.

Pro tip: do at least one full dress rehearsal on Sepolia and one on a mainnet fork with your final scripts.

8) Deploy to mainnet and verify everything

Mainnet checklist:

  • deploy token contract
  • set roles/ownership to Safe/timelock
  • if mintable: mint initial allocations as per plan
  • set any trading start parameters (if applicable)
  • verify source code on Etherscan (and publish contract metadata)
  • tag the release commit and archive deployment artifacts

Verification matters because:

  • integrators and explorers rely on it
  • auditors and community can review it
  • it reduces “scam token” suspicion

9) Liquidity, pricing, and launch mechanics

How trading starts is where many launches get messy.

Decide upfront:

  • DEX venue: Uniswap v3/v4 on Ethereum mainnet is common, but consider L2s if your community is cost-sensitive.
  • Initial liquidity source: treasury, market maker, or liquidity bootstrapping.
  • Anti-MEV approach: fair launch mechanics, consider measures like delayed trading, or using reputable launch platforms.

Concrete example: if you seed a Uniswap v3 pool, choose your fee tier and initial price carefully—bad initial ranges lead to immediate price instability and toxic flow.

Also prepare:

  • token logo and metadata for common UIs
  • public docs for contract address, decimals, and supply

10) Exchange and wallet readiness (even if you’re DEX-first)

Integrations can take weeks.

  • CEX listing packet (optional): contract, audit, tokenomics, admin controls, legal contacts.
  • Wallet trackers: submit to Etherscan token info, CoinGecko/CMC (they have review processes).
  • Block explorers: ensure correct name/symbol, verify contract, publish ABI.

If your token has transfer restrictions or fees, many centralized venues will balk. Simpler ERC-20s get adopted faster.

11) Monitoring, incident response, and post-launch ops

Post-launch is where professionalism shows.

  • On-chain monitoring: alerts for role changes, large transfers, mint events, liquidity removals.
  • Runbooks: how to pause (if you can), how to communicate, who signs transactions.
  • Treasury reporting: periodic, transparent updates.
  • Community comms: publish a “known addresses” list (treasury, vesting, LP) to reduce misinformation.

If you retain admin controls, be explicit about them. Ambiguity damages trust more than centralization does.

Conclusion: a mainnet token launch is a system launch

An ERC-20 token is easy to deploy and hard to launch well. The winning approach is boring engineering: minimize privileged functionality, rely on proven libraries, rehearse deployments, document everything, and treat liquidity and integrations as first-class deliverables.

If you want a sanity check, the simplest heuristic is this: could a skeptical integrator understand your token’s rules and risks in 10 minutes by reading your docs and Etherscan page? If not, you’re not ready for mainnet.