/rfq
authwriteexample onlyThe response below is an example, not a live call. POST /rfq opens a live trade against an existing ACA. Run it from your authenticated desk. A docs button has no wallet or ACA. The request on the left is exact — run it from your authenticated client.
Body
Identity
The relayer identifies the caller from this address — no signature. A trade still binds only with the two EIP-712 Terms signatures.
Bearer token · optional
curl -X POST "https://app.crxfx.com/svc/relayer/rfq" \
-H "X-CRX-Address: 0x1dae3a466eff0bbc6a7ae4cd24b5b2b62f0f492e" \
-H "Content-Type: application/json" \
-d '{
"counterparty": "0xd403e4e3239943fae744f44776476e60f54ed167",
"aca_number": "0",
"instrument": "0",
"pair": "0xb88ea9916342b79eb925490733f4ef685aae8eaf3cefa07ba7fc36396d229201",
"tenor_days": 30,
"notional": "100000",
"direction": "long",
"quote_window_secs": 60,
"expiry": 1780313385
}'Response
Press Example to see a sample response — this call opens a live trade and runs from your authenticated desk.
Open a directed request for quote (RFQ) as a taker. This call opens a live trade: the relayer identifies the caller from the X-CRX-Address header, and the request writes against an existing account control agreement (ACA) between the taker and the maker. The endpoint is rate-limited to 100 submissions per firm per minute.
- Body: the real schema:
JSON
{
"counterparty": "0x…", // the maker you direct the RFQ to
"aca_number": "0", // your existing ACA with that maker
"instrument": "0", // instrument id, NDF = 0
"pair": "0x…", // on-chain pairId, keccak256(label); see GET /calendar/:pair
"tenor_days": 30,
"notional": "100000",
"direction": "long", // taker's side: "long" or "short"
"quote_window_secs": 60, // how long the maker has to answer
"expiry": 1780313385 // unix seconds the whole RFQ expires
}- Returns:
{ "rfq_id": "0x…" }(the relayer-generated RFQ id, a 32-byte hash).
This endpoint writes against a live ACA and cannot be exercised from this page. Build the request below and run it from an authenticated desk.