Polymarket Neg-Risk Exchange
Polygon PoS Polymarket0xc5d563a36ae78145c45a50134d48a1215220f80a
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 Neg-Risk Exchange
Matches orders for multi-outcome Polymarket markets. Filled orders use neg-risk outcome tokens, then resolution flows through the Neg-Risk Adapter before final CTF-style settlement.
Shares the same trading ABI as the CTF Exchange; the difference is the market path.
| Market type | Multi-outcome / mutually exclusive markets |
|---|---|
| Token path | Neg-risk outcome tokens |
| Resolution path | Neg-Risk Adapter + UMA Adapter |
| Compare with | Polymarket CTF Exchange |
Overview
Read Functions
Block #87,395,593 · just nowPolymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the complement of a tokenId
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| token | uint256 | - The token |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| token | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Returns the maximum fee rate for an order
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Gets the status of an order
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Polymarket proxy wallet address for an address
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Polymarket Gnosis Safe address for an address
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Gets the Safe factory implementation address
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Computes the hash for an order
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| order | tuple | - The order to be hashed |
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| usr | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| usr | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| usr | address | |
| nonce | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | address |
Returns
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Returns
| Name | Type | Description |
|---|---|---|
| isFilledOrCancelled | bool | |
| remaining | uint256 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bytes32 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| — | uint256 |
Returns
| Name | Type | Description |
|---|---|---|
| complement | uint256 | |
| conditionId | bytes32 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Returns
| Name | Type | Description |
|---|---|---|
| — | address |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| interfaceId | bytes4 |
Returns
| Name | Type | Description |
|---|---|---|
| — | bool |
Validates the complement of a tokenId
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| operator_ | address | - The new operator |
order - The order to be cancelled
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets. Batch version of order cancellation for multiple signed Polymarket orders.
Parameters
| Name | Type | Description |
|---|---|---|
| orders | tuple[] |
Fills an order
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Matches a taker order against a list of maker orders
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 |
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets.
Registers a tokenId, its complement and its conditionId for trading on the Exchange
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome 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 Neg-Risk Exchange, this applies to multi-outcome markets.
Removes the operator role for the caller Can only be called by an exiting operator
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Sets a new Proxy Wallet factory for the Exchange
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _newProxyFactory | address | - The new Proxy Wallet factory |
Sets a new safe factory for the Exchange
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome markets.
Parameters
| Name | Type | Description |
|---|---|---|
| _newSafeFactory | address | - The new Safe wallet factory |
Unpause trading on the Exchange
Polymarket context On the Neg-Risk Exchange, this applies to multi-outcome 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 | ✓ |