Skip to main content

General

Convallax is the options layer for prediction markets. We let you trade European cash-settled call and put options on Polymarket YES token prices, collateralized in USDC, and settled on Polygon. Traders get leveraged exposure to prediction market outcomes with capped downside, and market makers earn the spread by providing liquidity through our live quote request system.
On Polymarket, you buy YES or NO tokens with linear payoff — if YES is at 60¢ and the event happens, you profit 40¢ per token.With Convallax options, you can express more nuanced views. A call option at strike 50¢ lets you profit from YES moving above 50¢ while only risking the premium you paid. You can also buy puts to profit from YES declining, or write options to earn premium income. Options provide leverage, defined risk, and flexibility that linear token positions cannot.
Convallax supports options on any Polymarket binary market for which the team has registered an option series on-chain. The current testnet deployment features the Hantavirus 2026 market with strikes from 35¢ to 75¢ and monthly expiries through December 2026.If you’d like a specific market supported, contact us at support@convallax.com.
Convallax is deployed on Polygon Amoy testnet (chain ID 80002). All option tokens are ERC-1155s on Polygon, and collateral is held in testnet USDC.

Trading

Convallax uses a live quote request model. When you open a trade, market makers receive your trade parameters over a quote-request SSE stream and compete to quote you a price in real time over REST. You always get the best available price from competing market makers, and the trading UI streams the live best quote to you as it changes.
  • A call option profits when the YES price finishes above the strike price at expiry. Payoff: max(0, S − K).
  • A put option profits when the YES price finishes below the strike price at expiry. Payoff: max(0, K − S).
Both are European style — they can only be exercised at expiry, not before.
Strikes range from 5¢ to 95¢ in 5¢ increments. Not all strikes may be registered for every market — check the trading interface for available series.
No. If you are a buyer (long), your maximum loss is the premium you paid. Options provide built-in downside protection — you can never lose more than your initial outlay.If you are a writer (short), your loss is bounded by the collateral you posted, which covers the worst-case payout.
If no valid quote is received from market makers while your quote request is open, the commit will return an error. No funds move until you explicitly commit and call fill() on-chain, so there is no risk if no quotes arrive. You can always open a new quote request to try again.
No. Quote requests are unsigned — you do not need to sign an EIP-712 message to request prices. Your authorization is the on-chain fill() call itself, which only you (the designated taker) can execute.

Settlement

At expiry, a resolution price is computed off-chain — either as a binary 0/100 if the underlying Polymarket market has resolved (closed), or otherwise as a 30-minute TWAP of the YES token’s price on Polymarket. The resolution price is signed by a trusted resolution signer and submitted on-chain via an EIP-712 attestation. After settlement, holders and writers claim their respective payouts.
TWAP (Time-Weighted Average Price) resolution averages the YES token’s price on Polymarket over the 30 minutes before option expiry, sourced from the CLOB prices-history endpoint (the order-book midpoint when the spread is tight, falling back to the last-traded price when wide). Weighting by time rather than volume resists manipulation from large or wash trades, and it provides a fair continuous settlement price for options that expire before a market has fully resolved. If that window has no price data, the series is escalated to manual review rather than auto-resolved.
Yes. Unlike Polymarket tokens which ultimately resolve to 0 or 1, Convallax options can settle at any continuous price via TWAP. For example, if the 30-minute TWAP is 0.59, options settle at resolutionBps = 59. This allows options to capture partial moves in probability.
Your payout remains available on-chain indefinitely. There is no deadline to claim — call claimHolderPayout or claimWriterCollateral whenever you’re ready.

Market Making

Market makers are independent entities that hold their own wallet keys and USDC (no option inventory). To start, sign in on the Convallax dashboard, go to Settings → API Keys, and generate your key — it works immediately. With your key, integrate over the three-channel transport: subscribe to the SSE quote-request stream (GET /v1/mm/quote-requests/stream) to receive requests, submit competitive quotes over REST (POST /v1/mm/quotes) using your own wallet address, and connect the post-trade WebSocket (/maker/v1/ws) to learn when you win and confirm with a signature. See the Authentication guide and the How to Become a Market Maker guide for full setup details.
The independent market maker signs its own order. When you win a quote, the backend sends you the exact EIP-712 Order via a quote:accepted WebSocket message, and you sign it with your own wallet key and POST the signature to POST /v1/mm/quotes/:quoteId/confirm. The backend never holds maker keys and never signs on a maker’s behalf — it only relays and verifies that the signature recovers to order.maker.
When a taker commits, the winning maker has a short window (MAKER_CONFIRMATION_MS, default 10 seconds) to sign and return the order. If it misses the deadline, the backend falls back to the next-best maker’s quote. If no maker confirms in time, the quote request stays open and the taker can retry — the commit returns an HTTP 503 with “No market maker confirmed the trade in time. Please try again.”
No. Settlement is atomic mint-on-fill — option tokens are minted fresh when a trade executes, and collateral is locked only at that moment. There is no pre-minting, no held inventory, and no ERC-1155 tokens to manage ahead of time.
Only USDC approvals — there are no setApprovalForAll / ERC-1155 approvals. The party posting collateral approves ConvallaxCore (usdc.approve(coreAddress, collateral)); the party paying premium approves ConvallaxRFQSettlement (usdc.approve(settlementAddress, premium)). For a standard long fill, the maker approves Core (collateral) and the taker approves Settlement (premium). A maker that quotes both directions should approve both Core and Settlement for USDC.
Hold USDC and set your approvals before you quote — when you win, there is no time to send approval transactions. Approve ConvallaxCore if you’ll post collateral and ConvallaxRFQSettlement if you’ll pay premium. The backend never posts collateral or approves on your behalf, and collateral itself is locked only when a trade actually fills.
For taker buys, the lowest valid price wins (best ask). For taker sells, the highest valid price wins (best bid). Quotes must also meet minimum size requirements (≥ 50% of requested size) and pass no-arbitrage checks.
Yes. You can update your quote at any time while the quote request is open by re-POSTing to /v1/mm/quotes for the same requestId. Quotes are attributed to your authenticated makerId, and only your latest quote is kept (the server-generated quoteId stays stable across updates).

Security

The smart contracts have been prepared for audit with a formal specification covering the three-contract architecture, all lifecycle functions, collateral invariants, and a comprehensive test suite (51 tests). Contact us for the latest audit status.
The contract owner can create series and perform emergency settlement, but cannot withdraw user collateral or option tokens. The ConvallaxRFQSettlement contract is non-custodial — it only orchestrates atomic mint-on-fill settlement and never holds funds; collateral is held by ConvallaxCore. The emergency pause function blocks new minting but never traps existing positions — settlement and claims always remain available.