Conventions
- Numerics are decimal strings, never JSON numbers.
"1000000", not1000000. The one exception ischainId, which is a number. - Addresses are EIP-55 checksummed. Lowercase or all-caps hex is rejected.
- 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
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 carry permissive CORS headers, so browser clients can call the coordinator directly.
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
deadline window is tight: it is accepted only within the final ~5 seconds before the 2-minute TTL expires. Set deadline to exactly 120 seconds ahead of your own clock at signing time. The slack exists to absorb the trip back to the coordinator, not to allow shorter-lived quotes.
