Dexter
Dexter
Docs

BNB Smart Chain (BSC)

EVM chain
BNB Chain
BNB Smart Chain

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).

Permit218 decimals

Network ID

NetworkCAIP-2 identifierStatus
BNB Smart Chaineip155:56Production

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

TokenContractSymbolDecimals
Binance-Peg USDT0x55d398326f99059fF775485246999027B3197955USDT18
Binance-Peg USDC0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580dUSDC18

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:

How it works:

  1. Payer approves the Permit2 contract for the token (one-time, ~$0.001 BNB). The facilitator can relay this transaction via the erc20ApprovalGasSponsoring extension.
  2. Payer signs an EIP-712 PermitWitnessTransferFrom authorization (off-chain, no gas).
  3. 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:

import { wrapFetch } from '@dexterai/x402/client';
 
const x402Fetch = wrapFetch(fetch, {
  evmPrivateKey: process.env.EVM_PRIVATE_KEY,
  preferredNetwork: 'eip155:56',
});
 
// BSC payment handled automatically via Permit2
const response = await x402Fetch('https://api.example.com/protected');

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

curl -s https://x402.dexter.cash/supported | jq '.kinds[] | select(.network == "eip155:56")'

Validate Before Shipping

  1. Confirm BSC appears in /supported with scheme: "exact" and extra.assetTransferMethod: "permit2".
  2. Confirm you are using eip155:56 as the network identifier.
  3. Confirm amounts use 18 decimals (not 6).
  4. Test POST /verify and POST /settle with a real BSC-targeted payment.

On this page