Resolution Price
The resolution price S determines payoffs for all options in a series. It is expressed asresolutionBps — an integer from 0 to 100 representing the YES token price at expiry.
resolutionBps | Meaning |
|---|---|
0 | NO wins — YES is worth $0.00 |
100 | YES wins — YES is worth $1.00 |
59 | YES price at expiry ≈ $0.59 |
Resolution Methods
The on-chain contract accepts anyresolutionBps in [0, 100]. How the value is determined is an operational choice:
- VWAP (default)
- Binary
The volume-weighted average price of YES token trades on Polymarket during the 30 minutes before expiry:
- Fetch trades from the Polymarket data API for the option’s
conditionId - Filter to trades on the YES CLOB token within
[expiry − 1800s, expiry] - Compute
VWAP = Σ(price × size) / Σ(size) - Map to basis points:
resolutionBps = clamp(round(VWAP × 100), 0, 100)
Settlement Attestation (EIP-712)
The resolution signer creates a signed attestation that anyone can relay on-chain:| Field | Value |
|---|---|
name | ConvallaxCore |
version | 1 |
chainId | 80002 |
verifyingContract | 0xc760F8f6B8830463822be9F68eB10e1b5Dace378 |
Settlement Flow
Two settlement paths
| Path | Who can call | When to use |
|---|---|---|
settleWithAttestation() | Any option holder or contract owner | Normal path — permissionless relay with signed attestation |
settle() | Contract owner only | Emergency break-glass — no signature required |
Payoff Formulas
Once a series is settled with resolution price S (resolutionBps):
| Type | Payoff per option (USDC) |
|---|---|
| Call | max(0, resolutionBps − strikeBps) × $0.01 |
| Put | max(0, strikeBps − resolutionBps) × $0.01 |
Worked example: call at K=50, resolution S=80
Worked example: call at K=50, resolution S=80
payoffPerOption = (80 − 50) × $0.01 = $0.30- Holder with 100 options claims: 100 × $0.30 = 30 USDC
- Writer collateral was: 100 × $0.50 = 50 USDC
- Writer reclaims: 50 − 30 = 20 USDC
Worked example: put at K=60, binary resolution S=0 (NO wins)
Worked example: put at K=60, binary resolution S=0 (NO wins)
payoffPerOption = (60 − 0) × $0.01 = $0.60(maximum put payoff)- Holder with 50 options claims: 50 × $0.60 = 30 USDC
- Writer posted 50 × $0.60 = 30 USDC collateral → writer reclaims 0 USDC
Worked example: VWAP continuous settlement
Worked example: VWAP continuous settlement
- 30-minute VWAP = 0.5923 →
resolutionBps = 59 - Call at K=50: payoff = (59 − 50) × 0.09 per option**
- Put at K=65: payoff = (65 − 59) × 0.06 per option**
Claiming Payouts
After settlement, participants claim their payouts:Holders — claimHolderPayout(seriesId, amount)
Burns the specified amount of option tokens and transfers the USDC payout:
payoffPerOption = 0), the tokens are burned but no USDC is transferred.
Writers — claimWriterCollateral(seriesId)
Returns the writer’s remaining collateral after holder payouts are deducted:
Trust Model
| Component | Trust assumption |
|---|---|
| Resolution signer | Trusted to sign accurate VWAP / binary attestations |
| On-chain contract | Verifies EIP-712 signature but does not verify VWAP computation |
| Contract owner | Can break-glass settle and rotate the resolution signer |
| Holders | Can always claim after settlement — never blocked by pause |
