Gnosis CTF Model
Gnosis Conditional Tokens Framework (CTF) is the token model Arenaton uses for binary Outcome Shares. A Market is not a new Solidity deployment. It is a CTF condition prepared against a collateral token, an oracle/resolver address, and an outcome slot count.
This page documents the model Arenaton builds against. It is not a production address registry. Apps and services must read live contract addresses from /api/contract-registry or /api/paper/contract-registry.
Address Boundaries
Section titled “Address Boundaries”Third-party contract addresses are useful references, not Arenaton production configuration.
| Address type | Current rule |
|---|---|
| Arenaton production addresses | Read from /api/contract-registry after production gates pass. |
| Arenaton paper addresses | Read from /api/paper/contract-registry for Polygon Amoy and PaperUSDC. |
| Polymarket addresses | Use only as external CTF references. Do not paste them into Arenaton registries. |
As of May 4, 2026, Polymarket’s public docs list Polygon mainnet CTF infrastructure including the Conditional Tokens contract, CTF Exchange V2 contracts, pUSD collateral contracts, and UMA adapter/oracle contracts. Those are Polymarket deployment details, not Arenaton settlement authority.
Sources:
Core Objects
Section titled “Core Objects”| Object | Meaning in Arenaton |
|---|---|
| Market | The product record users browse and trade. |
| Condition | The on-chain CTF record for a question and outcome set. |
| Outcome Share | ERC-1155 position token representing one outcome. |
| Collateral | USDC in production, PaperUSDC in paper mode. |
| Resolver | The address that reports final payout vectors to CTF. |
| Settlement | The contract or paper engine path that atomically moves Collateral and Outcome Shares. |
Condition Derivation
Section titled “Condition Derivation”The condition ID is deterministic:
conditionId = getConditionId(oracle, questionId, outcomeSlotCount)For first-launch binary Markets:
| Parameter | Value |
|---|---|
oracle | Arenaton resolver for the environment. |
questionId | Deterministic hash of the Market terms and resolution source. |
outcomeSlotCount | 2. |
The Market ID remains human-readable for APIs and URLs. The questionId and conditionId are the settlement and redemption identifiers.
Position ID Flow
Section titled “Position ID Flow”Binary Outcome Shares are computed in three steps:
conditionId = getConditionId(oracle, questionId, 2)yesCollectionId = getCollectionId(bytes32(0), conditionId, 1)noCollectionId = getCollectionId(bytes32(0), conditionId, 2)yesPositionId = getPositionId(collateralToken, yesCollectionId)noPositionId = getPositionId(collateralToken, noCollectionId)Index sets use bitmasks:
| Outcome | Index set |
|---|---|
| YES / outcome 0 | 1 / 0b01 |
| NO / outcome 1 | 2 / 0b10 |
Settlement Paths
Section titled “Settlement Paths”Primary Split
Section titled “Primary Split”Complementary buy demand can create the first Outcome Shares:
YES buyer signs buy YES at price PNO buyer signs buy NO at price 1 - P or bettersettlement transfers Collateralsettlement calls CTF splitPositionYES and NO Outcome Shares move to the buyersThe settlement contract must not retain user Collateral or Outcome Shares after execution.
Secondary Resale
Section titled “Secondary Resale”After Outcome Shares exist, same-outcome buy/sell matching transfers existing shares:
seller signs sell YESbuyer signs buy YESsettlement transfers Collateral from buyer to sellersettlement transfers YES Outcome Shares from seller to buyerFailed resale cannot create user debt. If balances, approvals, signatures, cancellation, expiry, or Live State Version checks fail, settlement reverts or the paper engine marks the fill failed.
Resolution
Section titled “Resolution”The resolver reports a payout vector to CTF after the correction window closes.
| Resolution | Payout vector |
|---|---|
| YES wins | [1, 0] |
| NO wins | [0, 1] |
| Invalid | [1, 1] |
With [1, 1], each binary Outcome Share redeems for half of one unit of Collateral. Users redeem through CTF redemption mechanics, not an Arenaton internal balance.
Paper Mode
Section titled “Paper Mode”Paper mode uses the same mental model while staying isolated:
| Area | Paper rule |
|---|---|
| Chain | Polygon Amoy 80002. |
| Collateral | PaperUSDC only. |
| Registry | /api/paper/contract-registry. |
| Settlement | Paper exchange plus paper CTF settlement path. |
| Portfolio | Derived from paper settlement, lifecycle, redemption, and indexer state. |
Read CTF Paper Mode and Paper Trading Backend for the current implementation spine.