glowBgglowBg

developers

TopCut Modules

Markets

Markets are the immutable smart contracts that regular users interact with. Price predictions are placed in a Market alongside ETH to pay for the trade.
The key functionalities of Markets are:
  • Accept user predictions
  • Settle Cohorts with help of oracles to determine winners
  • Allow users to claim profits
  • Distribute a volume share to incentivize certain functions (frontend reward, affiliate reward, loyalty reward)
  • Allow keepers to claim their rewards for settling Markets
function castPrediction(address _frontend, uint256 _refID, uint256 _price, uint256 _cohortID) external payableThis is the function that users call when entering a prediction via UI.

The access point operator should add their address as first parameter _frontend to receive the 3% volume share on each trade that is facilitated through this UI.

The second parameter must be a valid referral ID. Valid is any number up to the last ID of the TopCut Affiliate NFT. This is verified in the Market smart contract. The corresponding affiliate NFT will be rewarded with Affiliate Points based on the trader’s volume.,
Frontends are encouraged to allow for affiliate links that, at minimum, inform about the refID. This allows independent frontends to tap into the existing and growing network of TopCut affiliates at no disadvantage. Predictions are not accepted without a valid refID (0 is a valid input representing the first NFT).
Price is the user’s prediction as uint256. The smart contract expects a regular 18 decimals number, i.e. a price prediction of 10,000 must arrive as 10,000 * 10^18 in the contract.
To inform users about the Trade Duration (the no-prediction phase before settlement) and Trade Size get the public variables TRADE_DURATION() and TRADE_SIZE() via the interface function TRADE_SIZE() external view returns(uint256)
function TRADE_DURATION() external view returns(uint256)
function claim() externalUsers claim all their accumulated profits with this function call. This function must be hosted on a frontend.

To inform users about their pending claims, get the public mapping claimAmounts[user] via the interface function claimAmounts(address _user) external view returns(uint256)
function settleCohort() externalThis is a backend function for keepers and is not mandatory for frontend integrations.

Keepers (bots) are incentivized to call this function to settle the active cohort. It retrieves the oracle price and determines the winners of the Cohort, who can then claim their profit anytime.
function claimKeeperReward(address _recipient, uint256 _amountETH) externalThis backend function allows keepers to claim their pending rewards from settling Cohorts.

TopCut Logo

legal

Connect

TwitterDiscord

© 2025 TopCut Finance. All rights reserved.