x402 payment middleware for stablecoin content gating on Base and Radius.
loading...Middlebit normalizes USDC (EIP-3009) and SBC (EIP-2612) payments into a consistent API across Base and Radius networks. Point your frontend at middlebit with your merchant wallet address — everything else (facilitator setup, signature standards, on-chain settlement) is handled for you.
That's it. No API keys, no extra accounts, no backend configuration.
A value type is the form of value (SBC, USDC). A transfer type is the mechanism it moves on (Base, Radius). Learn more →
| Value Type | Transfer Type | Standard | Decimals | Address |
|---|---|---|---|---|
| USDC | Base (8453) | EIP-3009 | 6 | 0x833589fC...02913 |
| SBC | Base (8453) | EIP-2612 | 18 | 0xfdcC3dd6...80798 |
| SBC | Radius (723) | EIP-2612 | 6 | 0x33ad9e4b...14fb |
The user pays zero gas — middlebit settles on-chain. USDC uses the thirdweb facilitator; SBC uses the stablecoin.xyz facilitator.
/api/healthHealth check. Returns version, supported value types, and transfer types.
/api/value-typesValue type and transfer type configs for client discovery.
/api/payment-requirementsReturns 402 with x402 v1 payment requirements. The frontend uses these to construct the EIP-712 signing request.
Note: You pass your merchant wallet as payTo. The response returns the on-chain addresses middlebit uses internally — your client just needs to sign what's returned.
/api/settleSettles a signed payment on-chain. The paymentSignature is a base64-encoded x402 v1 payload.
Dashed lines are data/instructions. Solid lines are value transfers. Follows the Commons Stablecoin Format.
sequenceDiagram
participant User as End User Wallet
participant App as Frontend / App
participant Middlebit as middlebit
participant Chain as Blockchain
participant Merchant as Merchant Wallet
User-->>App: [DATA] Request gated content
App-->>Middlebit: [DATA] POST /api/payment-requirements
Middlebit-->>App: [DATA] 402 Payment Required
App-->>User: [DATA] EIP-712 signing request
User-->>App: [DATA] Signed payload
App-->>Middlebit: [DATA] POST /api/settle (signed payload)
Middlebit->>Chain: Submit transfer
Chain->>Merchant: Confirm Receipt
Middlebit-->>App: [DATA] Transaction receipt
App-->>User: [DATA] Content unlocked
The end user pays zero gas. When a user pays, they sign a transfer to a settlement wallet. Middlebit submits it for on-chain execution, and funds are forwarded to your merchant wallet. You provide your merchant wallet address, token, network, amount, and resource URL.
Copy this and hand it to an AI coding agent or use it as a spec to build a client:
/api/value-types replaces /api/supported-tokensvalueType + transferType replace token + network/api/supported-tokens endpoint for client discoveryMiddlebit is open source. The codebase is ~500 lines of TypeScript across 4 API endpoints and 3 utility modules.