Order is what a consumer signs. Its field order and types are authoritative: the off-chain ORDER_TUPLE in @caplane/shared mirrors this struct exactly, and the encoding of it produces the orderHash.
Fields
| # | Field | Type | Description |
|---|---|---|---|
| 1 | consumer | address | The payer and the capability recipient. Must equal the recovered EIP-3009 signer. |
| 2 | adapter | address | The ICapabilityAdapter the consumer authorizes. Signed into the hash, so a relayer cannot swap it. |
| 3 | params | bytes | Opaque, adapter-specific parameters. Dynamic bytes; the encoding gotcha. Per-adapter schemas are in adapters. |
| 4 | payToken | address | The EIP-3009 settlement token. TestUSDC on testnet. |
| 5 | amount | uint256 | Total charged to the consumer, in payToken’s smallest unit (TUSDC has 6 decimals). |
| 6 | feeBps | uint16 | The relayer fee in basis points of amount. The broker reverts FeeTooHigh if it exceeds 10000. |
| 7 | payee | address | The provider. Receives amount - fee after the grant. |
| 8 | nonce | uint256 | A consumer-chosen uniqueness salt. Not the EIP-3009 nonce. |
order.nonce is not the EIP-3009 nonce
See also
- Order encoding: the byte-exact
abi.encode(order)layout and a verifiable worked example. brokerCapability: the entry point that takes this struct.- The binding: why signing this struct ties payment to the capability.

