MOONSALE
a product of IGH
Guides

How to Create a BEP20 Token

What BEP-20 actually is

BEP-20 is the BNB Smart Chain's token standard. It is functionally identical to Ethereum's ERC-20: same function signatures (transfer, balanceOf, approve, transferFrom), same event interfaces, same allowance pattern. The difference is the network the contract runs on. ERC-20 lives on Ethereum, BEP-20 lives on BNB Smart Chain. Code that works as ERC-20 typically works on BSC with no changes beyond the deploy network.

That overlap is why the token-creation experience on BSC is mature. Tooling, factories, audits, and trading venues that exist for ERC-20 also exist for BEP-20. The difference for founders is cost: deploying a BEP-20 costs cents in BNB gas. Deploying the same code on Ethereum costs $50 to $500 depending on gas. Most new tokens in 2026 ship BEP-20 first, then bridge to other chains once product-market fit is proven.

Two paths to deploy

There are exactly two paths to create a BEP-20 token. Pick the one that fits your skills and risk tolerance:

  • Path A: write the Solidity contract yourself, compile, deploy via wallet
  • Path B: use an audited token factory like Create Token on MoonSale

Path A is what people imagine when they think "create a token." Path B is what 95 percent of real launches actually do, because the audited factory removes most ways to ship a broken or malicious contract by accident.

Path A: write the contract yourself

If you want to learn how the standard works, this is the path.

Step 1: open Remix or set up Hardhat

Remix IDE is the fastest way to start. It runs in the browser, includes Solidity compilation, and connects to MetaMask for deploy. Hardhat is the production setup if you plan to write tests and ship on a real schedule.

Step 2: implement the BEP-20 interface

The minimum viable BEP-20 is about 80 lines of Solidity. Use OpenZeppelin's ERC20 base contract (BEP-20 inherits the same interface) and override name, symbol, decimals, and totalSupply in the constructor:

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

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor() ERC20("My Token", "MTK") {
        _mint(msg.sender, 1_000_000_000 * 10**18);
    }
}

This is a complete, working BEP-20. It mints 1 billion tokens to the deployer, supports transfers, and matches the standard. No buy or sell tax, no anti-whale, no burn, no mint after deploy.

Step 3: compile and deploy

Compile in Remix (Solidity 0.8.20+ recommended). Switch MetaMask to BNB Smart Chain. Click Deploy. Confirm the transaction. The contract is live in 5 to 10 seconds.

Step 4: verify on BscScan

Visit BscScan, find your contract, click "Verify and Publish." Paste the source. This step is free, takes 5 minutes, and is non-negotiable. An unverified contract reads as a honeypot to any buyer who checks (covered in How to Spot a Honeypot in 60 Seconds).

Cost and time for Path A

  • Time: 2 to 8 hours depending on your Solidity experience
  • Gas cost: about $2 to $5 in BNB for deploy
  • Risk: high if you wrote any custom logic without an audit

Path B: use an audited token factory

This is the production path. The MoonSale token factory deploys a pre-audited contract from a verified template. You configure parameters in a form, click Deploy, and the contract is live with source verified automatically on BscScan.

Step 1: connect wallet

Open moonsale.app/create-token and connect MetaMask, Trust Wallet, or any BSC-compatible wallet. Switch to BNB Smart Chain mainnet (or testnet for a free test deploy).

Step 2: pick a token type

The factory ships several audited templates:

  • Standard BEP-20: basic transferable token, no taxes, no extras. Most memes and utility tokens use this.
  • Liquidity Generator: every transfer takes a small fee that auto-adds to LP. Useful for self-funding liquidity.
  • Burnable: includes a burn function so holders can remove their own tokens from supply.
  • Reflection: every transfer redistributes a small fee to all holders proportionally.

Standard BEP-20 covers about 80 percent of use cases.

Step 3: configure parameters

Fill the form:

  • Name: full token name (My Cool Token)
  • Symbol: 3 to 5 letter ticker (MCT)
  • Decimals: leave at 18 unless you have a specific reason. Anything else breaks compatibility with most wallets and DEXes.
  • Total supply: typically 1 billion to 1 trillion. Higher numbers feel "memey," lower numbers feel "serious."
  • Buy and sell tax: 0 percent for maximum trust, up to 5 percent if you have a marketing wallet to fund. Anything above 10 percent reads as suspicious.
  • Anti-whale max wallet: optional, typically 1 to 2 percent of supply

Step 4: deploy

Click Deploy. The wallet popup shows the gas estimate (around 0.05 to 0.1 BNB). Confirm. The contract is live in 5 to 10 seconds.

The factory automatically verifies your contract source on BscScan, so you skip the manual verification step. The audit tag and security score appear on the project card if you continue to a presale or fair launch.

Cost and time for Path B

  • Time: 2 to 5 minutes
  • Gas cost: about 0.05 to 0.1 BNB total
  • Risk: low. The template is audited (96/100 by ICOGemHunters) and contains no honeypot patterns.

Configurations every BEP-20 founder needs to think through

These four numbers carry every signal a buyer will read:

  1. Total supply sets the visual price. 1 trillion supply means each token is fractions of a cent. 1 million supply means each token is dollars. Pick what matches your narrative.
  2. Decimals is almost always 18. Wallets, DEXes, and bridges assume 18. Set to 9 only if you specifically want lower precision (older Solana-style tokens).
  3. Buy/sell tax is a trust dial. 0/0 is the cleanest signal. 1/1 is acceptable if you fund a marketing wallet. 5/5 is the upper bound for buyer trust. Above that, expect to lose buyers.
  4. Anti-whale max wallet is optional but useful for fair launches where you want to prevent any single wallet from buying 20 percent of supply in block one.

Plan these in the tokenomics creator before you deploy, not after.

What you should NEVER include in a BEP-20

These features turn a normal BEP-20 into something buyers and scanners will flag as a honeypot or rug risk:

  • Owner-modifiable tax without a time-lock. Owner can ramp tax to 99 percent at any moment.
  • setBlacklist or addToBlacklist function. Owner can prevent specific wallets from selling.
  • pause or freezing functions. Owner can stop all trading.
  • Mintable supply after deploy. Owner can dilute holders at will.
  • Upgradeable proxy pattern. Logic can be swapped to a malicious version after audit.

Every audited template on the MoonSale factory excludes ALL of these by construction. If you write your own contract via Path A and include any of them, expect the token scanner and most third-party scanners to flag your token as suspicious. Buyers will close the tab.

Adding the new token to your wallet

After deploy, the token does not appear automatically in MetaMask. To add it:

  1. Open MetaMask, switch to BNB Smart Chain
  2. Click "Import tokens" at the bottom of the assets list
  3. Paste the contract address
  4. Symbol and decimals auto-fill from the contract
  5. Click Add

Your token now shows up in the wallet. Anyone you share the contract address with can do the same import on their wallet.

Creating liquidity so the token is tradeable

A deployed BEP-20 with no liquidity is just an entry on BscScan. To make it tradeable, you need to pair it with BNB (or another token) in a DEX pool.

Two paths again:

  • Manual: open PancakeSwap, click "Add Liquidity," paste your token address, choose how much BNB to pair, confirm. Takes 5 minutes. Costs about 0.01 BNB in gas plus your seed liquidity.
  • Automatic via launch event: use Create Presale or Create Fair Launch. The contract automatically creates the PancakeSwap pool with the configured LP percentage AND locks the LP for the duration you set, all in one transaction.

Path 2 is what every serious launch uses, because manual liquidity that is not locked is the single biggest red flag a buyer can spot. Use the lock contract directly if you have already paired liquidity manually and want to retroactively lock it.

Common BEP-20 deploy mistakes

The four most common ways founders break their own BEP-20:

  1. Decimals not 18. Some wallets display the balance incorrectly, some bridges refuse to wrap the token, some indexers ignore it.
  2. Total supply that does not match the marketing. Posting "1 billion supply" in the Telegram and deploying 100 billion is a credibility hit you cannot undo.
  3. Tax that the owner can change. Even if you never plan to abuse it, the function existing is enough for buyers to flag the token.
  4. No verified source. See Step 4 of Path A. Free fix, mandatory.

We covered the broader set of launch mistakes in Common Mistakes New Token Creators Make.

Ready to deploy a BEP-20?

Open Create Token and pick the template that matches your project. The full fee breakdown is on the fees page so the cost is predictable before you start.

For a complete launch flow that pairs the token with locked liquidity in one transaction, jump straight to Create Presale or Create Fair Launch. For the full launch playbook including community building and post-launch operations, see the Step-by-Step Guide to Launching a Meme Coin and How to Launch a Token Presale on BNB Chain for Under $100.

A BEP-20 takes 5 minutes to deploy. The work that determines whether it survives is everything you do before and after that 5 minutes.

More from Guides

How Much Does It Cost to Launch a Crypto Token?

3 May 2026

Step-by-Step Guide to Launching a Meme Coin

3 May 2026

How to Launch a Token Presale on BNB Chain for Under $100 (2026 Guide)

2 May 2026