Who is making money at Overtime Market Protocol?

    In this Dashboard You'll learn about some basic statistics of Overtime Market as well as Top Profitable and Top Losing Traders.

    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Our main goal in this dashboard is to see who are the most profitable and In loss traders. You can see this information as well as some other profit base information in next charts

    db_img

    Hey There anon!✌🏽

    Are you into sports or what? Did you know you can use your knowledge and passion for sports and make money? Have you considered betting on your favorite teams and athletes on a decentralized non-custodial platform? It’s your lucky day my friend. Let me introduce you to Overtime Market.


    📜What is Overtime Market?

    Overtime market is a sport betting protocol on Optimism blockchain. It is decentralized and works in a non-custodial manner meaning that no centralized authority or third party is responsible and in control of your money and positions. You only need to trust a smart contract (Since Us humans are not trustworthy anymore😄) and everything else happens automatically.

    With Overtime Market you can bet on almost any important game on MMA, NFL, Baseball and Soccer. Soccer leagues includes EPL, La Liga, League 1, Serie A, Bundesliga and MLS. Soon enough there will be NBA and WNBA games live too.

    How Do Overtime Contracts Work?

    Takeaways:

    • Past two weeks was profitable in total for Overtime users.
    • 65% of the bets were winning in past two weeks.
    • The most profitable address earned 9.2k sUSD.
    • Top Profitable Users were only betting on NFL and Baseball.
    • The most losing user lost ~11k sUSD.
    • Top In loss traders were betting on England Premier League, MMA and Baseball.
    • Top In loss traders and Top profitable trader have more average bet count than total average bet count of users.
    • Baseball, EPL and MMA were the top 3 profitable Sport categories.
    db_img

    Introduction

    Metodology

    🏛Thales


    First of all, it worth mentioning that Overtime Market is built on top of Thales protocol (Which you can read more about them here on other dashboard of mine and also on their Docs.

    What is Important here is that Thales contracts and concept structures allow for parimutuel markets which includes all sort of gambling. Simply put, you need a structure for pools that work with positional situations where after a certain time or event, one position would be entitled to own the entire or part of the pool.

    🔍 Contract Structure


    This is a bit technical, so if you are not interested in how contracts work and how I’ve done this analysis feel free to go to Data & Analysis section.

    You have 4 Options to use as currency: ==sUSD, USDC, DAI and USDT.== But as said earlier sUSD is the power of this protocol and regardless of what asset you chose as currency to bet, they will all swap into sUSD eventually. Let’s assume you Bet on Usman win against Edwards (a popular MMA fight) using USDC as currency:

    1. Your USDC will be send to main contract: 0x170a5714112daEfF20E798B6e92e25B86Ea603C1
    2. Main contract initiate an interaction with Curve 3CRV pool consisting of USDC/USDT/DAI and receives Swap your collateral to sUSD
    3. There will be NFTs minted respective to the number of options that the game has. For example, There will be 3 NFTs minted for Home win, Away win and Draw for a Soccer match. and 2 NFTs for Usman and Edwards win in our case.
    4. You get the NFT of The option you bet on.
    5. Your collateral will be sent to the game contract which was preciously created by another main contract.
    6. You also pay a small fee for protocol and referrer if any.

    After match ended, based on the feed from the oracles, If you are a winner you get to:

    • Burn NFT of the winning option and claim your win amount which was tied to your bet amount.

    All information is bounded to time period of past 2 weeks from August 25th

    📌Things you’ll learn in this dashboard:

    • Finding every address’s profit using Profit Finder Tool at the Top
    • Basic Statistics regarding bet and win volume and count
    • Daily & cumulative bet and win amounts
    • Top 5 Profitable Traders, Their favorite Sports and average bet for their category
    • Top 5 In loss Traders, Their favorite Sports and average bet for their category
    • Total average bet of Overtime users
    • Top Profitable Addresses for each Sport
    • Top Profitable Sports

    For Betting Transactions:

    I took all transactions that sent collateral (sUSD, USDC, USDT, DAI) to this Contract and modified them to filter for the right logs using following clauses:

    where to_address = '0x170a5714112daeff20e798b6e92e25b86ea603c1'
    and from_address != '0x0000000000000000000000000000000000000000'
    and from_address != '0x061b87122ed14b9526a813209c8a59a633257bab'
    and origin_function_signature in ('0x6cc5a6ff', '0x8875eb84')
    and block_timestamp >= CURRENT_DATE - 14
    

    Then took these transaction hashes from fact_transactions table and decode to find their contract for betting game and amount paid for bet using:

    distinct tx_hash as tx,
    from_address as bettor,
    regexp_substr_all(SUBSTR(input_data, 11, len(input_data)), '.{64}') AS segmented_data,
    concat('0x', substr(segmented_data[0], 25, 40)) as game,
    ethereum.public.udf_hex_to_int(segmented_data[3] :: STRING) :: FLOAT as paid_bet
    from optimism.core.fact_transactions
    

    Since Collaterals have different decimals, I joined them to dim_contracts table to modify the bet amount using:

    select tx_hash, contract_address, decimals
    from optimism.core.fact_token_transfers t
    inner join optimism.core.dim_contracts c on c.address = t.contract_address
    where tx_hash in (select tx from bet_action)
    

    For Win Transaction:

    I decoded transaction of market creation from this contract using:

    select
    regexp_substr_all(SUBSTR(data, 11, len(data)), '.{64}') AS segmented_data,
    concat('0x', substr(segmented_data[0], 17, 40)) as game,
    ethereum.public.udf_hex_to_int(substr(segmented_data[17], 1, 56) :: STRING) :: FLOAT as sport_tag
    from optimism.core.fact_event_logs
    where origin_function_signature = '0xac2c957c'
    and origin_to_address = '0x2b91c14ce9aa828ed124d12541452a017d8a2148'
    and topics[0] = '0x889e2060e46779287c2fcbf489c195ef20f5b44a74e3dcb58d491ae073c1370f'
    

    This was to identify game contracts and their sport_tag. and then joined them to token_transfer table to find all the information about sending the winning amount from game contracts to the bettors using:

    Select
    distinct tx_hash,
    to_address,
    from_address,
    sport_tag,
    raw_amount/pow(10,18) as volume
    from optimism.core.fact_token_transfers t
    inner join markets m on m.game = t.from_address
    and to_address != '0x170a5714112daeff20e798b6e92e25b86ea603c1'
    

    📝Data & Analysis

    Loading...

    Some Notes:

    • In past two weeks users of Overtime Market performed well and managed to receive more than what was paid for bets.
    • Win percentage is deducted from number of bets and wins. considering the 50% win volume, it suggests that losing bets have more volume in average.