Base URL
The API is served by the Convallax relay (Node.js backend). The base URL depends on your deployment:Authentication
Most endpoints are currently open. The WebSocket maker endpoint optionally requires an API key:MAKER_API_KEY environment variable is set.
REST Endpoints
Health & Status
GET /
Health check. Returns
"Server is running".GET /maker/v1/status
Relay status: protocol version, connected maker count, and WebSocket path.
Trading
POST /quote/indicative
Get a model-based indicative bid/ask quote. No wallet signature required.
Polymarket market condition ID.
Polymarket YES CLOB token ID.
Strike price in basis points (5–95).
0 = Call, 1 = Put.Option expiry as Unix timestamp.
"buy" or "sell".Number of whole options.
POST /rfq
Submit a signed request for quote. The relay verifies the EIP-712 signature, broadcasts to market makers, collects quotes, and returns the best one.
The EIP-712 typed data payload (ConvallaxRFQV1 message fields).
EIP-712 signature from the taker wallet.
Must be
"eip712".POST /execute
Accept the winning quote and receive a signed on-chain order. The relay resolves the series, ensures market maker inventory, and signs the EIP-712 Order struct.
The original RFQ payload.
The winning quote to execute.
order and makerSignature to call ConvallaxRFQSettlement.fill() on-chain.
Settlement
POST /settlement/prepare
Compute the VWAP resolution price and return a signed settlement attestation.
The series ID to settle (hex or decimal).
seriesId, resolutionBps, validUntil, and signature to call ConvallaxCore.settleWithAttestation() on-chain.
Faucet
POST /faucet
Request testnet USDC (Amoy only). Rate-limited per wallet.
Wallet address to receive testnet USDC.
GET /faucet/status
Returns faucet configuration and remaining pool balance.
WebSocket
WS /maker/v1/ws
Real-time RFQ distribution for market makers. See the full WebSocket reference for message schemas, validation rules, and connection lifecycle.
| Direction | Message type | Description |
|---|---|---|
| Server → Maker | connected | Connection confirmation with protocol version |
| Server → Maker | rfq | New RFQ broadcast with trade envelope |
| Maker → Server | quote | Quote submission for an active RFQ |
On-Chain Contracts
After receiving a signed order from/execute, the taker interacts directly with the smart contracts:
| Contract | Method | Purpose |
|---|---|---|
ConvallaxRFQSettlement | fill(order, signature) | Execute atomic option ↔ USDC swap |
ConvallaxCore | settleWithAttestation(...) | Submit resolution attestation |
ConvallaxCore | claimHolderPayout(seriesId, amount) | Claim holder payout after settlement |
ConvallaxCore | claimWriterCollateral(seriesId) | Claim writer’s remaining collateral |
ConvallaxRFQSettlement | cancelNonce(nonce) | Pre-burn an unused nonce |
