x402 facilitator | BNB Smart ChainMAINNET
BSC

BNB Smart Chain

Dual-scheme x402 settlement on BSC. Standard Permit2 for ecosystem compatibility, plus a hardened custom contract with on-chain fee caps, token allowlists, and pause. Both paths are gas sponsored.

How it works on BSC

BSC stablecoins lack EIP-3009, so Dexter supports two paths. Permit2 uses the standard upstream x402 flow — approve Permit2 once, sign per payment. The hardened path uses a custom DexterBSCFacilitator contract with on-chain security guarantees. Both settle through the same facilitator endpoint.

BSCBuyer

Pay on BSC

DexterDexter

Verify + settle

BSCSeller

Receive on BSC

Capabilities

Everything you need to accept x402 payments on BSC.

Permit2 (standard path)

Standard x402 exact scheme via Uniswap Permit2. Works with the unmodified @x402/evm client. No BSC-specific code needed.

exact-approval (hardened path)

Custom DexterBSCFacilitator contract with on-chain fee caps (5% max), token allowlist, ReentrancyGuard, and emergency pause.

USDT + USDC

Both Binance-Peg stablecoins supported. 18 decimals (not 6). The facilitator handles decimal conversion automatically.

Gas sponsored

Dexter pays BNB gas for every BSC settlement. Buyers only need stablecoins.

Integration & resources

Use the same facilitator endpoint everywhere.

Facilitator URL

One endpoint for every chain. Point your x402 client here.

https://x402.dexter.cash
Use this same URL for all supported chains: Solana, Base, Polygon, Avalanche, Arbitrum, Optimism, BSC, and SKALE.

Documentation

Follow the integration guide and migration notes for x402 v2.

Open Docs

Facilitator dashboard

Live status, settlement metrics, and chain coverage in one view.

Open Dashboard

BSC quickstart (Permit2)

Drop this into your stack and start collecting payments.

Install
npm i @dexterai/x402
Example
import { createX402Server } from '@dexterai/x402/server';

const server = createX402Server({
  payTo: 'YourBscAddress',
  network: 'eip155:56',
  facilitatorUrl: 'https://x402.dexter.cash',
});

const requirements = await server.buildRequirements({
  amountAtomic: '1000000000000000000', // 1 USDT (18 decimals)
  resourceUrl: '/api/paid-endpoint',
});

res.setHeader('PAYMENT-REQUIRED', server.encodeRequirements(requirements));
res.status(402).end();