Quote Signing
This is the signature underneath the API quote path. You sign the Terms first; CRX signs second. Your signature binds your quote to the exact anchored offer, inside a deadline that kills any replay.
What does the maker sign, and when?
You sign first. When you price an RFQ, the relayer returns a canonical Terms object built from your rate and margin schedule, and you sign it with EIP-712. Your counterparty on this leg is CRX: your signature is the first of the two that bind the trade; CRX signs the same Terms when it accepts. When both signatures exist and your quote is anchored, the contract accepts the bind. The Terms shape, the domain, and how the id derives are the shared model: see Terms & Signing (~3 min).
This is why the quote path needs no session to authorize. You log in only to read your inbox. The bind authority is the Terms signature you produce, not the token.
What you author vs what the relayer fills
You author the price-bearing fields; the relayer fills the rest from the RFQ, then returns the whole canonical Terms for you to sign. Yours are:
- The locked rate, the forward rate you stand behind, your price.
- The long-side and short-side initial-margin rates, the cushion you require per side, your margin schedule.
Everything else (the agreement id, pair, side flag, notional, VM thresholds, calendar terms, and the binding nonces) is filled from the RFQ. The full field list is in Terms & Signing (~3 min). You sign exactly what the relayer returns; you never hand-build a Terms.
Why is there a signing deadline?
So your quote cannot be replayed against you later. The signing deadline is the timestamp past which the contract rejects the Terms; it bounds your rate to the moment it was priced. If CRX does not bind inside it, your quote expires: nothing is owed, nothing is posted. The deadline limits your exposure to the validity window; a standing signed quote against a moving market is exactly what it prevents.
You sign the canonical Terms the relayer returns, then post your signature to confirm. On confirm the relayer anchors your quote on-chain, and CRX can take the agreed quote and bind.
Edge cases at bind time
Two branches, both clean:
- It binds. CRX signed the same Terms and submitted the bind inside the signing deadline. The position opens; allocate your IM into the agreement's SCA and the position marks for you and against you continuously.
- It expires or reverts. CRX did not bind before the window closed, or the Terms drifted from the anchor. Your quote expires; nothing is posted. Re-price under a fresh RFQ; do not re-quote under a live offer.
WarningSign exactly what the relayer returned. The contract verifies the signed Terms, not your intent.
The desk-UI path that produces this same signature with one click is Answer an RFQ (~6 min). The exact EIP-712 struct and signing code lives in Quote: Get Started.