How it works

Custom risk, matched peer‑to‑peer.

rfq.fi lets anyone define a custom outcome market and trade the risk on it. Makers rest signed quotes, a taker takes, and a Rust engine matches them with fractional fills from multiple counterparties. Both sides co-sign one gasless order; collateral escrows on-chain; a bonded optimistic oracle settles. Custody always lives in the escrow — the engine only matches.

The lifecycle

From a question to a payout

OFF-CHAIN · MATCHINGON-CHAIN · CUSTODYUI + WalletEIP-712 signRelayerprice · co-signRFQ EngineRust · matchesRiskEscrowholds the potKeeperposts outcomeOraclefinalizessignmatchexecuteFillssettledresolves

The relayer prices and co-signs the vault's maker side and submits every match gaslessly; the engine matches one taker against many makers and emits an executeFills bundle. The escrow holds both sides' collateral and pays each user on redeem.

Off-chainmatching · sequencing · no custody
On-chaincustody · execution · settlement
1
Create a market

Define a custom outcome, how it resolves, and when it expires. The relayer lists it on-chain — gasless, no wallet signature.

2
Post a request or offer

Pick a side (long YES or short NO) and a price as a probability %. You sign one EIP-712 order; makers rest quotes, takers take.

3
Get matched

The Rust engine sweeps the book and fills your order — fractionally, across multiple makers — at each maker's price.

4
Execute

Review the fill breakdown; both sides' signatures submit in a single gasless transaction and collateral locks in the escrow.

5
Settle

After expiry a keeper posts the outcome to a bonded optimistic oracle. A dispute window opens; anyone can finalize once it passes.

6
Redeem

Claim your conserved payout to your free balance in one O(1) call. Withdraw free balance anytime — it's self-custodial.

Pricing & collateral

The price is the probability

A market's price is a probability tick from 0 to 100%. Both sides prepay the outcome up front, so every fill is fully collateralized and the pot is always exactly the size — no leverage, no dust.

Fill size (USDC)
Price (YES probability)60%
Long escrows
60.00
size · 6000/10000
Short escrows
40.00
size − long
Pot
100.00
long + short

Long and short always reconstruct the size exactly, whatever the price — the money to pay the winner is locked at the moment of the fill. Fully collateralized, no dust.

At settlement
Resolves YESlong → 100.00short → 0
Resolves NOshort → 100.00long → 0
Scalar tick o
long redeems units·o/10000, short units·(10000−o)/10000 — summing back to the pot.
Why it's safe

Custody on-chain, matching off-chain

The engine is fast and deterministic, but it never holds funds. Everything that touches money is on-chain and verifiable.

Custody never leaves the chain

The engine matches and emits co-signed bundles. Funds only ever move inside RiskEscrow, authorized by your signature — the relayer pays gas but can't move what you didn't sign.

Solvent by construction

Both sides prepay; long + short escrow always sum to the pot. Total redeemable equals total escrowed at every block — insolvency is impossible, not just unlikely.

Forced exit

The operator commits a keccak Merkle root of free balances. If it ever goes dark, you withdraw your committed balance directly against the root — no permission needed.

One signature, everywhere

The order digest is byte-identical across the browser, the Rust engine, and the Solidity contract — a signature made in your wallet verifies in the engine and on-chain.

Who's who

Three roles, one book

Creators

Anyone can define a custom outcome market — public for the whole book, or private via direct link. Listing is an order, not a gatekeeper.

Takers & makers

Peer-to-peer via RFQ: makers rest signed quotes, takers take. One taker is filled fractionally by many makers, each at their own price.

The vault (optional)

A pooled LP vault can quote as one maker among others via EIP-1271 — never the forced house. LPs earn the edge; downside is capped by capital.

Create a market or take the other side.

Define a custom outcome for others to trade, or browse open markets and post a request or offer. Signing is gasless.