BNB Smart Chain (BSC)
BSC processes more daily transactions than any EVM chain except Ethereum. Its stablecoins lack EIP-3009, so the facilitator settles via Permit2. Payers need BNB only for the one-time Permit2 approval (~$0.001).
Network ID
| Network | CAIP-2 identifier | Status |
|---|---|---|
| BNB Smart Chain | eip155:56 | Production |
Why BSC Is Different
BSC stablecoins lack EIP-3009
USDT and USDC on BSC are Binance-Peg bridge wrappers with a standard ERC-20 interface. They do not implement transferWithAuthorization, the gasless transfer function that powers x402 on Base, Polygon, Arbitrum, Optimism, and Avalanche. The facilitator uses Permit2 instead.
Permit2 is Uniswap's canonical token approval contract, deployed at the same address on every EVM chain. It works with any ERC-20 regardless of whether the token implements EIP-3009 or EIP-2612. The upstream @x402/evm SDK routes Permit2 payloads automatically when the facilitator signals assetTransferMethod: "permit2".
Token Details
| Token | Contract | Symbol | Decimals |
|---|---|---|---|
| Binance-Peg USDT | 0x55d398326f99059fF775485246999027B3197955 | USDT | 18 |
| Binance-Peg USDC | 0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d | USDC | 18 |
18 decimals, not 6
Both BSC stablecoins use 18 decimals. 1 USDT = 1000000000000000000 (1e18), not 1000000 (1e6). The facilitator returns extra.decimals: 18 in the /supported response. The SDK handles this automatically.
Settlement Model
The facilitator returns scheme: "exact" with extra.assetTransferMethod: "permit2" for BSC. Settlement uses two contracts:
- Permit2:
0x000000000022D473030F116dDEE9F6B43aC78BA3 - x402ExactPermit2Proxy:
0x402085c248EeA27D92E8b30b2C58ed07f9E20001
How it works:
- Payer approves the Permit2 contract for the token (one-time, ~$0.001 BNB). The facilitator can relay this transaction via the
erc20ApprovalGasSponsoringextension. - Payer signs an EIP-712
PermitWitnessTransferFromauthorization (off-chain, no gas). - Facilitator submits the authorization to the x402ExactPermit2Proxy, which settles via Permit2. Facilitator pays BNB gas.
After the one-time approval, every BSC payment requires one signature and zero BNB.
Integration:
No BSC-specific code is needed. The standard @x402/evm package and the @dexterai/x402 SDK both handle Permit2 routing when the facilitator signals it.
Best Fit
- merchants accepting payment from BSC-native users holding USDT or USDC
- agents operating on BSC that need programmatic payments with minimal gas overhead
- teams that want standard SDK compatibility with zero BSC-specific code
Quick Support Check
Validate Before Shipping
- Confirm BSC appears in
/supportedwithscheme: "exact"andextra.assetTransferMethod: "permit2". - Confirm you are using
eip155:56as the network identifier. - Confirm amounts use 18 decimals (not 6).
- Test
POST /verifyandPOST /settlewith a real BSC-targeted payment.