Proven on Base mainnet + Base Sepolia with real on-chain transactions.

x402 batch-settlement · on-chain & self-custodial

x402's stream is centralised.
sip402 decentralises it.

x402 ships a batch-settlement scheme for streaming, session-based payments — but its only binding, cloudflare:402, is centralised: credit-backed, off-chain, network-as-merchant. sip402 is the first on-chain, self-custodial binding — gasless USDC streams the chain itself caps and revokes. No custodian ever holds the funds.

drawn this session$0.000000USDC
Total drawn · USDCBase Sepolia
$0.240000
80% of capcap $0.30
batch$0.1200003 commitments → 1 tx
batch$0.1200003 commitments → 1 tx
batch$0.120000reverted · cap reached

The problem

The stream existed. The decentralised version didn't.

x402 already describes streaming, session-based payments — pay as a resource is delivered, settle in batches. But the only binding anyone shipped, cloudflare:402, is centralised: a credit balance held by the network, settled off-chain. The trust-minimised, on-chain version was in the spec but never built. sip402 builds it.

exactone transfer, fixed amount, settled onceno relationship
uptosettles once after delivery, up to a maxtrust the server's meter
sip402a standing session, many small drawscap enforced on-chain

vs the existing x402 implementation

Built on x402. Past where x402 stops.

x402 ships exact and upto; the official @metamask/x402 does per-request delegated payments through a hosted facilitator. None of them open a standing session whose cap the chain enforces.

It is x402: same handshake, same envelope.

402 handshake

Server replies 402, the client returns a PaymentPayload, the seller verifies and settles.

Same envelope

PaymentRequirements and PaymentPayload, the scheme and network fields, the facilitator roles.

Scheme registry

Registers as batch-settlement on Base — eip155:8453 and eip155:84532.

Where they diverge

Payment shape
x402 todayOne transfer per request — settled once (exact) or up to a max after delivery (upto).
sip402One standing session; many small draws batched into a single redeemDelegations tx.
Who guarantees the cap
x402 todayThe server's meter, or a per-request signature you have to trust.
sip402An on-chain enforcer — ERC20PeriodTransferEnforcer reverts any over-cap draw.
Relationship
x402 todayStateless. Re-authorize on every single request.
sip402Open a tab once, sip against it until you revoke.
Revocation
x402 todayNone mid-stream — you just stop sending requests.
sip402disableDelegation halts the next draw on-chain, mid-sentence.
Settlement rail
x402 todayHosted facilitator as merchant-of-record, including @metamask/x402.
sip4021Shot relayer — self-hostable, gas paid in USDC, no ETH float.
Custody
x402 todayCredit-backed / facilitator-held in the shipped batch-settlement binding.
sip402Self-custodial. Funds leave only at redemption, bounded by the caveat.

How sip402 expands batch-settlement

batch-settlement is described in the x402 spec as a capital-backed, delegated-authorization model, but its only shipped binding, cloudflare:402, is credit-backed fiat, settled off-chain, with the network as merchant-of-record.

sip402 is the first capital-backed, on-chain, self-custodial binding of the same scheme: the commitment is an ERC-7710 redelegation, the cap is an on-chain caveat, settlement is a real redeemDelegations batch, and A2A redelegation lets one session fan out to many agents.

How it works

Grant. Spend. Enforce.

01

Grant

One MetaMask ERC-7715 Advanced Permission. A periodic USDC allowance, capped per period.

02

Spend

The agent sips USDC per request. Each commitment is a redelegation to the seller; vouchers batch into one tx.

03

Enforce

The ERC20PeriodTransferEnforcer reverts the over-cap draw. disableDelegation revokes mid-stream.

Proven on-chain

Every claim is a real transaction.

Credibility comes from here is the tx, not from adjectives. Each row links to Basescan.

Built on

MetaMask Smart Accounts Kit

ERC-7715 advanced permissions · ERC-7710 redelegation

1Shot Permissionless Relayer

EIP-7702 · gas paid in USDC · webhooks

Venice AI

x402-metered inference behind an OpenAI-compatible gateway

npm packages