Polymarket CTF Exchange
Polygon PoS Polymarket0xe111180000d2663c0091e4f400237545b87b996b
Solidity v0.8.34+commit.80d5c536
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,578 · just nowReturns the Conditional Tokens parent collection ID used by this exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets. Identifies the parent collection used when deriving conditional-token positions for this exchange path.
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 | bytes32 parent collection ID for Conditional Tokens that scopes CTF outcome positions.✨ AI |
Return the EIP-712 domain parameters used to build the contract's signing domain.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| fields | bytes1 | EIP-712 domain type byte (single-byte domain schema identifier).✨ AI |
| name | string | EIP-712 domain name for signing (contract or protocol name).✨ AI |
| version | string | EIP-712 domain version string used in the signing domain.✨ AI |
| chainId | uint256 | Chain ID used when computing the domain separator.✨ AI |
| verifyingContract | address | Address used as the verifying contract in the domain separator.✨ AI |
| salt | bytes32 | Salt bytes32 used as an additional domain separator field.✨ AI |
| extensions | uint256[] | Optional uint256 array for EIP-712 domain extensions or custom domain parameters.✨ AI |
Returns the collateral token address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Returns the Conditional Tokens Framework address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Returns the collateral address used by the CTF for position ID derivation
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Returns the current fee receiver address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Returns the current max fee rate in basis points
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 |
Returns the address that facilitates outcome token minting or merging
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
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 Proxy 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 Safe factory address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Safe implementation 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 an address
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _addr | address | - The Safe owner/signer address used to derive the Safe address |
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 |
Returns whether an address is an admin
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _usr | address | The address to check |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Returns whether an address is an operator
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _usr | address | The address to check |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Checks if a user is currently paused
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| user | address | - The user address to check |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Report whether the order is fully filled and the remaining unfilled amount for the given order id.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| filled | bool | filled: true if the order is fully filled, false if any amount remains unfilled.✨ AI |
| remaining | uint248 | remaining: the remaining unfilled quantity for the order, returned as a uint248 value.✨ AI |
Reports whether the CTF exchange is currently paused.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bool | True if the exchange is paused (trading and order matching disabled), false otherwise.✨ AI |
ERC-165 interface detection
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| interfaceId | bytes4 | - The interface identifier to check |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Returns the number of blocks a user must wait between pause actions.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 | Per-user pause cooldown interval expressed in blocks.✨ AI |
Return the block number when a specific user was paused in the exchange.✨ AI
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 | Block number when the user was paused; returns 0 if the user is not paused.✨ AI |
Validates that the fee does not exceed the maximum allowed rate
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| fee | uint256 | - The fee amount being charged, denominated in collateral |
| cashValue | uint256 | - The value of the trade, denominated in collateral |
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 |
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 |
Entrypoint to invalidate a preapproval
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| orderHash | bytes32 | - The hash of the order to invalidate |
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 |
|---|---|---|
| conditionId | bytes32 | - The conditionId of the market being traded |
| 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 |
| takerFeeAmount | uint256 | - The fee to be charged to the taker order |
| makerFeeAmounts | uint256[] | - The fee to be charged to the maker orders |
Handles receipt of a batch of ERC1155 tokens.
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 | The function selector for acceptance. |
Handles receipt of a single ERC1155 token.
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 | The function selector for acceptance. |
Pause trading on the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Allows a user to pause their account
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Entrypoint to set an order as preapproved
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| order | tuple | - The order to be set as preapproved |
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 operator role for the caller
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Sets a new fee receiver for the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| receiver | address | - The new fee receiver address |
Sets the maximum fee rate for trades
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| rate | uint256 | - The new max fee rate in basis points |
Sets the user pause block interval
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _interval | uint256 | - The new user pause block interval |
Unpause trading on the Exchange
Polymarket context On the CTF Exchange, this applies to binary Yes/No markets.
Allows a user to unpause their account
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 | ✓ | |
| amount | uint256 |
Emitted when the fee receiver is updated
| Name | Type | Indexed | Description |
|---|---|---|---|
| feeReceiver | address | ✓ |
Emitted when the max fee rate is updated
| Name | Type | Indexed | Description |
|---|---|---|---|
| maxFeeRate | 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 filled
Polymarket context Primary exchange activity signal: a Polymarket order was matched on-chain.
| Name | Type | Indexed | Description |
|---|---|---|---|
| orderHash | bytes32 | ✓ | |
| maker | address | ✓ | |
| taker | address | ✓ | |
| side | uint8 | ||
| tokenId | uint256 | ||
| makerAmountFilled | uint256 | ||
| takerAmountFilled | uint256 | ||
| fee | uint256 | ||
| builder | bytes32 | ||
| metadata | bytes32 |
Emitted when a preapproval is invalidated
| Name | Type | Indexed | Description |
|---|---|---|---|
| orderHash | bytes32 | ✓ |
Emitted when an order is preapproved
| Name | Type | Indexed | Description |
|---|---|---|---|
| orderHash | bytes32 | ✓ |
Emitted when a set of orders is matched
| Name | Type | Indexed | Description |
|---|---|---|---|
| takerOrderHash | bytes32 | ✓ | |
| takerOrderMaker | address | ✓ | |
| side | uint8 | ||
| tokenId | uint256 | ||
| makerAmountFilled | uint256 | ||
| takerAmountFilled | uint256 |
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 |
|---|---|---|---|
| pauser | address | ✓ |
| Name | Type | Indexed | Description |
|---|---|---|---|
| pauser | address | ✓ |
Emitted when the user pause block interval is updated
| Name | Type | Indexed | Description |
|---|---|---|---|
| oldInterval | uint256 | ||
| newInterval | uint256 |
Emitted when a user pauses their account
| Name | Type | Indexed | Description |
|---|---|---|---|
| user | address | ✓ | |
| effectivePauseBlock | uint256 |
Emitted when a user unpauses their account
| Name | Type | Indexed | Description |
|---|---|---|---|
| user | address | ✓ |