Documentation

Smart Contract Docs

Complete reference for all TokenGeneratorApp smart contracts. Functions, parameters, and usage.

Overview

TokenGeneratorApp deploys ERC-20 compliant smart contracts on multiple EVM blockchains. All contracts are built on OpenZeppelin v5, the most audited and trusted smart contract library in the industry.

Contracts are deployed directly from your wallet. We never have access to your private keys, funds, or deployed contracts. Once deployed, the contract is immutable on the blockchain.

Every deployed contract is automatically verified on the respective block explorer (BscScan, Etherscan, BaseScan, etc.), so anyone can read the full source code.

OpenZeppelin v5

Battle-tested base

Auto-Verified

On all block explorers

Non-Custodial

You own your contract

Packages

Three contract tiers with progressive feature sets. All packages include ERC-20 compliance, ownership, verified source code, and the generator reference.

FeatureBasicStandardPremium
Custom name, symbol, supply
Custom decimals
Ownership (transfer/renounce)
Verified source code
Burn
Mint
Pause / Unpause
Blacklist
Buy / Sell tax
Anti-whale (max wallet)
Max transaction limit
Tax receiver
AMM pair management
Auto tax swap
Withdraw stuck funds

Basic Contract

A simple ERC-20 token with ownership. Ideal for community tokens, meme coins, and straightforward utility tokens.

name()public

Returns the token name

Returns: string

symbol()public

Returns the token symbol

Returns: string

decimals()public

Returns the number of decimals (default: 18)

Returns: uint8

totalSupply()public

Returns the total token supply

Returns: uint256

balanceOf(address)public

Returns balance of an address

Params: address account

Returns: uint256

transfer(address, uint256)anyone

Transfer tokens to another address

Params: address to, uint256 amount

Returns: bool

approve(address, uint256)anyone

Approve spender to use tokens

Params: address spender, uint256 amount

Returns: bool

allowance(address, address)public

Check approved spending amount

Params: address owner, address spender

Returns: uint256

transferFrom(address, address, uint256)anyone

Transfer tokens on behalf of owner

Params: address from, address to, uint256 amount

Returns: bool

owner()public

Returns the contract owner address

Returns: address

transferOwnership(address)owner

Transfer ownership to a new address

Params: address newOwner

renounceOwnership()owner

Permanently renounce ownership — irreversible

generator()public

Returns the generator URL

Returns: string

Constructor Parameters

(string name_, string symbol_, uint8 decimals_, uint256 totalSupply_, address owner_, address feeReceiver_)

Standard Contract

Everything in Basic plus burn, mint, pause, and blacklist. Best for projects needing supply management and emergency controls.

name()public

Returns the token name

Returns: string

symbol()public

Returns the token symbol

Returns: string

decimals()public

Returns the number of decimals (default: 18)

Returns: uint8

totalSupply()public

Returns the total token supply

Returns: uint256

balanceOf(address)public

Returns balance of an address

Params: address account

Returns: uint256

transfer(address, uint256)anyone

Transfer tokens to another address

Params: address to, uint256 amount

Returns: bool

approve(address, uint256)anyone

Approve spender to use tokens

Params: address spender, uint256 amount

Returns: bool

allowance(address, address)public

Check approved spending amount

Params: address owner, address spender

Returns: uint256

transferFrom(address, address, uint256)anyone

Transfer tokens on behalf of owner

Params: address from, address to, uint256 amount

Returns: bool

owner()public

Returns the contract owner address

Returns: address

transferOwnership(address)owner

Transfer ownership to a new address

Params: address newOwner

renounceOwnership()owner

Permanently renounce ownership — irreversible

generator()public

Returns the generator URL

Returns: string

burn(uint256)anyone

Burn tokens from your balance

Params: uint256 amount

burnFrom(address, uint256)anyone

Burn tokens from another address (requires approval)

Params: address account, uint256 amount

burnEnabled()public

Check if burn feature is enabled

Returns: bool

mint(address, uint256)owner

Mint new tokens to an address

Params: address to, uint256 amount

mintEnabled()public

Check if mint feature is enabled

Returns: bool

pause()owner

Pause all token transfers

unpause()owner

Resume token transfers

paused()public

Check if token is paused

Returns: bool

pauseEnabled()public

Check if pause feature is enabled

Returns: bool

blacklist(address)owner

Add address to blacklist

Params: address account

unblacklist(address)owner

Remove address from blacklist

Params: address account

isBlacklisted(address)public

Check if address is blacklisted

Params: address account

Returns: bool

blacklistEnabled()public

Check if blacklist feature is enabled

Returns: bool

Constructor Parameters

(string name_, string symbol_, uint8 decimals_, uint256 totalSupply_, address owner_, address feeReceiver_, bool burnEnabled_, bool mintEnabled_, bool pauseEnabled_, bool blacklistEnabled_)

Note: Features (burn, mint, pause, blacklist) are set at deployment and cannot be changed later. If you deploy with mintEnabled = false, the mint function will always revert.

Premium Contract

Full-featured token with taxes, anti-whale protection, and advanced DeFi features. Designed for serious projects with complex tokenomics.

name()public

Returns the token name

Returns: string

symbol()public

Returns the token symbol

Returns: string

decimals()public

Returns the number of decimals (default: 18)

Returns: uint8

totalSupply()public

Returns the total token supply

Returns: uint256

balanceOf(address)public

Returns balance of an address

Params: address account

Returns: uint256

transfer(address, uint256)anyone

Transfer tokens to another address

Params: address to, uint256 amount

Returns: bool

approve(address, uint256)anyone

Approve spender to use tokens

Params: address spender, uint256 amount

Returns: bool

allowance(address, address)public

Check approved spending amount

Params: address owner, address spender

Returns: uint256

transferFrom(address, address, uint256)anyone

Transfer tokens on behalf of owner

Params: address from, address to, uint256 amount

Returns: bool

owner()public

Returns the contract owner address

Returns: address

transferOwnership(address)owner

Transfer ownership to a new address

Params: address newOwner

renounceOwnership()owner

Permanently renounce ownership — irreversible

generator()public

Returns the generator URL

Returns: string

burn(uint256)anyone

Burn tokens from your balance

Params: uint256 amount

burnFrom(address, uint256)anyone

Burn tokens from another address (requires approval)

Params: address account, uint256 amount

burnEnabled()public

Check if burn feature is enabled

Returns: bool

mint(address, uint256)owner

Mint new tokens to an address

Params: address to, uint256 amount

mintEnabled()public

Check if mint feature is enabled

Returns: bool

pause()owner

Pause all token transfers

unpause()owner

Resume token transfers

paused()public

Check if token is paused

Returns: bool

pauseEnabled()public

Check if pause feature is enabled

Returns: bool

blacklist(address)owner

Add address to blacklist

Params: address account

unblacklist(address)owner

Remove address from blacklist

Params: address account

isBlacklisted(address)public

Check if address is blacklisted

Params: address account

Returns: bool

blacklistEnabled()public

Check if blacklist feature is enabled

Returns: bool

buyTax()public

Returns the current buy tax (basis points)

Returns: uint256

sellTax()public

Returns the current sell tax (basis points)

Returns: uint256

setTax(uint256, uint256)owner

Set buy and sell tax rates (max 25%)

Params: uint256 buyTax_, uint256 sellTax_

MAX_TAX()public

Returns maximum allowed tax (2500 = 25%)

Returns: uint256

taxReceiver()public

Returns the tax receiver address

Returns: address

setTaxReceiver(address)owner

Change the tax receiver

Params: address receiver_

isExemptFromTax(address)public

Check if address is tax exempt

Params: address account

Returns: bool

setExemptFromTax(address, bool)owner

Set tax exemption for an address

Params: address account, bool exempt

maxWalletAmount()public

Returns max wallet limit

Returns: uint256

maxTxAmount()public

Returns max transaction limit

Returns: uint256

setLimits(uint256, uint256)owner

Set max wallet and max tx amounts

Params: uint256 maxWallet_, uint256 maxTx_

removeLimits()owner

Permanently remove all limits

limitsEnabled()public

Check if limits are active

Returns: bool

setAutomatedMarketMaker(address, bool)owner

Mark an address as AMM pair

Params: address pair, bool isAMM

setExemptFromLimits(address, bool)owner

Exempt address from limits

Params: address account, bool exempt

withdrawStuckETH()owner

Withdraw stuck native currency

withdrawStuckTokens(address)owner

Withdraw stuck ERC20 tokens

Params: address token_

manualSwap()owner

Manually trigger tax token swap

Constructor Parameters

(string name_, string symbol_, uint8 decimals_, uint256 totalSupply_, address owner_, address feeReceiver_, bool[5] features_, uint256[4] params_)

features_[5]: [burnEnabled, mintEnabled, pauseEnabled, blacklistEnabled, autoLiquidityEnabled]

params_[4]: [buyTax (basis points), sellTax (basis points), maxWalletPercent (1-100), maxTxPercent (1-100)]

Tax system: Taxes are in basis points (1% = 100, 25% = 2500). Maximum tax is 25% per direction. Tax is only applied on buy/sell through AMM pairs, not on wallet-to-wallet transfers. Owner and tax-exempt addresses are not taxed.

Deployment Process

1

Connect Wallet

Connect MetaMask, WalletConnect, or any EVM-compatible wallet. We only read your public address.

2

Configure Token

Set name, symbol, supply, decimals, and select your package features. Everything happens in your browser.

3

Choose Network

Select the blockchain to deploy on. Ensure you have enough native currency for the deployment fee + gas.

4

Deploy

Click Deploy. Your wallet generates and signs the transaction. The smart contract bytecode goes directly to the blockchain.

5

Verified

Your token is automatically verified on the block explorer. Anyone can read the full source code.

🧪 Free Testnet Deployment

Test all features for free on testnet before deploying to mainnet. Use BSC Testnet with test BNB from a faucet. No fees, no risk.

Deploy on Testnet (Free)

Security

OpenZeppelin v5

All contracts inherit from the most audited smart contract library. Battle-tested across billions of dollars in value.

No hidden functions

Source code is verified on block explorers. No backdoors, no hidden mints, no proxy upgrades.

Non-custodial

We never access your wallet, private keys, or funds. Deployment happens directly from your wallet to the blockchain.

Immutable

Once deployed, contracts cannot be modified by anyone — not even us. The code is permanent on the blockchain.

No proxy patterns

Contracts are deployed as non-upgradeable. No one can change the contract logic after deployment.

Supported Chains

Deploy on any of the supported EVM blockchains. All chains use the same contract code and feature set.

BNB Chain

Chain ID:56Currency:BNBGas estimate:~$0.10Block time:~3sExplorer:bscscan.com

Ethereum

Chain ID:1Currency:ETHGas estimate:~$5-50Block time:~15sExplorer:etherscan.io

Base

Chain ID:8453Currency:ETHGas estimate:~$0.01Block time:~2sExplorer:basescan.org

Polygon

Chain ID:137Currency:POLGas estimate:~$0.01Block time:~2sExplorer:polygonscan.com

Avalanche

Chain ID:43114Currency:AVAXGas estimate:~$0.10Block time:~2sExplorer:snowtrace.io

Arbitrum

Chain ID:42161Currency:ETHGas estimate:~$0.05Block time:~1sExplorer:arbiscan.io

Optimism

Chain ID:10Currency:ETHGas estimate:~$0.05Block time:~2sExplorer:optimistic.etherscan.io

Testnets

BSC Testnet (Chain ID: 97) — Available for free testing. Get test BNB from the BNB Chain Faucet. All features work identically on testnet.

Ready to deploy?

Test for free on testnet, then deploy to mainnet in under a minute.