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.
| Feature | Basic | Standard | Premium |
|---|---|---|---|
| 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()publicReturns the token name
Returns: string
symbol()publicReturns the token symbol
Returns: string
decimals()publicReturns the number of decimals (default: 18)
Returns: uint8
totalSupply()publicReturns the total token supply
Returns: uint256
balanceOf(address)publicReturns balance of an address
Params: address account
Returns: uint256
transfer(address, uint256)anyoneTransfer tokens to another address
Params: address to, uint256 amount
Returns: bool
approve(address, uint256)anyoneApprove spender to use tokens
Params: address spender, uint256 amount
Returns: bool
allowance(address, address)publicCheck approved spending amount
Params: address owner, address spender
Returns: uint256
transferFrom(address, address, uint256)anyoneTransfer tokens on behalf of owner
Params: address from, address to, uint256 amount
Returns: bool
owner()publicReturns the contract owner address
Returns: address
transferOwnership(address)ownerTransfer ownership to a new address
Params: address newOwner
renounceOwnership()ownerPermanently renounce ownership — irreversible
generator()publicReturns 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()publicReturns the token name
Returns: string
symbol()publicReturns the token symbol
Returns: string
decimals()publicReturns the number of decimals (default: 18)
Returns: uint8
totalSupply()publicReturns the total token supply
Returns: uint256
balanceOf(address)publicReturns balance of an address
Params: address account
Returns: uint256
transfer(address, uint256)anyoneTransfer tokens to another address
Params: address to, uint256 amount
Returns: bool
approve(address, uint256)anyoneApprove spender to use tokens
Params: address spender, uint256 amount
Returns: bool
allowance(address, address)publicCheck approved spending amount
Params: address owner, address spender
Returns: uint256
transferFrom(address, address, uint256)anyoneTransfer tokens on behalf of owner
Params: address from, address to, uint256 amount
Returns: bool
owner()publicReturns the contract owner address
Returns: address
transferOwnership(address)ownerTransfer ownership to a new address
Params: address newOwner
renounceOwnership()ownerPermanently renounce ownership — irreversible
generator()publicReturns the generator URL
Returns: string
maximumSupply()publicPermanent maximum total supply when Capped Supply is enabled
Returns: uint256
cappedSupplyEnabled()publicWhether minting has a permanent supply cap
Returns: bool
ownershipTransferEnabled()publicWhether the owner may transfer ownership
Returns: bool
renounceOwnershipEnabled()publicWhether permanent ownership renunciation is available
Returns: bool
burn(uint256)anyoneBurn tokens from your balance
Params: uint256 amount
burnFrom(address, uint256)anyoneBurn tokens from another address (requires approval)
Params: address account, uint256 amount
burnEnabled()publicCheck if burn feature is enabled
Returns: bool
mint(address, uint256)ownerMint new tokens to an address
Params: address to, uint256 amount
mintEnabled()publicCheck if mint feature is enabled
Returns: bool
pause()ownerPause all token transfers
unpause()ownerResume token transfers
paused()publicCheck if token is paused
Returns: bool
pauseEnabled()publicCheck if pause feature is enabled
Returns: bool
blacklist(address)ownerAdd address to blacklist
Params: address account
unblacklist(address)ownerRemove address from blacklist
Params: address account
isBlacklisted(address)publicCheck if address is blacklisted
Params: address account
Returns: bool
blacklistEnabled()publicCheck if blacklist feature is enabled
Returns: bool
setWhitelist(address, bool)ownerApprove or remove an address from the whitelist
Params: address account, bool allowed
setWhitelistEnabled(bool)ownerTemporarily enable or disable whitelist enforcement
Params: bool enabled
isWhitelisted(address)publicCheck whether an address is approved
Params: address account
Returns: bool
setMaxWallet(uint256, bool)ownerUpdate or disable the recipient balance limit
Params: uint256 amount, bool enabled
setMaxTransaction(uint256, bool)ownerUpdate or disable the normal transfer limit
Params: uint256 amount, bool enabled
setExemptFromLimits(address, bool)ownerSet 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.
Deployment Process
Connect Wallet
Connect MetaMask, WalletConnect, or any EVM-compatible wallet. We only read your public address.
Configure Token
Set name, symbol, supply, decimals, and select your package features. Everything happens in your browser.
Choose Network
Select the blockchain to deploy on. Ensure you have enough native currency for the deployment fee + gas.
Deploy
Click Deploy. Your wallet generates and signs the transaction. The smart contract bytecode goes directly to the blockchain.
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
Ethereum
Base
Polygon
Avalanche
Arbitrum
Optimism
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.