BNB Smart Chain addresses

BEP20 Address: Format, Validation and Creating One via API

How a BEP20 address is built, how it differs from a BEP-2 or contract address, and how to generate and watch BSC deposit addresses over the Chaingateway API.

7-day free trial — no card, no KYC to start Non-custodial — private keys stay under your control Plans start at €49/month (€490/year) — view plans and rate limits

A BEP20 address is the 42-character, 0x-prefixed hex string that holds BNB and BEP-20 tokens on BNB Smart Chain — the same address format Ethereum uses, because BSC's execution layer is EVM-compatible. If you're integrating BSC deposits or payouts, the address is where every flow starts: generate one per customer, watch it, credit the deposit. This page covers the format and how to get addresses through an API instead of a wallet UI; for the deeper technical explainer on checksums and the BEP-2 vs. BEP-20 distinction, see the BEP20 address guide on the blog.

What is a BEP20 address?

A BEP20 address is a 20-byte value, written as 40 hexadecimal characters with a 0x prefix — for example 0x8894E0a0c962CB723c1976a4421c95949bE2D4E. It's derived the same way an Ethereum address is: from the public key of a keypair, via Keccak-256 hashing. That shared derivation is why a wallet holding an Ethereum address can display the identical string on BSC — the format doesn't distinguish chains, only the network you broadcast a transaction to does.

BSC BEP20 vs. BEP-2: not the same standard

BEP20 is BNB Smart Chain's token standard, functionally close to Ethereum's ERC-20 and using the same address format. BEP-2 is a different, older standard that runs on BNB Beacon Chain (formerly Binance Chain), with its own address format that starts with bnb1 instead of 0x. "BSC BEP20" and "BEP-2" addresses are not interchangeable, and sending a BEP-2 asset to a BEP20-formatted address (or the reverse) fails or, on some exchanges, requires an explicit cross-chain conversion step. If a search led you here from "bep20 bsc", this is the distinction that matters: you're on the right chain.

What is a BEP20 wallet address, in practice?

Functionally, a BEP20 wallet address is your account identifier on BSC: the destination for incoming BNB or BEP-20 tokens (BEP20 tokens such as USDT, USDC or a project's own token) and the source address for outgoing ones. The same binance smart chain wallet address format holds native BNB and every BEP-20 token simultaneously — there's one address per account, not one per asset, and a token's balance under that address is tracked by the token's own smart contract rather than by the address itself.

Create and watch a BEP20 address over REST

Instead of generating an address in a wallet app and copying it into your backend, the BSC API creates and imports addresses directly, and a webhook tells you when a deposit lands.

EndpointWhat it does
POST /api/v2/bsc/addressesGenerate a new BEP20 address
POST /api/v2/bsc/addresses/importImport an existing private key so the API can sign for that address
POST /api/v2/bsc/webhooksRegister a webhook so a deposit to the address triggers an HMAC-signed callback
GET /api/v2/bsc/webhooks/notificationsList past deposit notifications for reconciliation

Watching an address for deposits needs no imported key — only sending from it does. That split matters for BEP20 tokens: your deposit-collection addresses can stay watch-only, and only the hot wallet that pays out needs an imported key.

Need addresses at scale rather than one at a time? Create a free account and generate a batch of BEP20 addresses in testnet — 7-day trial, no card, no KYC.

FAQ: BEP20 addresses

A 42-character, 0x-prefixed hexadecimal string that identifies an account on BNB Smart Chain, holding BNB and any BEP-20 token. It's derived the same way as an Ethereum address, which is why the two chains share the same format.

A BEP20 address is BNB Smart Chain's address format (0x-prefixed, EVM-style). BEP-2 is a separate, older standard on BNB Beacon Chain with addresses that start with bnb1. They are not interchangeable — check which chain a deposit request is actually asking for before sending.

The format is identical, but the network is not. The same private key produces the same-looking 0x address on both Ethereum and BSC, yet funds sent on one chain don't exist on the other — you need to broadcast the transaction on the chain the recipient actually expects.

POST /api/v2/bsc/addresses generates one over the API. Registering a webhook on that address means your backend gets an HMAC-signed notification the moment a BNB or BEP-20 deposit arrives, with no polling required.

Yes. One BEP20 address holds native BNB and every BEP-20 token — USDT, USDC, a project's own token — at the same address. Balances per token are tracked by each token's smart contract, not by the address itself.

Ready to build on BNB Smart Chain?

Create an account and generate a testnet BEP20 address in minutes — 7-day trial, no card, no KYC. Full endpoint reference in the BSC API docs, or cover all seven chains with the multi-chain blockchain API.