Polymarket CTF Exchange
Polygon PoS Polymarket0x4bfb41d5b3570defd03c39a9a4d8de6bd8b8982e
Solidity v0.8.15+commit.e14f2714
Admin & Risk
Who can change the rules?
Detected pausable controls from the verified ABI.
Current controls
- Paused
- false
Architecture
Polymarket contract role
Polymarket CTF Exchange
Matches orders for binary Polymarket markets. Filled orders move CTF outcome tokens backed by collateral through the standard Conditional Tokens path.
Shares the same trading ABI as the Neg-Risk Exchange; the difference is the market path.
| Market type | Binary / Yes-No markets |
|---|---|
| Token path | CTF outcome tokens |
| Resolution path | Conditional Tokens + UMA Adapter |
| Compare with | Polymarket Neg-Risk Exchange |
Overview
Read Functions
Block #87,395,576 · just nowReturns the admin configuration value for the specified address.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 | Admin configuration value for the address as a uint256 (e.g., role bitmask, expiry, or permission flag).✨ AI |
Returns the EIP-712 domain separator used to sign exchange orders.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 | EIP-712 domain separator (bytes32) for this exchange, used in order signature hashing.✨ AI |
Returns the collateral token contract address used by this exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address | ERC20 collateral token contract address backing and used to settle CTF outcome tokens.✨ AI |
Gets the complement of a tokenId
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| token | uint256 | - The token |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Return the condition id associated with a CTF outcome token.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| token | uint256 | CTF outcome token id to derive the Conditional Tokens condition id.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 | bytes32 condition id for the given token, used by Conditional Tokens and the UMA adapter.✨ AI |
Return the CTF contract address used by this exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address | The address of the Conditional Tokens Framework (CTF) contract used by this exchange to manage outcome tokens.✨ AI |
Returns the maximum fee rate for an order
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Gets the status of an order
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets. Returns the fill/cancel state used to decide whether a Polymarket order can still trade.
Parameters
| Name | Type | Description |
|---|---|---|
| orderHash | bytes32 | - The hash of the order |
Returns
| Name | Type | Description |
|---|---|---|
| — | tuple |
Gets the Polymarket Proxy factory implementation address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Polymarket proxy wallet address for an address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _addr | address | - The address that owns the proxy wallet |
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Proxy factory address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Polymarket Gnosis safe address for a signer
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _addr | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Safe factory address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Safe factory implementation address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Computes the hash for an order
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| order | tuple | - The order to be hashed |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Check whether an address is an admin of this CTF Exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| usr | address | Address to check for admin privileges.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | true if usr is an admin of the CTF Exchange; otherwise false.✨ AI |
Return whether an address is an authorized operator for this CTF exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| usr | address | Address to check for operator privileges.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | true if address is an operator authorized to perform exchange actions; otherwise false.✨ AI |
Checks whether a user's nonce is valid for order replay protection.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| usr | address | Address of the user to check.✨ AI |
| nonce | uint256 | Nonce value to validate.✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the nonce is valid for the user (unused and acceptable); otherwise false.✨ AI |
Returns the current replay-protection nonce for a trader address.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 | Current uint256 nonce used to prevent order replay for that address.✨ AI |
Fetches operator data for a given address.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 | A uint256 encoding the operator's permission flags or status metadata.✨ AI |
Returns whether the order is filled or cancelled and the remaining unfilled amount.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| isFilledOrCancelled | bool | isFilledOrCancelled: bool indicating order is fully filled or has been cancelled.✨ AI |
| remaining | uint256 | remaining: uint256 amount still unfilled for the order, in collateral token units.✨ AI |
Return the parent collection id used by Conditional Tokens for this CTF market.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 | Parent collection id (bytes32) used to derive condition and child collections for Conditional Tokens.✨ AI |
Returns whether the CTF Exchange is paused, disabling trading actions.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | Boolean true if the exchange is paused (trading disabled), false otherwise.✨ AI |
Return the address of the proxy factory contract used to deploy CTF market proxy adapters.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address | Address of the proxy factory contract that the exchange uses to deploy per-market proxy adapters.✨ AI |
Get the registry entry's complement and condition id by index.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| complement | uint256 | complement: Complement uint256 for this registry entry, used in CTF outcome calculations.✨ AI |
| conditionId | bytes32 | conditionId: bytes32 Conditional Tokens condition id tied to the binary market outcome.✨ AI |
Returns the address of the safe factory used to deploy outcome safes for the CTF exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address | Address of the factory contract that creates the safes which hold CTF outcome tokens.✨ AI |
Checks whether the contract implements an interface identified by interfaceId.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| interfaceId | bytes4 | ERC165 interface identifier (first 4 bytes).✨ AI |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the contract implements the interface identified by interfaceId, false otherwise.✨ AI |
Validates the complement of a tokenId
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| token | uint256 | - The tokenId |
| complement | uint256 | - The complement to be validated |
order - The order to be validated
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets. Checks whether an order is structurally fillable before execution, including signature and exchange constraints.
Parameters
| Name | Type | Description |
|---|---|---|
| order | tuple |
Validates the signature of an order
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| orderHash | bytes32 | - The hash of the order |
| order | tuple | - The order |
Validates that a tokenId is registered
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| tokenId | uint256 | - The tokenId |
Write Functions
Adds a new admin Can only be called by a current admin
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| admin_ | address | - The new admin |
Adds a new operator Can only be called by a current admin
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| operator_ | address | - The new operator |
order - The order to be cancelled
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets. Prevents a signed order from being filled later; useful when a trader withdraws liquidity from a Polymarket market.
Parameters
| Name | Type | Description |
|---|---|---|
| order | tuple |
orders - The set of orders to be cancelled
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets. Batch version of order cancellation for multiple signed Polymarket orders.
Parameters
| Name | Type | Description |
|---|---|---|
| orders | tuple[] |
Fills an order
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| order | tuple | - The order to be filled |
| fillAmount | uint256 | - The amount to be filled, always in terms of the maker amount |
Fills a set of orders
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| orders | tuple[] | - The order to be filled |
| fillAmounts | uint256[] | - The amounts to be filled, always in terms of the maker amount |
Increment the trading nonce to invalidate previously signed off-chain orders.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Matches a taker order against a list of maker orders
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets. Core exchange entry point: matches signed Polymarket orders and moves collateral/outcome tokens for the active market path.
Parameters
| Name | Type | Description |
|---|---|---|
| takerOrder | tuple | - The active order to be matched |
| makerOrders | tuple[] | - The array of maker orders to be matched against the active order |
| takerFillAmount | uint256 | - The amount to fill on the taker order, always in terms of the maker amount |
| makerFillAmounts | uint256[] | - The array of amounts to fill on the maker orders, always in terms of the maker amount |
Handles incoming ERC-1155 batch transfers of CTF outcome tokens and triggers order processing.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address | |
| — | address | |
| — | uint256[] | |
| — | uint256[] | |
| — | bytes |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes4 | `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed |
Handle receipt of an ERC-1155 token for a Polymarket CTF trade, process the incoming CTF outcome tokens and acknowledge receipt.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address | |
| — | address | |
| — | uint256 | |
| — | uint256 | |
| — | bytes |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes4 | `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed |
Pause trading on the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Registers a tokenId, its complement and its conditionId for trading on the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| token | uint256 | - The tokenId being registered |
| complement | uint256 | - The complement of the tokenId |
| conditionId | bytes32 | - The CTF conditionId |
Removes an existing Admin Can only be called by a current admin
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| admin | address | - The admin to be removed |
Removes an existing operator Can only be called by a current admin
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| operator | address | - The operator to be removed |
Removes the admin role for the caller Can only be called by an existing admin
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Removes the operator role for the caller Can only be called by an exiting operator
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Sets a new Proxy Wallet factory for the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _newProxyFactory | address | - The new Proxy Wallet factory |
Sets a new safe factory for the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _newSafeFactory | address | - The new Safe wallet factory |
Unpause trading on the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Events
Emitted when a fee is charged
| Name | Type | Indexed | Description |
|---|---|---|---|
| receiver | address | ✓ | |
| tokenId | uint256 | ||
| amount | uint256 |
Emitted when a new admin is added
| Name | Type | Indexed | Description |
|---|---|---|---|
| newAdminAddress | address | ✓ | |
| admin | address | ✓ |
Emitted when a new operator is added
| Name | Type | Indexed | Description |
|---|---|---|---|
| newOperatorAddress | address | ✓ | |
| admin | address | ✓ |
Emitted when an order is cancelled
Polymarket context A signed Polymarket order was invalidated before fill.
| Name | Type | Indexed | Description |
|---|---|---|---|
| orderHash | bytes32 | ✓ |
Emitted when an order is filled
Polymarket context Primary exchange activity signal: a Polymarket order was matched on-chain.
| Name | Type | Indexed | Description |
|---|---|---|---|
| orderHash | bytes32 | ✓ | |
| maker | address | ✓ | |
| taker | address | ✓ | |
| makerAssetId | uint256 | ||
| takerAssetId | uint256 | ||
| makerAmountFilled | uint256 | ||
| takerAmountFilled | uint256 | ||
| fee | uint256 |
Emitted when a set of orders is matched
| Name | Type | Indexed | Description |
|---|---|---|---|
| takerOrderHash | bytes32 | ✓ | |
| takerOrderMaker | address | ✓ | |
| makerAssetId | uint256 | ||
| takerAssetId | uint256 | ||
| makerAmountFilled | uint256 | ||
| takerAmountFilled | uint256 |
| Name | Type | Indexed | Description |
|---|---|---|---|
| oldProxyFactory | address | ✓ | |
| newProxyFactory | address | ✓ |
Emitted when an admin is removed
| Name | Type | Indexed | Description |
|---|---|---|---|
| removedAdmin | address | ✓ | |
| admin | address | ✓ |
Emitted when an operator is removed
| Name | Type | Indexed | Description |
|---|---|---|---|
| removedOperator | address | ✓ | |
| admin | address | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| oldSafeFactory | address | ✓ | |
| newSafeFactory | address | ✓ |
Emitted when a token is registered
| Name | Type | Indexed | Description |
|---|---|---|---|
| token0 | uint256 | ✓ | |
| token1 | uint256 | ✓ | |
| conditionId | bytes32 | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| pauser | address | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| pauser | address | ✓ |