{ Protocol

Intents

A signed tuple, not a swap transaction.

An intent is a signed tuple, not a transaction. The book stores the want. The chain only sees a fill.

SignEIP-712Bookintent poolHerdsolversSettleUSDCThe want never sits as a marketable transaction.
//R.01 Intent path — sign, match, fill, settle

The tuple

I = (s, ain, aout, qin, qmin, τ, σ)
(2.1)
sSigner. EOA or Circle Agent Wallet.
a_in, a_outToken in, token out. Quote leg is USDC.
q_inMaximum amount the signer will spend.
q_minMinimum amount the signer will accept.
τExpiry. Block time after which the want is void.
σEIP-712 signature over the typed intent.

Feasible fill

A fill F = (q′in, q′out) is feasible for I when all of these hold:

q′in ≤ qinq′out ≥ qmin ·q′inqint ≤ τ
(2.2)

Limit price implied by the want

plim =qminqin
(2.3)

Solvers may improve on p_lim. They may not miss it. Improvement is surplus, and surplus is split.