MoonSol Logo
Create Token

Guide

How to Create an ERC-20 Token (Without Writing Solidity)

An ERC-20 token is a smart contract you deploy on an EVM chain. You can write that contract in Solidity (Remix or Hardhat) or deploy a standard OpenZeppelin-based contract from a form. This guide covers all three paths, then walks the ERC-20 token generator so you can test on Sepolia and verify on the explorer.

By the MoonSol team · About the authors · Published 13 September 2026 ·

What an ERC-20 token actually is

ERC-20 is the fungible-token interface on Ethereum and compatible chains. Any wallet, DEX, or explorer that speaks ERC-20 can list a compliant contract the same way it lists USDC or WETH. The contract holds balances and exposes a small set of functions; the rest of the ecosystem does not care whether you wrote it by hand or deployed a generator template, as long as the interface matches.

Core ERC-20 functions wallets and DEXs call
FunctionWhat it does
transferSend tokens from the caller to another address
approveLet a spender (a router, a vault) pull tokens later
transferFromThe spender actually moves the approved amount
balanceOfRead an address's balance
totalSupplyRead circulating supply stored in the contract
decimalsHow wallets display amounts (18 is the Ethereum convention)

Three ways to create an ERC-20 token

Hardhat is cheaper in money if you already have the toolchain. A custom contract is required if you need logic MoonSol does not compile. The form does not replace an audit of novel Solidity.

PathTimeCost beyond gasWhen it is the right choice
RemixHours the first timeNoneYou want to read and compile the contract in a browser IDE
HardhatA day if you are newNoneYou already write Solidity, need tests, or need custom logic
MoonSol formMinutes0.001 ETH-equivalent + gasYou want a standard OpenZeppelin-based ERC-20 and will test first

Create ERC-20 on Base — or pick the network first

The contract cannot move later. How to create an ERC-20 token starts with the chain your buyers already use, not the name. As of September 2026, MoonSol deploys on the EVM networks listed on the generator. Gas is variable — treat the notes as character, not a quoted gwei.

NetworkTypical reason to pick it
Base, BNB Smart Chain, PolygonDefault for most launches — cheap gas, large retail wallets
Arbitrum, OptimismEthereum-adjacent users who already live on that L2
Ethereum mainnetCredibility and listings that insist on L1; gas is dollars, not cents
The rest of the listPick only if your buyers are already there

If you do not have an EVM reason, read how to create a Solana token instead. Sui is a third model — see the Sui token creator.

Mintable vs fixed supply ERC-20

Features are compiled in. None of mintable, pausable, or blacklist can be added after deploy. Token scanners will show whatever you left on, the next day.

Mintable

The owner can create new supply. Necessary for emissions; fatal to a “fixed supply” story if the key sits on a hot wallet. If you enable it, plan to transfer ownership to a multisig or renounce ownership when minting is done.

Pausable

The owner can halt transfers, including DEX swaps. A real emergency brake and a real centralisation flag.

Blacklist

The owner can block addresses from transferring. Used against bots; read by holders as discretionary control.

Do not enable mint, pause, or blacklist unless you have a written reason. Fixed supply plus no pause plus no blacklist is the default that scanners treat as ordinary.

Path A — OpenZeppelin ERC-20 in Remix or Hardhat

Official path, abbreviated. Cite OpenZeppelin Contracts. Do not paste a full contract from a blog onto mainnet without a test.

  1. Import the library

    Use OpenZeppelin’s ERC-20 implementation rather than writing balances by hand. That is the contract family reviewers already know.

  2. Mint in the constructor

    Pass name, symbol, and initial supply. Eighteen decimals is the convention unless you are mimicking a 6-decimal stable.

  3. Compile

    Remix or Hardhat will tell you if the interface does not match. Fix warnings before you think about a network.

  4. Deploy on Sepolia (or Base Sepolia)

    Use a faucet. Confirm the owner and the supply on the test explorer before you touch mainnet.

  5. Verify source

    Submit the compiler settings and source so the explorer shows readable code. Unverified contracts look like rugs.

Path B — ERC-20 token generator (no code)

This matches the live ERC-20 token generator, not a fantasy wizard. The connected wallet is owner and receives the supply; MoonSol holds no role. Platform fee is 0.001 ETH-equivalent plus gas; testnets have no platform fee. See MoonSol pricing. As of September 2026.

  1. Connect the wallet

    MetaMask, Rabby, or Coinbase Wallet. Switch to the chain you intend to use.

  2. Pick the network — testnet first

    Sepolia or Base Sepolia cost nothing in platform fees. Rehearse decimals and supply there.

  3. Name, symbol, 18 decimals, initial supply

    Supply is minted to the connected wallet. Decimals cannot be changed after deploy.

  4. Optional features — last chance

    Mintable, pausable, blacklist. If you do not need them, leave them off.

  5. Sign, wait, then verify

    Confirm the transaction. Then confirm source verification on the explorer where the API supports it (Etherscan, BscScan, Basescan, and peers).

Verify ERC-20 on Etherscan — then prove you own it

Unverified contracts look like rugs. Verification publishes the source so anyone can read mint and pause. The generator submits verification where the explorer API exists. After that, add the token in the wallet and confirm the supply on the explorer. Manage it later from the ERC-20 dashboard.

After you deploy

  • ERC-20 dashboard — ownership, minting, pause, blacklist if you enabled them.
  • ERC-20 multisender — allocations without a transfer per wallet.
  • Add liquidity / remove liquidity on the DEX the chain actually uses.
  • Transfer or renounce ownership when the launch is finished.
  • Do not treat this page as a bridge or CEX listing guide. Those are separate products.

Common mistakes

  1. Deploying on the wrong chain because the wallet was still on Ethereum.
  2. Using 6 decimals “because USDC” when every wallet around you expects 18.
  3. Leaving mintable on a hot wallet and advertising a fixed supply.
  4. Skipping testnet, then discovering the name typo on a live explorer.
  5. Treating MoonSol — or any generator — as an endorsement. It is not. See About.

Questions readers actually ask

How much does it cost to create an ERC-20 token?

On MoonSol the platform fee is 0.001 ETH-equivalent plus the chain’s gas. Testnets have no platform fee. Mainnet gas on Ethereum is often dollars; on Base or BSC it is usually cents. Exact gwei changes by the hour — as of September 2026, budget gas separately from the platform fee.

Do I need to know Solidity?

Not for a standard OpenZeppelin-based deploy from the form. You do need Solidity (or a developer) if you want custom tax logic, a novel mint curve, or anything the generator does not compile.

Which EVM chain should I use in 2026?

Base, BNB Smart Chain, or Polygon unless your buyers are already on another network. Ethereum mainnet if a listing or partner requires L1 and you can pay the gas.

Can I add minting later?

No. Mintable is compiled in. If you deployed fixed supply, you cannot add a mint function later without a new contract and a migration.

Does creating a token on MoonSol mean the token is audited?

No. Deployment is not endorsement. MoonSol does not audit or vet projects. Source verification is a reader check, not an audit.

Create the token

Ready to deploy an ERC-20? Use the ERC-20 token generator. Fees are on pricing. To compare all three chains — or if Ethereum mainnet gas is the wrong trade — start with the Solana guide instead.

Related pages