Conventions
- Numerics are decimal strings, never JSON numbers.
"1000000", not1000000. The one exception ischainId, which is a number. - Addresses are EIP-55 checksummed. All-lowercase hex is also accepted and normalised to EIP-55 on ingress. The two rejected forms are mixed-case hex with an invalid checksum and all-caps hex.
- Rates and LLTVs are WAD (
1e18= 100%)."81000000000000000"is 8.1%. - Amounts are in the token’s own decimals. No implicit scaling.
- Times are seconds;
deadlineis a unix timestamp.
POST /quote
Submits a borrower intent and returns the best valid quote from the round.
Request body
venueBitmap is checked venue by venue, so a bit naming a venue with no market for the pair is rejected even when another named venue could serve it. Setting the Morpho Blue bit for a pair with no Morpho Blue market returns 400 with venueBitmap allows morphoBlue but no morphoBlue market exists for 0x…/0x…; clear that venue bit, whether or not the Aave bit is also set. Clear the bit rather than relying on the other venue to cover it.Response 200
The winning quote’s fields inline, plus allQuotes, every quote that survived validation in that round, the winner included.
quoteId is generated if the solver omitted it. Responses echo the caller’s origin in Access-Control-Allow-Origin when it is allowlisted, so only the Iris app can read a response from a browser.
Errors
404 is a normal outcome, not a fault: it means every solver declined, timed out, or had its quote dropped in validation.
Solver webhook
What the coordinator POSTs to a registered solver’sendpoint.
Request
Identical to thePOST /quote body, plus a quoteId minted for this call. Each solver in a round receives a different quoteId and the same requestId.
Response
Return200 with the body below, or decline with 404 / bond: "0". The permit2 pair is optional together: omit both fields to fund the bond from your standing ERC-20 allowance to Iris, or supply both to stage the Permit2 fallback. Half a pair is rejected.
Signature construction is covered in Get Started; the checks these fields face are in Validation.

