Flex is a Solana protocol with a single underlying primitive: a pre-funded escrow with off-chain signed authorizations that a registered facilitator finalizes on-chain. That one primitive projects cleanly onto several of the payment schemes defined by x402-foundation/x402, which is the question facilitator integrators tend to ask first: “which x402 scheme is Flex?” The short answer is that Flex covers four of them. The longer answer is below.Documentation Index
Fetch the complete documentation index at: https://docs.faremeter.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Mapping
exact — Full fit
Spec
Flex: submit_authorization with a single-recipient split [{recipient, 10000bps}] and settleAmount == maxAmount. Trivial degenerate case of the more general Flex authorization.
upto — Full fit
Spec
Flex: the client signs maxAmount, the facilitator sets settleAmount ≤ maxAmount at submit time. No re-signature is needed to settle for less. Direct semantic match — this is what Flex was built for.
auth-capture — Full fit (closest structural match)
Spec
Flex: submit_authorization is the auth, finalize is the capture, void_pending is the void, and refund reduces the captured amount within the refund window. The captureAuthorizer role is filled by the registered facilitator on the escrow. captureDeadline corresponds to expiresAtSlot on the authorization; refundDeadline corresponds to the escrow’s refund_timeout_slots.
batch-settlement — Full fit
Spec
Flex: pre-funded escrow PDA + Ed25519-signed PaymentAuthorizations acting as vouchers + multiple submit_authorization / finalize calls packed into a single Solana transaction for amortized cost. Capital-backed trust model — the escrow is the capital.
What Flex offers beyond x402’s current schemes
- Native multi-recipient splits — up to 5 recipients per authorization, basis-point weighted, signed by the client. No x402 scheme specs this today; a facilitator can expose it as a Flex-specific extension.
- Deadman switch — the client can unilaterally reclaim escrowed funds after a facilitator-inactivity timeout. No x402 equivalent; this is a trust-minimization safety net.
- Dual-sig escrow close — the normal close path requires both the owner and the facilitator to sign.
- Per-escrow caps —
max_pendingandmax_session_keysbound the blast radius of a compromised session key or runaway facilitator.
Why one primitive covers four schemes
All four x402 schemes above are HTTP-layer projections of the same underlying shape: a client commits to a payment, a service does work, and a facilitator finalizes on-chain. They differ in the timing and cardinality of that finalization, not in the cryptographic substrate. Flex’s primitive — pre-funded escrow, off-chain signed authorization, on-chainsubmit_authorization + finalize, with refund and void_pending as escape valves — is rich enough that each of those schemes is a specific way of using it:
exactconstrainssplitsto one recipient andsettleAmounttomaxAmount.uptoexercises thesettleAmount ≤ maxAmountdegree of freedom.auth-captureexercises the fullsubmit → finalize / refund / voidstate machine.batch-settlementexercises packing multiple authorizations into a single transaction.
See also
- Flex Overview — what Flex is and when to use it.
- Flex Concepts — escrows, session keys, splits, holds, settlement, refund window, deadman switch.
- Flex Facilitator — hold lifecycle and accounting on the operator side.
- Payment Schemes — where Flex sits among Faremeter’s other schemes.