BEP-20 is the interface standard for fungible tokens on BNB Smart Chain (BSC). It is a set of functions and events that a token contract must implement so that wallets, explorers and applications can read balances and move tokens in the same way. BEP-20 is not a coin or a separate blockchain. BNB Chain's specification says it was written "by deriving the ERC20 protocol of Ethereum", so a BEP-20 token behaves almost exactly like an ERC-20 token. It runs on a different chain and pays its fees in BNB.

In practice, when a withdrawal screen offers "BEP-20" as a network, it means the token will be sent as a BSC contract token to a BSC address. You need BNB in that wallet to move it again.
What the BEP-20 standard requires
The specification, BEP20 in the BNB Chain BEPs repository, is marked "already implemented". It defines these methods:
| Method | What it does |
|---|---|
totalSupply() | Returns the total token supply. This is the supply that exists, not a hard cap. |
balanceOf(address) | Returns the balance of an address |
transfer(to, value) | Sends tokens from the caller to another address |
approve(spender, value) | Lets another address, usually a smart contract, spend up to value of your tokens |
allowance(owner, spender) | Returns how much a spender may still take |
transferFrom(from, to, value) | Moves tokens that were previously approved |
symbol() | Ticker. Required in BEP-20. |
decimals() | Number of decimal places. Required in BEP-20. |
name() | Token name. Optional. |
Every compliant contract must also emit two events: Transfer on every transfer, including zero-value ones, and Approval on every successful approve call.
Where BEP-20 differs from ERC-20 on paper
The code-level difference is small but real. In EIP-20, the Ethereum standard created on 19 November 2015, name, symbol and decimals are all optional. BEP-20 makes symbol and decimals mandatory and leaves name optional. The BEP-20 text also says that for tokens moving between BNB Beacon Chain and BSC, totalSupply should report "the total of circulation across 2 blockchains". That clause now matters only historically, because Beacon Chain has been shut down (see below).
decimals affects display only. OpenZeppelin's widely used ERC-20 implementation defaults to 18, and its documentation says the value is "only used for display purposes". Balances are stored as whole integers, and wallets shift the decimal point when they show them.
BEP-20 vs ERC-20: what changes for users
| BEP-20 | ERC-20 | |
|---|---|---|
| Chain | BNB Smart Chain | Ethereum |
| Fee (gas) token | BNB | ETH |
| Block interval | About 0.45 s (since 14 January 2026) | 12-second slots |
| Address format | 0x... | 0x... |
| Smart contract environment | EVM-compatible | EVM |
According to BNB Chain's documentation, BSC's block time fell from 3 seconds to about 0.45 seconds over the Lorentz, Maxwell and Fermi hard forks. Fermi activated on mainnet on 14 January 2026 at 02:30 UTC and cut the interval from 0.75 to 0.45 seconds. With BSC's Fast Finality, the chain finalises within two blocks in most cases. The same documentation gives roughly 1 second in one place and about 1.125 seconds in another.
On fees, BNB Chain's documentation says that since all validators and builders adopted a 0.05 Gwei standard gas price (announced in BNB Chain's weekly report for 25 September to 1 October 2025), "typical transaction fees on BSC are around $0.005 or less". The dollar figure moves with the BNB price and network demand. Ethereum fees vary too widely for a single comparison figure to mean much.
BEP-20 and ERC-20 tokens cannot move to each other's chain directly. Moving value between the two requires a bridge or a custodian that holds the asset on both chains.
Same ticker, different issuer
A token's ticker says nothing about who stands behind it on a given chain. BUSD shows how much this matters. Paxos issued BUSD under New York Department of Financial Services (NYDFS) authorisation on Ethereum only. On 13 February 2023 NYDFS ordered Paxos to stop minting it, and Paxos stopped issuing new BUSD from 21 February 2023. In a notice dated 11 April 2023, NYDFS stated that it had not authorised the pegged version of BUSD circulating on other blockchains, BSC included, and that this pegged token "is not issued by Paxos". Before you hold a stablecoin on BSC, check who issues that specific contract and whether that issuer redeems it.
BEP-20 vs BEP-2: the legacy standard is gone
BEP-2 was the token format of BNB Beacon Chain, a separate chain without general smart contracts. Beacon Chain addresses began with bnb1, and exchange deposits there often needed a memo. BSC and BEP-20 brought EVM smart contracts to the ecosystem.
Beacon Chain no longer runs. BNB Chain's sunset plan, published 16 October 2024, set the halt for 19 November 2024 at 06:00 UTC (block 384,544,850). It warned that assets without cross-chain functionality "will be permanently lost". From 1 July 2026, BNB Chain's hosted token recovery tool for BEP-2 and BEP-8 balances "has been discontinued". Holders who still need to move such tokens must run the open-source recovery tool locally from BNB Chain's official GitHub repository. BNB Chain warns against third-party mirrors and says it "will never ask you to share your private key or seed phrase".
If a platform still offers a "BEP-2" option for a withdrawal today, stop and check with the platform before you send anything.
Why you always need BNB to move a BEP-20 token
BSC uses Proof of Staked Authority (PoSA). BNB Chain's documentation describes an active set of 45 validators, 21 "Cabinet" and 24 "Candidate", chosen by stake. They take turns proposing and voting on blocks. Every transaction, including a USDT or other BEP-20 transfer, pays gas in BNB, the chain's native token. The fee is never taken from the token you are sending.
The usual failure looks like this: a wallet holds hundreds of dollars in a BEP-20 stablecoin and zero BNB, so every send fails. Keep a small BNB balance in any wallet that holds BEP-20 tokens.
Will your BEP-20 transfer go through, and where did it go?
Answer a few questions about a BEP-20 token you are about to send, or have already sent, to see the next step the article recommends.
Are you about to send a BEP-20 token, or did you already send one that has not shown up?
- About to send → next question
- Already sent, and it has not shown up → next question
Does the sending wallet hold some BNB on BNB Smart Chain?
- No, only the token I want to send → Get BNB for gas first
- Yes → next question
Which network does the send or withdrawal screen offer?
- BEP-20 / BNB Smart Chain → next question
- BEP-2 → Stop and check with the platform
How did you add the token to your wallet?
- By name or ticker → Re-add the token by contract address
- By contract address from the issuer's own site or docs, checked on a BSC explorer → Send a small test amount first
What kind of address did the token go to?
- A 0x address whose private key I hold → Switch the wallet to BSC
- A custodial deposit address that does not support BSC → Contact the platform
Every transaction on BSC, BEP-20 token transfers included, pays gas in BNB. The fee never comes out of the token you are sending. Send a little BNB to this wallet over the BSC network, then try again.
BEP-2 was the format of BNB Beacon Chain, which halted on 19 November 2024. If a platform still offers BEP-2 for a withdrawal, stop and check with the platform before you send anything.
Anyone can deploy a contract with any name and ticker, including "USDT". Only the contract address identifies a token. Get the address from the issuer's own site or documentation and compare it on a BSC block explorer before you import it.
Send a small amount to the new address and confirm the transaction on the explorer before you send the rest. Approve only what an app needs, and leave unexplained tokens in your wallet alone.
BSC and Ethereum both use 0x addresses, and the same key controls the address on both chains. Switching the wallet to BNB Smart Chain (Chain ID 56) should show the tokens. You will need BNB there to move them again.
The token is still on BSC. Recovery depends entirely on the platform that controls that deposit address and may not be possible.
This covers only the wallet, gas, network and address checks in the article: it cannot confirm a token's issuer or contract permissions, track a specific transaction, or guarantee that a platform will recover funds.
Using BEP-20 tokens: setup and first transfer
- Use an EVM wallet that supports BSC. Most EVM wallets either include BSC or let you add it as a custom network.
- Add the network if needed. BSC mainnet uses Chain ID 56 (hex
0x38) and the native currency BNB. BNB Chain listshttps://bsc-dataseed.bnbchain.orgamong its public mainnet RPC endpoints. The testnet uses Chain ID 97. - Fund the wallet with a little BNB for gas, sent over the BSC network.
- Add the token by contract address, not by name. Get the address from the issuer's own site or documentation and compare it on a BSC block explorer such as BscScan before you import it.
- Send a small test amount first to a new address, then confirm the transaction on the explorer before sending the rest.
How funds get lost, and how to avoid it
Wrong network. BSC and Ethereum both use 0x addresses, so an address that is valid on one chain looks valid on the other. If you sent a BEP-20 token to an 0x address whose private key you hold, the same key controls that address on BSC, and switching the wallet to BSC should show the tokens. If you sent it to a custodial deposit address that does not support BSC, recovery depends entirely on that platform and may not be possible.
Impostor tokens. Anyone can deploy a contract with any name and ticker, including "USDT". Only the contract address identifies a token.
Unlimited approvals. approve gives a contract the right to move your tokens up to the allowance. Many apps request very large or unlimited allowances. If that contract or its operator is compromised, the approved tokens are exposed. Approve only what you need, and remove allowances you no longer use. EIP-20 itself recommends setting an allowance to 0 before changing it to a new value for the same spender, because of a known race condition.
Unsolicited tokens. Tokens that appear in a wallet without explanation are a common lure. Interacting with their contract or a linked site can lead to a malicious approval. Leave them alone.
Issuer controls. Some token contracts let the issuer pause transfers or freeze addresses. Read the verified source code on the explorer or the issuer's documentation to see what the contract allows.
Creating a BEP-20 token: developer notes
Because BSC is EVM-compatible, a standard ERC-20 contract deploys to BSC unchanged. The common route is OpenZeppelin's ERC20 base contract with Remix, Hardhat or another Ethereum toolchain pointed at BSC. Under BEP-20, symbol() and decimals() are required. OpenZeppelin's implementation provides both, with decimals set to 18 by default. Test on BSC testnet (Chain ID 97) before mainnet, and publish the verified source on the explorer so users can read what the contract does.
Frequently asked questions
Is BEP-20 a coin?
No. It is a standard that token contracts on BNB Smart Chain follow. BNB is the chain's native coin and pays the gas.
Can I send a BEP-20 token to an ERC-20 address?
The address format is identical, but the token stays on BSC. Whether you can reach it depends on whether you control the private key for that address. A custodial deposit address that does not support BSC may never credit the tokens.
Does BEP-2 still work?
No. BNB Beacon Chain halted on 19 November 2024. Remaining BEP-2 and BEP-8 balances can be moved only with BNB Chain's locally run recovery tool, and only for assets that had cross-chain functionality.
How much does a BEP-20 transfer cost?
BNB Chain's documentation puts typical BSC fees at around $0.005 or less at the 0.05 Gwei standard gas price. The cost is paid in BNB and changes with the BNB price and network load.
Limitations: fee, block-time and validator figures come from BNB Chain's own documentation as of October 2026 and can change with future hard forks.