AUTUMN CAMPAIGN / UP TO 63% OFF00D00H
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. The templates use OpenZeppelin v5 components. This does not mean the complete contracts or your configuration have received an independent audit.

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.

The app attempts explorer source verification after deployment. Check the explorer status separately; verification can be pending or fail and is not a security audit.

Review the current contract templates

These files are published from the same sources used by the deployment build. For older deployments, inspect that contract's actual source and settings.

Basic: Fixed initial supply, name, symbol, decimals and initial owner. ERC-20 transfers and approvals; Custom name, symbol, supply and decimals; Initial owner receives the initial supply.

Standard: Optional supply, ownership, address access and transfer controls. Burn; Mint; Pause; Blacklist; Whitelist; Max Wallet; Max Transaction; Capped Supply (requires Mint); Ownership Transfer; Renounce Ownership.

Premium: Standard options plus taxes, trading control and launch protection. Transaction Taxes: buy, sell and wallet-transfer rates; Tax receiver, exemptions and burn portion; Trading Control; Launch Protection / Anti-Bot: a one-time block window, not a bot-prevention guarantee.

The initial owner receives the supply and applicable permissions. Standard and Premium ownership transfer and renunciation require the corresponding feature. Renunciation permanently removes owner-only access, does not remove existing restrictions, and does not guarantee decentralization or safety. Owner functions are called from the owner wallet, for example through an explorer Write Contract interface. The creation page is not a contract management dashboard.

OpenZeppelin v5

Battle-tested base

Verification workflow

Check explorer status

Non-Custodial

You own your contract

Packages

Three contract tiers with optional capabilities. Features must be enabled during configuration; selecting a package does not enable every control. All include the explorer verification workflow.

FeatureBasicStandardPremium
Custom name, symbol, supply
Custom decimals
Ownership actions (Standard/Premium require enablement)
Explorer verification workflow
Burn—
Mint—
Capped Supply (requires Mint)—
Pause / Unpause—
Blacklist—
Whitelist—
Max wallet limit—
Max transaction limit—
Buy / Sell tax——
Wallet transfer tax——
Real supply burn tax——
Tax receiver——
Initial tax exemptions——
Trading control——
Launch Protection / Anti-Bot——
AMM pair management——
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, blacklist, whitelist, and independent max wallet and transaction 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

maximumSupply()public

Permanent maximum total supply when Capped Supply is enabled

Returns: uint256

cappedSupplyEnabled()public

Whether minting has a permanent supply cap

Returns: bool

ownershipTransferEnabled()public

Whether the owner may transfer ownership

Returns: bool

renounceOwnershipEnabled()public

Whether permanent ownership renunciation is available

Returns: bool

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

setWhitelist(address, bool)owner

Approve or remove an address from the whitelist

Params: address account, bool allowed

setWhitelistEnabled(bool)owner

Temporarily enable or disable whitelist enforcement

Params: bool enabled

isWhitelisted(address)public

Check whether an address is approved

Params: address account

Returns: bool

setMaxWallet(uint256, bool)owner

Update or disable the recipient balance limit

Params: uint256 amount, bool enabled

setMaxTransaction(uint256, bool)owner

Update or disable the normal transfer limit

Params: uint256 amount, bool enabled

setExemptFromLimits(address, bool)owner

Set a system address limit exemption

Params: address account, bool exempt

Constructor Parameters

(string name_, string symbol_, uint8 decimals_, uint256 totalSupply_, address owner_, address feeReceiver_, bool[7] features_, uint256[2] limitBps_, address[] initialWhitelist_)

Note: Feature capabilities are fixed at deployment. Whitelist and limit enforcement can be managed later only when their capabilities were included.

Premium Contract

Everything in Standard plus separate buy, sell and transfer taxes, real burn distribution, receiver exemptions, and trading control.

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

maximumSupply()public

Permanent maximum total supply when Capped Supply is enabled

Returns: uint256

cappedSupplyEnabled()public

Whether minting has a permanent supply cap

Returns: bool

ownershipTransferEnabled()public

Whether the owner may transfer ownership

Returns: bool

renounceOwnershipEnabled()public

Whether permanent ownership renunciation is available

Returns: bool

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

setWhitelist(address, bool)owner

Approve or remove an address from the whitelist

Params: address account, bool allowed

setWhitelistEnabled(bool)owner

Temporarily enable or disable whitelist enforcement

Params: bool enabled

isWhitelisted(address)public

Check whether an address is approved

Params: address account

Returns: bool

setMaxWallet(uint256, bool)owner

Update or disable the recipient balance limit

Params: uint256 amount, bool enabled

setMaxTransaction(uint256, bool)owner

Update or disable the normal transfer limit

Params: uint256 amount, bool enabled

setExemptFromLimits(address, bool)owner

Set a system address limit exemption

Params: address account, bool exempt

startLaunch()owner

Start the one-time launch protection block window and open trading

buyTax()public

Returns the current buy tax (basis points)

Returns: uint256

sellTax()public

Returns the current sell tax (basis points)

Returns: uint256

transferTax()public

Returns the wallet transfer tax (basis points)

Returns: uint256

burnTax()public

Returns the real burn portion included in active tax rates

Returns: uint256

setTax(uint256, uint256, uint256, uint256)owner

Set buy, sell, transfer, and burn tax rates (max 25%)

Params: uint256 buyTax_, uint256 sellTax_, uint256 transferTax_, uint256 burnTax_

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

addTaxExempt(address)owner

Add an address to tax exemptions

Params: address account

removeTaxExempt(address)owner

Remove an address from tax exemptions

Params: address account

setTradingEnabled(bool)owner

Open or lock transfers; launch-protected tokens cannot relock after their one-time launch starts

Params: bool enabled

setExemptFromTrading(address, bool)owner

Manage setup-address trading exemptions

Params: address account, bool exempt

setAutomatedMarketMaker(address, bool)owner

Mark an address as AMM pair

Params: address pair, bool isAMM

withdrawStuckETH()owner

Withdraw stuck native currency

withdrawStuckTokens(address)owner

Withdraw stuck ERC20 tokens

Params: address token_

manualSwap()owner

Recover this token if it was sent directly to the contract address

Constructor Parameters

(string name_, string symbol_, uint8 decimals_, uint256 totalSupply_, address owner_, address feeReceiver_, bool[8] features_, uint256[6] params_, address taxReceiver_, bool tradingInitiallyEnabled_, address[] initialWhitelist_, address[] initialTaxExempt_)

features_[8]: [burn, mint, pause, blacklist, whitelist, maxWallet, maxTransaction, tradingControl]

params_[6]: [buyTax, sellTax, transferTax, burnTax, maxWallet, maxTransaction] in basis points

Tax system: Taxes use basis points (1% = 100) with a 25% hard cap. The burn portion is included in each active route rate and reduces total supply; the remainder is sent directly to the configured receiver.

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

The app attempts explorer source verification after deployment. Check the explorer status separately; verification can be pending or fail and is not a security audit.

🧪 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

OpenZeppelin components are used; assess the complete contract and configuration separately.

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:Wallet estimateBlock time:~3sExplorer:bscscan.com

Ethereum

Chain ID:1Currency:ETHGas estimate:Wallet estimateBlock time:~15sExplorer:etherscan.io

Base

Chain ID:8453Currency:ETHGas estimate:Wallet estimateBlock time:~2sExplorer:basescan.org

Polygon

Chain ID:137Currency:POLGas estimate:Wallet estimateBlock time:~2sExplorer:polygonscan.com

Avalanche

Chain ID:43114Currency:AVAXGas estimate:Wallet estimateBlock time:~2sExplorer:snowtrace.io

Arbitrum

Chain ID:42161Currency:ETHGas estimate:Wallet estimateBlock time:~1sExplorer:arbiscan.io

Optimism

Chain ID:10Currency:ETHGas estimate:Wallet estimateBlock 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.