<h1 style="text-align: center">Oracly V1 Protocol</h1> # Abstract **Oracly Protocol** is a decentralized prediction market maker on the [Polygon (PoS) ↗](https://polygon.technology/polygon-pos) network. It gamifies the essential skill of trading - forecasting crypto prices - making markets accessible, exciting, and rewarding for everyone. Players compete in short, dynamic rounds to predict whether the price of an asset will go **UP**, **DOWN**, or remain the same (**ZERO**), directly placing deposits and withdrawing payouts from prize pools. **Oracly Protocol** utilizes reliable [Chainlink ↗](https://chain.link/) price feeds to create a secure, permissionless, and non-custodial environment. # Introduction Traditional crypto trading, with its complexities and demanding long-term strategies, can be intimidating for many potential users. **Oracly Protocol** breaks down these barriers by transforming crypto trading into an engaging and accessible prediction game. Its simplified format, centered around three core choices, opens the world of crypto to a much wider audience. * **Complexity vs Gamification**: Instead of complex and long-term trading routines and strategies, **Oracly Protocol** offers short rounds where you predict if an asset's price will go **UP**, **DOWN**, or stay the same (**ZERO**). Players directly contribute to prize pools, and winners withdraw their rewards at the end of each round. * **Volatility vs Prediction**: **Oracly Protocol** turns market volatility into the focus of the game. Payouts are determined by the direction of price change, not the size of the movement. * **Security plus Transparency**: Powered by the [Polygon (PoS) ↗](https://polygon.technology/polygon-pos) blockchain, all game rules, predictions, and payouts are transparent and unchangeable. [Chainlink Price Feeds ↗](https://data.chain.link/feeds) ensure reliable real-time data, guaranteeing fair outcomes for everyone. # Gameplay **Oracly Protocol** offers a unique prediction game with continuous rounds. Players predict asset price movements and win a share of the [Prize Pool](#Prize-Pool) if their predictions are correct. ## Round A self-contained prediction contest where players predict whether the price of a selected asset will go **UP**, **DOWN**, or remain the same (**ZERO**) within a short timeframe. Rounds progress through [Entry](#Entry-Phase-1-minute), [Round](#Round-Phase-1-minute-2-minutes-3-minutes-5-minutes), [Settlement](#Settlement-Phase-limited-to-24-hours), [Payout](#Payout-Phase-not-limited-in-time), and [Archive](#Archive-Phase-permanent) phases. At the end of the short round Player with [Prediction](#Prediction) matching actual price movement share the [Prize Pool](#Prize-Pool) proportionally to their deposit. ### Entry Phase: (1 minute) Players place their [Predictions](#Prediction) (**UP**, **DOWN**, **ZERO**) with **deposits** for the selected asset's price movement. This phase determines the [Entry Price](#Entry-Price) that all predictions are based on, and the minimum **deposit** size depends on the [Game Level](#Game-Level). * Begins at the **Start Date**. * Ends at the **Lock Date**. * Player makes deposits for chosen outcomes: * **UP**: [Exit Price](#Exit-Price) will be higher than [Entry Price](#Entry-Price). * **DOWN**: [Exit Price](#Exit-Price) will be lower than [Entry Price](#Entry-Price). * **ZERO**: [Exit Price](#Exit-Price) will be identical to [Entry Price](#Entry-Price). * **IMPORTANT:** * Players can make multiple deposits for their chosen outcome, increasing their share of the [Prize Pool](#Prize-Pool) in case of victory. * Players can make deposits per each outcome, increasing their probability of victory. * **Minimum deposit** amounts are determined by [Game Level](#Game-Level): | Game Level | Minimum Deposit | |---|---| | Bronze | 1 USDC | | Silver | 10 USDC | | Gold | 100 USDC | * **Maximum deposit** amounts is unlimited. * Players **cannot** place a [Prediction](#Prediction) on the **NO CONTEST** outcome. #### Entry Price * The asset's price captured from the [Feed](#Feed-Chainlink-Price-Feed) latest prices during this phase, serving as the reference point for [Predictions](#Prediction). * Set by the first player to place a [Prediction](#Prediction) from [Feed](#Feed-Chainlink-Price-Feed) latest price, if valid. * **IMPORTANT:** To be valid, the latest price must meet these criteria: 1) Dated **on** or **after** the [Round](#Round)'s **Start Date**. 2) Dated **before** the [Round](#Round)'s **Lock Date**. 3) Has a value greater than zero. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) #### Exit Price * The final asset price point within a [Round Phase](#Round-Phase-1-minute-2-minutes-3-minutes-5-minutes) determines the [Outcome](#Outcome). * Verified by the first player to **withdraw** reward or refund providing [Feed](#Feed-Chainlink-Price-Feed)'s final price point of the [Round](#Round), if valid. * **IMPORTANT:** To be valid, the price point must meet criteria: 1) Dated **before** the round's **End Date**. 2) Dated **on** or **after** the round's **Lock Date**. 3) Has the next sequential price point from the [Feed](#Feed-Chainlink-Price-Feed) dated **on** or **after** the round's **End Date**. 4) Comes from the same [Chainlink Aggregator](#Chainlink-Aggregator) as the [Entry Price](#Entry-Price). 5) Is less than double the value of the [Entry Price](#Entry-Price). 6) Is less than double the value of the next sequential price point from the [Feed](#Feed-Chainlink-Price-Feed). [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) 7) Has a value greater than zero. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) 8) **Oracly Protocol**'s design ensures that there will be either **one valid price point** from the [Feed](#Feed-Chainlink-Price-Feed) per round to determine the [Outcome](#Outcome) or **none** (resulting in a **NO CONTEST**). [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) ### Round Phase: (1 minute, 2 minutes, 3 minutes, 5 minutes) During the **Round Phase**, funds is locked and players wait for the [Outcome](#Outcome). [Predictions](#Prediction) can't be changed. The [Prize Pool](#Prize-Pool) is finalized, and Players await the [Feed](#Feed-Chainlink-Price-Feed) to publish the final price point of the phase, which will determine the round's [Outcome](#Outcome). * Starts at the **Lock Date**. * Ends: * When the [Feed](#Feed-Chainlink-Price-Feed) publishes the final price point by the **End Date**. * Immediately if a **NO CONTEST** occurred. (all predicts the same [Outcome](#Outcome)) * After **24 hours** with no new price points published by the [Feed](#Feed-Chainlink-Price-Feed), resulting in **NO CONTEST**. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) * Players' deposits are locked-in, forming the [Prize Pool](#Prize-Pool). No more deposits can be made. * Players await the [Feed](#Feed-Chainlink-Price-Feed) to publish the final price point of the phase to determine the round's [Outcome](#Outcome) and withdraw their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund). * **IMPORTANT:** * To confirm a price point as the final one by the **End Date**: * It must be dated before the round's **End Date** * The next sequential price point from the [Feed](#Feed-Chainlink-Price-Feed) must be dated **on** or **after** the round's **End Date**. * A [Round](#Round) is considered **NO CONTEST** at the beginning of this phase if all [Predictions](#Prediction) are for the same [Outcome](#Outcome). In this scenario, deposits becomes claimable for [Refund](#Refund). * The round is considered **NO CONTEST** if the [Feed](#Feed-Chainlink-Price-Feed) fails to publish a price within **24 hours**. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) ### Settlement Phase: (limited to 24 hours) The [Feed](#Feed-Chainlink-Price-Feed) publishes final price point of the [Round Phase](#Round-Phase-1-minute-2-minutes-3-minutes-5-minutes) and the [Outcome](#Outcome) becomes publicly known. However, [Outcome](#Outcome) requires protocol's verification to become permanent. The first player to **withdraw** their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund) performs this verification. * Starts when the [Feed](#Feed-Chainlink-Price-Feed) publishes the final price point of the [Round Phase](#Round-Phase-1-minute-2-minutes-3-minutes-5-minutes), making the [Outcome](#Outcome) publicly known. * Ends when the first player withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund), verifying the [Outcome](#Outcome). * **IMPORTANT:** * To withdraw a reward or refund during this phase, players must verify the publicly known [Outcome](#Outcome) by providing the [Exit Price](#Exit-Price) from the [Feed](#Feed-Chainlink-Price-Feed). * The round is considered **NO CONTEST** if no players withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund) within **24 hours**. * The round is considered **NO CONTEST** if the [Feed](#Feed-Chainlink-Price-Feed) fails to publish [Exit Price](#Exit-Price) within **24 hours**. * **Examples**: * The [Feed](#Feed-Chainlink-Price-Feed) publishes an [Exit Price](#Exit-Price) indicating the [Outcome](#Outcome) is **DOWN**. A player predicting **DOWN** initiates a withdrawal and provides this [Exit Price](#Exit-Price), verifying the [Outcome](#Outcome). ### Payout Phase (not limited in time) Players with winning predictions withdraw their share of the [Prize Pool](#Prize-Pool), with payouts based on their deposit size. Protocol collects **1%** of [Oracly Commission](#Oracly-Commission). If the round was **NO CONTEST**, players withdraw [Refunds](#Refund). * Starts when the first player withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund). * Ends when the last player withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund). * **Winning Payouts:** [Prediction Reward](#Prediction-Reward) * Players with predictions matching the actual price movement [Outcome](#Outcome) withdraw their share of the [Prize Pool](#Prize-Pool). * **UP:** [Exit Price](#Exit-Price) is higher than [Entry Price](#Entry-Price). * **DOWN:** [Exit Price](#Exit-Price) is lower than [Entry Price](#Entry-Price). * **ZERO:** [Exit Price](#Exit-Price) is identical to [Entry Price](#Entry-Price) (difference is zero). * [Reward](#Prediction-Reward) is proportional to the size of a player's deposit relative to other winning deposits. * **Oracly Protocol** collects a 1% commission on payouts, distributed among [Stakers](#Stakers) and [Mentors](#Mentors). * **NO CONTEST:** [Refund](#Refund) * All [Predictions](#Prediction) in a [Round](#Round) are on the same [Outcome](#Outcome). * No [Predictions](#Prediction) match the actual [Outcome](#Outcome). * The [Feed](#Feed-Chainlink-Price-Feed) doesn't publish an [Exit Price](#Exit-Price) within **24 hours**. * No Players withdraw [Prediction Reward](#Prediction-Reward) within **24 hours**. * **IMPORTANT:** * If the [Round](#Round) considered **NO CONTEST**, deposits becomes claimable for [Refund](#Refund). * **Precision** of the price points in the [Feed](#Feed-Chainlink-Price-Feed) is 8 decimals. ### Archive Phase (permanent) Once a round enters the **Archive Phase**, it's permanently closed, signifying the end of its lifecycle. All outcomes, predictions, and payouts are finalized and recorded on the blockchain for transparency and historical reference. # Oracly Protocol Contracts --- [**OraclyV1 ↗**](https://polygonscan.com/address/0xf41c3bec833bf3b05834b8459ee70816d167cf37): **0xf41c3bec833bf3b05834b8459ee70816d167cf37** [**MetaOraclyV1 ↗**](https://polygonscan.com/address/0x9acff323637f765fa770c3d1cdbc76bfbfdb4fa8): **0x9acff323637f765fa770c3d1cdbc76bfbfdb4fa8** [**StakingOraclyV1 ↗**](https://polygonscan.com/address/0x55135638b6301a700070bf08c9b0ef67caf875e4): **0x55135638b6301a700070bf08c9b0ef67caf875e4** [**MentoringOraclyV1 ↗**](https://polygonscan.com/address/0xda4a5d10fd2525b83558f66a24c0c012d67d45a5): **0xda4a5d10fd2525b83558f66a24c0c012d67d45a5** [**ORCY ↗**](https://polygonscan.com/address/0x8def651cbf7deaa35835ed6d4a4d4daabb8b898b): **0x8def651cbf7deaa35835ed6d4a4d4daabb8b898b** [**DEMO ↗**](https://polygonscan.com/address/0xde41431172704248b723a36d00044f8132fa444e): **0xde41431172704248b723a36d00044f8132fa444e** [**Vesting Growth ↗**](https://polygonscan.com/address/0x39ee332b91dc58d6ca668bf874df539cae158016): **0x39ee332b91dc58d6ca668bf874df539cae158016** [**Vesting Team ↗**](https://polygonscan.com/address/0xd8708ea8214da5a170edac19d9a50c0fffd1b5dc): **0xd8708ea8214da5a170edac19d9a50c0fffd1b5dc** [**Vesting Seed ↗**](https://polygonscan.com/address/0xdd084b37837eb0da72abd817375045d22bf73e93): **0xdd084b37837eb0da72abd817375045d22bf73e93** --- ## OraclyV1.sol This contract is the core of the **Oracly Protocol**'s decentralized prediction game. * **Rounds Genesis**: Creates [Rounds](#Round), defining their **Start Date** and **End Date**, tracks player predictions, and current phases ([Entry](#Entry-Phase-1-minute), [Round](#Round-Phase-1-minute-2-minutes-3-minutes-5-minutes), [Settlement](#Settlement-Phase-limited-to-24-hours), [Payout](#Payout-Phase-not-limited-in-time), [Archive](#Archive-Phase-permanent)). * **Chainlink Integration**: Communicates with the [Feeds](#Feed-Chainlink-Price-Feed) to securely obtain real-time asset prices, which are used to determine [Outcomes](#Outcome). * **Round Settlement**: Verifies [Outcomes](#Outcome) of each round (**UP**, **DOWN**, **ZERO**, or **NO CONTEST**) based on comparing [Entry Price](#Entry-Price) and [Exit Price](#Exit-Price) from the Chainlink [Feed](#Feed-Chainlink-Price-Feed). * **Payout & Refund Logic**: Calculates players' winnings based on their deposits and the round [Outcome](#Outcome). Facilitates refunds in the event of a **NO CONTEST** scenario. ## MetaOraclyV1.sol Serves as the control point for **creating new games** in the **Oracly Protocol**. Provides the [Oracly Team](#Oracly-Team) with the ability to **block** abused games. * **Game Registry**: Maintains a list of active games with their parameters (schedule, price feed address). * **Game Creation**: Provides functionality for authorized users the [Oracly Team](#Oracly-Team) to create and configure new games. * **Game Blocking**: Allows the [Oracly Team](#Oracly-Team) to **block** specific games in cases of suspected manipulation or technical issues. **IMPORTANT** - If a **Game** become **blocked**, any [Rounds](#Round) with [Unverified](#Unverified-Outcome) [Outcome](#Outcom) will automatically be considered **NO CONTEST**. ## StakingOraclyV1.sol Facilitates the core staking functionality of the **Oracly Protocol**, enabling **ORCY** token holders to lock their tokens for [Staking Reward](#Staking-Reward). * **Epoch Management**: Defines and tracks staking periods (epochs), ensuring structured reward distribution cycles. * **Deposit Tracking**: Manages pending and active stake deposits, providing clarity for [Stakers](#Stakers) regarding their status. * **Reward Mechanics**: Calculates [Staking Reward](#Staking-Reward) based on deposited amounts and distributes them to [Stakers](#Stakers). * **ORCY Acquisition**: Enabling users to acquire **ORCY** tokens for staking purposes through the **[Buy4Stake](#Buy4Stake)** functionality. ## MentoringOraclyV1.sol Establishes a mentorship system within the **Oracly Protocol**, connecting experienced players ([Mentors](#Mentors)) with those seeking guidance ([Proteges](#Proteges)). Incentivizes skilled players to share their knowledge by offering [Mentoring Rewards](#Mentoring-Reward) based on their [Proteges'](#Proteges) winnings. * **Mentor Registry**: Maintains a list of [Mentors](#Mentor). * **Relationship Management**: Tracks active **mentor-protege** pairings and their associated [Mentoring Rewards](#Mentoring-Reward) eligibility. * **Reward Distribution**: Calculates and distributes [Mentoring Rewards](#Mentoring-Reward) to [Mentors](#Mentors) based on their [Proteges'](#Proteges) winnings, using a transparent percentage-based system. [Mentoring Reward](#Mentoring-Reward) is **0.25%** of [Prediction Reward](#Prediction-Reward). ## DEMO.sol The **DEMO** contract acts as a faucet, dispensing a free allotment of [DEMO](#DEMO) tokens for **demonstration** of gameplay. It implements a limit to prevent abuse. * **Token Allocation**: Distributes a fixed amount of **1,000** [DEMO](#DEMO) tokens per eligible request. * **Wallet Limits**: Enforces a maximum cap of **10,000** [DEMO](#DEMO) tokens **per wallet** address to maintain balance. * **ERC-20**: Provides basic [ERC-20 ↗](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) token functionality for the [DEMO](#DEMO) token, enabling users to transfer it to other wallets and check their balances. ## ORCY.sol The **ORCY** token is native token of the **Oracly Protocol**, enabling staking, governance, and facilitating reward distribution. Enables users to lock their **ORCY** tokens, earning a share of the protocol's collected [Oracly Commissions](#Oracly-Commission). Empowers **ORCY** holders to vote on proposals that shape the future direction of the protocol. Implements the standard [ERC-20 ↗](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) functionality, allowing for seamless transfers and management of **ORCY** tokens. * **Staking**: **ORCY** holders can lock their tokens in the [Oracly Staking Platform](#Oracly-Staking-Platform) for [Staking Rewards](#Staking-Rewards). * **Governance**: Empowers holders to propose and vote on key decisions, enabling decentralized governance and shaping the evolution of **Oracly Protocol**. * **Minting**: Controls the creation of **ORCY** tokens according to the [ORCY Economy](#ORCY-Economy), maintaining value for holders. * **ERC-20**: Provides basic ERC-20 token functionality for the **ORCY** token, enabling users to transfer **ORCY** to other wallets and check their balances. ## VestingOraclyV1.sol This contract implements a vesting mechanism for the **ORCY** token within the **Oracly Protocol** ecosystem. It ensures a gradual and controlled release of **ORCY** tokens to a designated beneficiary over a predefined vesting period. It ensures that key contributors or stakeholders receive their allocated **ORCY** tokens in a manner that aligns with the long-term goals of the project. This approach helps to foster commitment, incentivize continued participation, and maintain the stability of the **ORCY** token's value. * **Vesting Duration**: The complete vesting period spans 26 months. * **Cliff Period**: A 6-month cliff is enforced, during which no tokens are released to the beneficiary. * **Gradual Release**: After the cliff period, tokens are released linearly over the remaining 20 months. # Oracly Team The **Oracly Team** is a dedicated group of engineers and visionaries behind the creation of the **Oracly Protocol**. Their expertise and passion drive the development and growth of our innovative prediction platform. **Mykhailo Nakonechnyi (Core Contributor)**: Leads the strategic direction of the **Oracly Protocol**, ensuring its vision aligns with market needs and technological advancements. **Romain Potochevscky (Core Contributor)**: Shapes the visual identity and user experience of **Oracly**, creating an engaging and intuitive platform. **Dmitry Kondratenko (Core Contributor)**: Translates **Oracly**'s concepts into robust code, ensuring the platform's functionality, security, and scalability. # ORCY Token **ORCY** is the staking and governance token of the **Oracly Protocol**, empowering community participation and profit distribution within the platform. ## Staking **Oracly Protocol** offers a rewarding staking mechanism for **ORCY** token holders. By locking their **ORCY** tokens in the [Staking Contract](#StakingOraclyV1sol), [Stakers](#Staker) earn a share of collected [Oracly Commissions](#Oracly-Commission) and gain voting power to shape the protocol's future: * **Rewards**: [Stakers](#Staker) earn a share of the **USDC** ([Oracly Commissions](#Oracly-Commission)) collected by the protocol. [Staking Rewards](#Staking-Rewards) are distributed proportionally based on the size of a [Staking Deposit](#Staking-Deposit) relative to the overall [Staking Pool](#Staking-Pool). * **Flexibility**: Users can withdraw their staked **ORCY** following an [Staking Epoch](#Staking-Epoch) (7 days) after initiating an unstaking request. * **Governance**: [Stakers](#Staker) gain voting power to participate in decisions that shape the **Oracly Protocol**' future. [Stakers](#Staker) with at least 1% of the **ORCY** total supply staked are able to join the [Presidium](#Presidium) and gain the right to submit proposals. ### Staking Process 1. **Staking**: * **Buy4Stake**: User pays [Oracly Commission](#Oracly-Commission) in **USDC** **1:1** to the **ORCY** deposit they want to stake in the current [Staking Epoch](#Staking-Epoch), this epoch is deposit' [Entry Epoch](#Entry-Epoch). * **Direct Deposit**: User deposits **ORCY** in the current [Staking Epoch](#Staking-Epoch), this epoch is deposit' [Entry Epoch](#Entry-Epoch). * **IMPORTANT**: The [Staking Deposit](#Staking-Deposit) remains pending until the end of [Entry Epoch](#Entry-Epoch) (approx. 7 days). 5. **Increase** (Optional): [Stakers](#Staker) can add **ORCY** to their pending [Staking Deposit](#Staking-Deposit) at any time during [Entry Epoch](#Entry-Epoch). 6. **Withdraw** (Optional): [Stakers](#Staker) can withdraw their pending [Staking Deposit](#Staking-Deposit) at any time during [Entry Epoch](#Entry-Epoch). 7. **Rewards**: [Stakers](#Staker) starts earning [Staking Rewards](#Staking-Rewards) in **USDC** from [Staking Epoch](#Staking-Epoch) following [Entry Epoch](#Entry-Epoch). [Stakers](#Staker) can withdraw accrued rewards each [Staking Epoch](#Staking-Epoch) while their stake remains active. 8. **Unstake**: An unstaking request can be submitted during any [Staking Epoch](#Staking-Epoch), this epoch is deposit' [Exit Epoch](#Exit-Epoch). [Staking Epoch](#Staking-Epoch) remains active, and the user can continue withdrawing rewards until the end of the epoch. 9. **Withdraw ORCY**: [Stakers](#Staker) can withdraw their unstaked **ORCY** deposit. **IMPORTATNT**: [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) - [Staker](#Staker) can withdraw their pending **ORCY** deposit at any time. - [Staker](#Staker) cannot stake a new deposit in the same [Staking Epoch](#Staking-Epoch) in which a pending deposit was unstaked. ## Governance [Stakers](#Staker) gain voting power to participate in decisions that shape the **Oracly Protocol**' future. [Stakers](#Staker) with at least 1% of the **ORCY** total supply staked are able to join the [Presidium](#Presidium) and gain the right to submit proposals. **Voting**: All [Stakers](#Staker) have a **48-hour** window to **vote** on proposals submitted by [Councilors](#Councilor). **Proposals**: Only [Stakers](#Staker) holding 1% or more of the total **ORCY** supply may join the [Presidium](#Presidium) as [Councilors](#Councilor), gaining the right to submit **proposals**. **Execution**: A proposal with more **Support** than **Oppose** votes after **48 hours** and exceeding the **quorum** requirement is considered **Approved** by [Stakers](#Staker) and ready for **execution** by [Presidium](#Presidium). ## Acquiring ORCY The **Oracly Protocol** offers a streamlined process to purchase **ORCY** and immediately begin staking through the [Buy4Stake](#Buy4Stake) feature on the [Oracly Staking Platform](#Oracly-Staking-Platform) ### Buy4Stake Process * **Buy**: User pays the [Oracly Commissions](#Oracly-Commission) in **USDC**, calculated as a 1:1 ratio against the desired **ORCY** deposit amount. The **ORCY** tokens are sourced from a dedicated [Buy4Stake](#Buy4Stake) pool of **5,000,000 ORCY** (**50% of the total supply**), allocated at the time of token generation. * **Stake**: The [Staking Contract](#StakingOraclyV1sol) automatically stakes the acquired **ORCY** deposit from the [Buy4Stake](#Buy4Stake) pool. * **Rewards**: Rewards start accruing following the [Entry Epoch](#Entry-Epoch) (approx. 7 days) and can be withdrawn at any time thereafter, as [Oracly Commissions](#Oracly-Commission) are collected. ## ORCY Economy ### **Total Supply**: 10,000,000 ORCY (100%) * **Growth Fund (20%)** * **Staked**: 1,000,000 ORCY * **Vesting**: 1,000,000 ORCY * **Team Fund (20%)** * **Paid Out**: 1,000,000 ORCY * **Vesting**: 1,000,000 ORCY * **Seed Investors (10%)** * **Paid Out**: 500,000 ORCY * **Vesting**: 500,000 ORCY * **Public Sale - Buy4Stake (50%)** * **Available**: 5,000,000 ORCY ### Growth Fund (20%) This fund is strategically allocated to fuel initiatives that drive the **Oracly Protocol** long-term growth, stability, and market reach. - **Essential Infrastructure**: Covering core operational costs such as servers and domains to ensure platform reliability. - **Protocol Development**: Funding continuous upgrades, new features, and enhancements that improve user experience and expand protocol capabilities. - **Tech Support**: Maintaining a robust support system to address user needs and ensure a seamless experience. - **Strategic Partnerships**: Establishing collaborations and integrations that extend Oracly's ecosystem and increase its value proposition. - **Marketing and Outreach**: Raising awareness, attracting new users, and fostering a vibrant community around the protocol. #### Unlocking Schedule: * **50% (1,000,000 ORCY)** is immediately staked in the [Oracly Staking Platform](#Oracly-Staking-Platform) upon token generation. This generates rewards, creating a self-sustaining funding source for growth initiatives. * **50% (1,000,000 ORCY)** unlocks gradually over 20 months (50,000 ORCY/month), ensuring a steady flow of resources. ### Team Reward (20%) This allocation recognizes the [Oracly Team](#Oracly-Team) for their exceptional work in conceptualizing and successfully launching the **Oracly Protocol** **V1**. Their dedication and passion over the past two years were instrumental in bringing this project to fruition. #### Unlocking Schedule: * **50% (1,000,000 ORCY)** unlocks immediately upon token generation, acknowledging the team's significant efforts leading up to the protocol's launch. * **50% (1,000,000 ORCY)** of the **Team Reward** unlocks monthly over 20 month (50,000 ORCY / month). ### Seed Investors (10%) This allocation is reserved for strategic partners who played a pivotal role in the **Oracly Protocol**'s early development. Their support extends beyond financial investments. * **Industry Expertise**: Deep knowledge and insights to guide strategic decisions. * **Valuable Connections**: Extensive networks to facilitate partnerships and collaborations. * **Mentorship**: Guidance and support to accelerate the **Oracly Protocol**'s growth trajectory. #### Unlocking Schedule: * **50% (500,000 ORCY)** of the Seed Investors allocation unlocks immediately upon token generation. * **50% (500,000 ORCY)** unlocks gradually over 20 months (25,000 ORCY/month), ensuring a long-term alignment of interests between the seed investors and the Oracly Protocol. ### Public Sale "Buy4Stake" (50%) A significant **5,000,000 ORCY (50% of the total supply)** is dedicated to the [Buy4Stake](#Buy4Stake) feature, offering a streamlined path to acquiring **ORCY** and becoming part of the **Oracly Protocol** ecosystem. **Buy4Stake Process:** * **Buy**: User pays the [Oracly Commissions](#Oracly-Commission) in [USDC](#USDC), calculated as a **1:1** ratio against the desired **ORCY** deposit amount. The **ORCY** tokens are sourced from a dedicated [Buy4Stake](#Buy4Stake) pool of 5,000,000 ORCY (50% of the total supply), allocated at the time of token generation. * **Stake**: The [Staking Contract](#StakingOraclyV1sol) automatically stakes the acquired **ORCY** deposit from the [Buy4Stake](#Buy4Stake) pool. * **Rewards**: Rewards start accruing following the [Entry Epoch](#Entry-Epoch) (approx. 7 days) and can be withdrawn at any time thereafter, as [Oracly Commissions](#Oracly-Commission) are collected. #### Unlocking Schedule: * **100% (5,000,000 ORCY)** is available immediately upon token generation, ensuring accessibility for interested participants. # Oracly Risks Mitigation **Oracly Protocol** prioritizes security and fairness, so implemented a multi-faceted approach to mitigation. The protocol implements cirtain measures to address potential risks, ensuring the platform's integrity. ### False Outcome A malicious player could attempt to manipulate a round's [Outcome](#Outcome) by submitting a false price point. This undermines the fairness of the **Oracly Protocol**. #### Mitigation * **Price Autentication**: Verifuies price **autenticity** with [Chainlink Aggregator](#Chainlink-Aggregator). * **Date Validation**: Only the final price point within the round's **Lock Date** and **End Date** is valid. * **Realistic Value Checks**: Verifies that price points fall within expected ranges for the asset, filtering out potentially erroneous data. * **Sequential Consistency**: Guarantees price points are sequentially increasing within the same underlying [Chainlink Aggregator](#Chainlink-Aggregator). * **Zero-Value Protection**: Non-zero price points are enforced, preventing erroneous submissions that could disrupt calculations. ### Price Feed Validity External price feeds could become inaccurate or manipulated. False or corrupted price point data could be received as a valid price point from the [Feed](#Feed-Chainlink-Price-Feed). #### Mitigation * **Trusted Feed**: **Oracly Protocol** uses trusted [Chainlink Price Feeds](#Feed-Chainlink-Price-Feed) with a [Low Market Risk ↗](https://docs.chain.link/data-feeds/selecting-data-feeds/#-low-market-risk-feeds) designation, ensuring the highest level of reliability and security. ### Underlying Price Feed Aggregator Swap [Chainlink Aggregators](#Chainlink-Aggregator) can occasionally undergo swaps due to maintenance, updates, or unforeseen circumstances. This could lead to inconsistencies if the **Oracly Protocol** switches to a new aggregator mid-round. #### Mitigation * **Aggregator Consistency**: The **Oracly Protocol** mitigates this risk by recording the initial [Chainlink Aggregators](#Chainlink-Aggregator) at the start of each round. Even if a swap occurs, the protocol continues to use the original aggregator for all price calculations within that round. This ensures all price points used to determine the [Outcome](#Outcome) come from a single, consistent source. ### L2 Sequencer Outage (Polygon) Temporary outages on the **Polygon PoS L2 Sequencer** could interrupt the flow of updated price data from [Chainlink Price Feeds](#Feed-Chainlink-Price-Feed). This stale data creates a risk of unreliable outcomes in **Oracly Protocol** rounds. #### Mitigation * **NO CONTEST Declaration**: If [Chainlink Price Feeds](#Feed-Chainlink-Price-Feed) stale, any unverified rounds will automatically be considered **NO CONTEST**. This ensures that no player's predictions are unfairly affected by inaccurate data. * **24-Hour Timeframe**: The **NO CONTEST** declaration will occur within 24 hours after a round's scheduled **End Date** if price data remains unavailable. **IMPORTANT**: In the event of a **NO CONTEST**, all player deposits within that round become eligible for [Refunds](#Refund). ### Fatal Errors Fatal errors represent a severe mismatch between **Oracly Protocol**' expected state and the actual funds within its contracts. These errors jeopardize the security and reliability of the platform. #### Potential Causes: * **Calculation Errors**: Miscalculations in reward distribution or payout amounts. * **External Exploit**: A vulnerability in the code is exploited leading to a discrepancy in funds. * **Unexpected Conditions**: Unforeseen events in the L1 blockchain (Ethereum) or L2 (Polygon) that interfere with fund tracking. #### Error Events: * **OraclyV1.sol** `FATAL_EVENT_INSUFFICIENT_PRIZEFUNDS` - Not enough funds to cover player payout or refund. * **MentoringOraclyV1.sol** `FATAL_EVENT_INSUFFICIENT_PRIZEFUNDS` - Not enough funds to cover mentor rewards. * **StakingOraclyV1.sol** `FATAL_EVENT_INSUFFICIENT_REWARDFUNDS` - Not enough funds to distribute staking rewards. `FATAL_EVENT_INSUFFICIENT_STAKEFUNDS` - Not enough funds to process a staked token withdrawal. #### Mitigation **Immediate Blocking**: Affected contracts automatically block further user deposits, preventing the situation from worsening. **Transparent Communication**: The protocol emits clear `FATAL_EVENT_*` signals, enabling users and developers to understand the specific error and its potential impact. **NO CONTEST**: In the event of a **Fatal Error** affecting a game round, the affected rounds are automatically declared **NO CONTEST**. This ensures that no player's predictions are unfairly impacted due to the error. ### Delayed Epoch Start If no stakers register for a newly scheduled [Staking Epoch](#Staking-Epoch), **Oracly Protocol** delays the epoch's start indefinitely until [Stakers](#Stakers) participate. #### Mitigation 1) **Withdraw Pending Deposits**: Allowing users to withdraw their pending **ORCY** deposits in case they can't wait for an uncertain start date. 1) **One Deposit Per Epoch**: Limiting users to making a single deposit within a staking Epoch prevents potential exploits by blocking the re-stake of the same deposit. 2) **Continue Existing Rewards**: Ensuring [Stakers](#Stakers) with active deposits continue to earn [Staking Rewards](#Staking-Rewards) prevents them from being unfairly affected by a delayed start. ### Circular Mentoring The mentoring system could potentially allow for circular relationships, where a mentor becomes the protege of their own protege (directly or indirectly), creating a loop. This could potentially lead to abuse. #### Mitigation * **Role Restriction**: The **Oracly Protocol** explicitly prevents **Mentors** from becoming **Proteges**. This rule eliminates the possibility of circular mentoring relationships. ## Audits History - https://docs.fuzz.land/Oracly-Auditing-Report-V2-ea98e97ff9e54ea9add602e222512851 - https://docs.fuzz.land/Oracly-Audit-Report-cc4ca80860ff4c5f8601996bd740f9a4 # Oracly Rewards Formulas ### Reward Formulas These formulas help to calculate exact amount of [Prediction Reward](#Prediction-Reward) before reward withdrawl. By calculating the **Reward (R(d))** and **Profit Percentage (PP(d))**, Player knows the exact amount of his [Prediction Reward](#Prediction-Reward) payout. #### Reward (R(d)) $$ R(d) = P \cdot \frac{d}{p} \cdot (1 - C) $$ * **P (Prize Pool):** The total amount of deposited funds from all players in the round. * **p (Positional Pool):** The sum of deposits for the specific [Outcome](#Outcome) (**UP**, **DOWN**, **ZERO**) player predicting. * **d (Deposit):** The amount of **USDC** palyer are considering depositing. * **C (Oracly Commission):** The percentage fee (1%) Oracly Protocol takes from winning payouts. #### Profit Percentage (PP(d)) $$ PP(d) = \frac{R(d)}{d} - 1 $$ * **d (Deposit):** The amount of **USDC** palyer deposited. * **R (Reward):** per deposit amount #### Example: * Prize Pool ( P ): **1000 USDC** * Positional Pool UP ( p ): **200 USDC** * Deposit ( d ): **50 USDC** * Commission ( C ): **0.01 (1%)** ``` PR(50) = 1000 * 50 / 200 * (1 - 0.01) = 247.5 USDC PPP(50) = 247.5 / 50 - 1 = 3.95 = 395% ``` Deposit: **50 USDC** Reward: **247.5 USDC +395%** ### Potential Reward Formulas These formulas help to estimate potential [Prediction Reward](#Prediction-Reward) per deposit amount before entering the round. By calculating the **Potential Reward (PR(d))** and **Potential Profit Percentage (PPP(d))**, Player can make more informed decisions about deposit amount and prediction choices. #### Potential Reward (PR(d)) $$ PR(d) = (P + d) \cdot \frac{d}{p + d} \cdot (1 - C) $$ * **P (Prize Pool):** The total amount of deposited funds from all players in the round. * **p (Positional Pool):** The sum of deposits for the specific Outcome (UP, DOWN, ZERO) player predicting. * **d (Deposit):** The amount of USDC palyer are considering depositing. * **C (Oracly Commission):** The percentage fee (1%) Oracly Protocol takes from winning payouts. #### Potential Profit Percentage (PPP(d)) $$ PPP(d) = \frac{PR(d)}{d} - 1 $$ * **d (Deposit):** The amount of USDC palyer are considering depositing. * **PR (Potential Reward):** per deposit Example: * Prize Pool ( P ): **1000 USDC** * Positional Pool UP ( p ): **200 USDC** * Deposit ( d ): **50 USDC** * Commission ( C ): **0.01 (1%)** ``` PR(50) = (1000 + 50) * 50 / (200 + 50) * (1 - 0.01) = 207.9 USDC PPP(50) = 207.9 / 50 - 1 = 3.158 = 315.8% ``` Deposit: **50 USDC** Potential Reward: **207.9 USDC +315.8%** ----- # Example: A Full Round Scenario This example illustrates a complete [Oracly Protocol Round](#Round) with four players, demonstrating how predictions, deposits, and rewards work. It also highlights the flow of information in simplified terms, focusing on player actions and blockchain confirmations. > *We'll refer to the confirmed state of the blockchain as "Public Information."* Round: * Asset: **BTC/USD** (the price of **Bitcoin** in **US Dollars**) * Duration: **1 minute** * Game Level: **Silver** (minimum deposit **10 USDC**) * Start Date: May 1st, 2024 at **10:00:00** AM * Lock Date: May 1st, 2024 at **10:01:00** AM * End Date: May 1st, 2024 at **10:02:00** AM Players: * UpBob * UpInna * DownOw * ZeroIda The following timeline will show how the round progresses, with each player's prediction, deposit amount, and the resulting impact on potential rewards for each Outcome (**UP**, **DOWN**, **ZERO**). ## Entry Phase (60 seconds) ### Start Date: May 1st, 2024 at 10:00:00 AM #### May 1st, 2024 at 10:00:10 AM **UpBob** cannot estimate [Potential Reward](#Potential-Reward-PRd), the [Prize Pool](#Prize-Pool) is empty. **UpBob** places minimum deposit **10 USDC** predicting **UP**. **UpBob**'s prediction will confirm [Entry Price](#Entry-Price) of the [Round](#Round). **Public Information** ``` Prize Pool: 0 USDC (total) - UP: 0 USDC - DOWN: 0 USDC - ZERO: 0 USDC ``` #### May 1st, 2024 at 10:00:20 AM **UpBob**'s prediction becomes public, altering the round's dynamic. Other players must now factor in his prediction and the [Entry Price](#Entry-Price) when making their own choices. - The latest parice point of the [Feed](#Feed-Chainlink-Price-Feed) confirmed as [Entry Price](#Entry-Price) at **99,999.99999999** USD/BTC **Public Information** ``` Predictions: - UpBob: 10 USDC (UP) Prize Pool: 10 USDC (total) - UP: 10 USDC - DOWN: 0 USDC - ZERO: 0 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per minuimum deposit (**10 USDC**) | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 10 | **10 (*)** | 0% | | DOWN | 10 | 19.8 | +98% | | ZERO | 10 | 19.8 | +98% | * **10 (*)**: prediction of **UP** outcome will result on **NO CONTEST** and [Refund](#Refund). ____ #### May 1st, 2024 at 10:00:21 AM **DownOw** decided to deposit **50 USDC** predicting **DOWN**. **Public Information** ``` Predictions: - UpBob: 10 USDC (UP) Prize Pool: 10 USDC (total) - UP: 10 USDC - Down: 0 USDC - Zero: 0 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per **DownOw**' deposit (**50 USDC**) | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 50 | **50 (*)** | 0% | | DOWN | 50 | 59.4 | +18.7% | | ZERO | 50 | 59.4 | +18.7% | * **50 (*)**: prediction of **UP** outcome will result on **NO CONTEST** and [Refund](#Refund). ____ #### May 1st, 2024 at 10:00:31 AM **DownOw**'s prediction becomes public, altering the round's rewards again. **Public Information** ``` Predictions: - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 60 USDC (total) - UP: 10 USDC - Down: 50 USDC - Zero: 0 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per minimum (**10 USDC**) deposit baised on Public Information | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 10 | 34.65 | +246.5% | | DOWN | 10 | 11.55 | +15.5% | | ZERO | 10 | 69.3 | +593% | ____ #### May 1st, 2024 at 10:00:45 AM **UpInna** decided to deposit **15 USDC** predicting **UP**. Public Information ``` Predictions: - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 60 USDC (total) - UP: 10 USDC - DOWN: 50 USDC - ZERO: 0 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per **UpInna**' (**15 USDC**) deposit: | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 15 | 44.55 | +197% | | DOWN | 15 | 17.134 | +14.2% | | ZERO | 15 | 74.25 | +395% | ____ #### May 1st, 2024 at 10:00:55 AM **UpInna**'s prediction becomes public altering the round's rewards. **Public Information** ``` Predictions: - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 75 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 0 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per minimum (**10 USDC**) deposit: | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 10 | 24.042 | +140.4% | | DOWN | 10 | 14.025 | +40.2% | | ZERO | 10 | 84.15 | +741.5% | ____ #### May 1st, 2024 at 10:00:56 AM **ZeroIda** decided to deposit **10 USDC** predicting **ZERO**. **Public Information** ``` Predictions: - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 75 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 0 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per **ZeroIda**'s (**10 USDC**) deposit: | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 10 | 24.042 | +140.4% | | DOWN | 10 | 14.025 | +40.2% | | ZERO | 10 | 84.15 | +741.5% | ____ #### May 1st, 2024 at 10:00:59 AM **ZeroIda**'s prediction becomes public altering the round's rewards. **Public Information** ``` Predictions: - ZeroIda: 10 USDC (ZERO) - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 85 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 10 USDC Entry Price: $99,999.99999999 ``` [Potential Reward](#Potential-Reward-PRd) per minimum (**10 USDC**) deposit: | Outcome | Deposit | Potential Reward | Potential Profit Percentage | |---|---|---|---| | UP | 10 | 26.871 | +168.7% | | DOWN | 10 | 15.675 | +56.7% | | ZERO | 10 | 47.025 | +370.2% | ## Round Phase (60 seconds) ### Lock Date: May 1st, 2024 at 10:01:00 AM Funds is locked and **UpBob**, **UpInna**, **DownOw**, **ZeroIda** wait for the [Outcome](#Outcome). [Predictions](#Prediction) can't be changed. The [Prize Pool](#Prize-Pool) is finalized, and Players await the [Feed](#Feed-Chainlink-Price-Feed) to publish the final price point within the phase, which will determine the round's [Outcome](#Outcome). **Public Information** ``` Predictions: - ZeroIda: 10 USDC (ZERO) - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 85 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 10 USDC Entry Price: $99,999.99999999 ``` [Prediction Rewards](#Prediction-Rewards) in case of currect prediction. | Player | Outcome | Deposit | Reward | Profit Percentage | |---|---|---|---|---| | ZeroIda | Zero | 10 | 84.15 | +741.5% | | UpInna | Up | 15 | 50.49 | +236.6% | | DownOw | Down | 50 | 84.15 | +68.3% | | UpBob | Up | 10 | 33.66 | +236.6% | ## Settlment Phase (limited at 24 hours) #### May 1st, 2024 at 10:02:10 AM The [Feed](#Feed-Chainlink-Price-Feed) publishes the final price point of the [Round](#Round), publicly revealing the round's [Outcome](#Outcome). While the final price of **$100,000.00 per 1 BTC** becomes the potential **Exit Price**, it remains [Unverified](#Unverified) by the protocol and therefore **not yet permanent**. **Public Information** ``` Predictions: - ZeroIda: 10 USDC (ZERO) - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 85 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 10 USDC Entry Price: $99,999.99999999 Exit Price: $100,000.00000000 (Unverified) Outcome: UP (Unverified) ``` ## Payout Phase (not limited in time) #### May 1st, 2024 at 10:02:25 AM **UpBob** withdraw his [Prediction Reward](#Prediction-Reward) providing the final price point (**$100,000.00 per 1 BTC**) of the [Feed](#Feed-Chainlink-Price-Feed) within the [Round Phase](#Round-Phase-60-seconds) for verification. The potential **Exit Price** remains [Unverified](#Unverified) until **confirmed** by the protocol. **Public Information** ``` Predictions: - ZeroIda: 10 USDC (ZERO) - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 85 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 10 USDC Entry Price: $99,999.99999999 Exit Price: $100,000.00000000 (Unverified) Outcome: UP (Unverified) ``` **[Prediction Rewards](#Prediction-Rewards) ([Unverified](#Unverified))** | Player | Prediction | Deposit | Payout | Profit Percentage | |--|--|--|--|--| | UpInna | UP | 15 USDC | 50.49 USDC | +236.6% | | UpBob | UP | 10 USDC | 33.66 USDC | +236.6% | #### May 1st, 2024 at 10:02:35 AM **UpBob**'s verification is **confirmed**, finalizing the [Outcome](#Outcome). The final price point is verified as the [Exit Price](#Exit-Price). This signifies the [Outcome](#Outcome) as **permanent** on the blockchain. **Public Information** ``` Payouts: - UpBob: 33.66 USDC (commission: 0.33 USDC) Predictions: - ZeroIda: 10 USDC (ZERO) - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 85 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 10 USDC Entry Price: $99,999.99999999 Exit Price: $100,000.00000000 Outcome: UP ``` Rewards | Player | Prediction | Deposit | Payout | Profit Percentage | |--|--|--|--|--| | UpInna | UP | 15 USDC | 50.49 USDC | +236.6% | | UpBob | UP | 10 USDC | 33.66 USDC | +236.6% | #### May 11st, 2024 at 10:02:45 AM **UpInna**'s decited to withdraw her reward after **10 days** delay. **UpBob**'s verification of the [Outcome](#Outcome) within the first **24 hours** permanently confirmed it on the blockchain. This crucial step enabled **UpInna** to execute her delayed claim of the [Prediction Reward](#Prediction-Reward). ## Archive Phase (permanent) #### May 11st, 2024 at 10:02:55 AM **UpInna**'s withdrawal, published on the blockchain, marks the completion of the [Round](#Round) and the start of the Archive Phase. With all rewards claimed, the [Round](#Round) becomes immutable, **forever recorded on the blockchain**. **Public Information** (**Archived**) ``` Payouts: - UpInna: 50.49 USDC (commission: 0.51 USDC) - UpBob: 33.66 USDC (commission: 0.33 USDC) Predictions: - ZeroIda: 10 USDC (ZERO) - UpInna: 15 USDC (UP) - DownOw: 50 USDC (DOWN) - UpBob: 10 USDC (UP) Prize Pool: 85 USDC (total) - UP: 25 USDC - DOWN: 50 USDC - ZERO: 10 USDC Entry Price: $99,999.99999999 per BTC Exit Price: $100,000.00000000 per BTC Outcome: UP ``` [Prediction Rewards](#Prediction-Rewards) | Player | Prediction | Deposit | Payout | Profit Percentage | |--|--|--|--|--| | UpInna | UP | 15 USDC | 50.49 USDC | +236.6% | | UpBob | UP | 10 USDC | 33.66 USDC | +236.6% | ------- # Glossary #### Game A nonstop series of prediction rounds where players predict cryptocurrency price movements for a chance to win rewards. ___ #### Round A self-contained prediction contest where players predict whether the price of a selected asset will go **UP**, **DOWN**, or remain the same (**ZERO**) within a short timeframe. Rounds progress through [Entry](#Entry-Phase), [Round](#Round-Phase), [Settlement](#Settlement-Phase), [Payout](#Payout-Phase), and [Archive](#Archive-Phase) phases. At the end of the short round Player with [Prediction](#Prediction) matching actual price movement share the [Prize Pool](#Prize-Pool) proportionally to their deposit. ___ #### Entry Phase Players place their [Predictions](#Prediction) (**UP**, **DOWN**, **ZERO**) with **deposits** for the selected asset's price movement. This phase determines the [Entry Price](#Entry-Price) that all predictions are based on, and the minimum **deposit** size depends on the [Game Level](#Game-Level). * Begins at the **Start Date**. * Ends at the **Lock Date**. * Player makes deposits for chosen outcomes: * **UP**: [Exit Price](#Exit-Price) will be higher than [Entry Price](#Entry-Price). * **DOWN**: [Exit Price](#Exit-Price) will be lower than [Entry Price](#Entry-Price). * **ZERO**: [Exit Price](#Exit-Price) will be identical to [Entry Price](#Entry-Price). * **IMPORTANT:** * Players can make multiple deposits for their chosen outcome, increasing their share of the [Prize Pool](#Prize-Pool) in case of victory. * **Minimum deposit** amounts are determined by [Game Level](#Game-Level): | Game Level | Minimum Deposit | |---|---| | Bronze | 1 USDC | | Silver | 10 USDC | | Gold | 100 USDC | * **Maximum deposit** amounts is unlimited. * Players **cannot** place a [Prediction](#Prediction) on the **NO CONTEST** outcome. ___ #### Round Phase During the **Round Phase**, funds is locked and players wait for the [Outcome](#Outcome). [Predictions](#Prediction) can't be changed. The [Prize Pool](#Prize-Pool) is finalized, and Players await the [Feed](#Feed-Chainlink-Price-Feed) to publish the final price point of the phase, which will determine the round's [Outcome](#Outcome). * Starts at the **Lock Date**. * Ends: * When the [Feed](#Feed-Chainlink-Price-Feed) publishes the final price point by the **End Date**. * Immediately if a **NO CONTEST** occurred. (all predicts the same [Outcome](#Outcome)) * After **24 hours** with no new price points published by the [Feed](#Feed-Chainlink-Price-Feed), resulting in **NO CONTEST**. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) * Players' deposits are locked-in, forming the [Prize Pool](#Prize-Pool). No more deposits can be made. * Players await the [Feed](#Feed-Chainlink-Price-Feed) to publish the final price point of the phase to determine the round's [Outcome](#Outcome) and withdraw their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund). * **IMPORTANT:** * To confirm a price point as the final one by the **End Date**: * It must be dated before the round's **End Date** * The next sequential price point from the [Feed](#Feed-Chainlink-Price-Feed) must be dated **on** or **after** the round's **End Date**. * A [Round](#Round) is considered **NO CONTEST** at the beginning of this phase if all [Predictions](#Prediction) are for the same [Outcome](#Outcome). In this scenario, deposits becomes claimable for [Refund](#Refund). * The round is considered **NO CONTEST** if the [Feed](#Feed-Chainlink-Price-Feed) fails to publish a price within **24 hours**. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) ___ #### Settlement Phase The [Feed](#Feed-Chainlink-Price-Feed) publishes final price point of the [Round Phase](#Round-Phase) and the [Outcome](#Outcome) becomes publicly known. However, [Outcome](#Outcome) requires protocol's verification to become permanent. The first player to withdraw their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund) performs this verification. * Starts when the [Feed](#Feed-Chainlink-Price-Feed) publishes the final price point of the [Round Phase](#Round-Phase), making the [Outcome](#Outcome) publicly known. * Ends when the first player withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund), verifying the [Outcome](#Outcome). * **IMPORTANT:** * To withdraw a reward or refund during this phase, players must verify the publicly known [Outcome](#Outcome) by providing the [Exit Price](#Exit-Price) from the [Feed](#Feed-Chainlink-Price-Feed). * The round is considered **NO CONTEST** if no players withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund) within **24 hours**. * The round is considered **NO CONTEST** if the [Feed](#Feed-Chainlink-Price-Feed) fails to publish [Exit Price](#Exit-Price) within **24 hours**. * **Examples**: * The [Feed](#Feed-Chainlink-Price-Feed) publishes an [Exit Price](#Exit-Price) indicating the [Outcome](#Outcome) is **DOWN**. A player predicting **DOWN** initiates a withdrawal and provides this [Exit Price](#Exit-Price), verifying the [Outcome](#Outcome). ___ #### Payout Phase Players with winning predictions withdraw their share of the [Prize Pool](#Prize-Pool), with payouts based on their deposit size. Protocol collects **1%** of [Oracly Commission](#Oracly-Commission). If the round was **NO CONTEST**, players withdraw [Refunds](#Refund). * Starts when the first player withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund). * Ends when the last player withdraws their [Prediction Reward](#Prediction-Reward) or [Refund](#Refund). * **Winning Payouts:** [Prediction Reward](#Prediction-Reward) * Players with predictions matching the actual price movement [Outcome](#Outcome) withdraw their share of the [Prize Pool](#Prize-Pool). * **UP:** [Exit Price](#Exit-Price) is higher than [Entry Price](#Entry-Price). * **DOWN:** [Exit Price](#Exit-Price) is lower than [Entry Price](#Entry-Price). * **ZERO:** [Exit Price](#Exit-Price) is identical to [Entry Price](#Entry-Price) (difference is zero). * [Reward](#Prediction-Reward) is proportional to the size of a player's deposit relative to other winning deposits. * **Oracly Protocol** collects a 1% commission on payouts, distributed among [Stakers](#Stakers) and [Mentors](#Mentors). * **NO CONTEST:** [Refund](#Refund) * All [Predictions](#Prediction) in a [Round](#Round) are on the same [Outcome](#Outcome). * No [Predictions](#Prediction) match the actual [Outcome](#Outcome). * The [Feed](#Feed-Chainlink-Price-Feed) doesn't publish an [Exit Price](#Exit-Price) within **24 hours**. * No Players withdraw [Prediction Reward](#Prediction-Reward) within **24 hours**. * **IMPORTANT:** * If the [Round](#Round) considered **NO CONTEST**, deposits becomes claimable for [Refund](#Refund). * **Precision** of the price points in the [Feed](#Feed-Chainlink-Price-Feed) is 8 decimals. ___ #### Archive Phase (permanent) Once a round enters the **Archive Phase**, it's permanently closed, signifying the end of its lifecycle. All outcomes, predictions, and payouts are finalized and recorded on the blockchain for transparency and historical reference. ___ #### Prize Pool The sum of all player deposits that will be distributed to winners at the end of a [Round](#Round). ___ #### Oracly Commission Funds that was collected from the **Oracly Protocol** and distributed as rewards for **Stakers** and **Mentors**: * **Mentor Share**: **0.25%** of the payout is distributed to a winning player's **Mentor**, if applicable * **Stakers' Share**: **0.75%** of the payout is distributed to stakers. * IMPORTANT: - If a player has no Mentor, Stakers receive the entire **1%** commission. **Oracly Protocol** utilizes two types of commissions: - **Withdrawal Commission** (**1%**): Players pay a **1%** commission on the withdrawal of rewards earned from correct predictions. This commission is collected in **USDC**. - **Buy4Stake Commission (1:1)**: When acquire **ORCY** tokens for staking through the [Oracly Staking Platform](#Oracly-Staking-Platform), users pay a commission in **USDC**, calculated as a **1:1** ratio against the desired **ORCY** deposit amount. ___ #### Prediction Reward The payout a player earns if they correctly predict whether an asset's price will go **UP**, **DOWN**, or stay the same (**ZERO**) within a game round. The larger the deposit, and the smaller the amount of funds deposited by who picked the same outcome, the bigger potential reward. Prediction Reward can be calcualted using [Reward (R(d))](#Reward-Rd). **Oracly Protocol** takes **1%** **commission** on withdrwas of reward for prediction. **Example**: In a round with a **1000 USDC** [Prize Pool](#Prize-Pool), Where **200 USDC** was deposited on the winning **UP** outcome, The deposit of **50 USDC**, could earn **247.5 USDC** reward. ___ #### Refund A **Refund** is the full return of a player's deposit when a round is declared **NO CONTEST**. **Refund** mechanism ensures that players do not lose their deposited funds due to unforeseen circumstances or technical issues affecting the [Outcome](#Outcome). **Oracly Protocol** does not collect any commission in a **NO CONTEST** scenario. **Refund Occurs:** A NO CONTEST round, and subsequent Refunds, can be triggered by various events, such as: - **No Valid Predictions**: If all predictions within a round are for the same [Outcome](#Outcome). - **No Valid Winning**: If no a prediction within a round is for the actual [Outcome](#Outcome). - **Price Feed Failure**: If the [Chainlink Price Feed](#Feed-Chainlink-Price-Feed) fails to provide a valid price point within **24 hours**. - **Technical Issues**: Any unforeseen disruptions that prevent the fair determination of a round's [Outcome](#Outcome) or [Prediction Reward](#Prediction-Reward) distribution. ___ #### Outcome The actual change in the selected asset's price between [Entry Price](#Entry-Price) and [Exit Price](#Exit-Price) of the [Round](#Round), as published by the [Chainlink Price Feed](#Feed-Chainlink-Price-Feed). Outcome can be **UP**, **DOWN**, **ZERO**, or **NO CONTEST**. - **UP**: [Exit Price](#Exit-Price) is higher than [Entry Price](#Entry-Price). - **DOWN**: [Exit Price](#Exit-Price) is lower than [Entry Price](#Entry-Price). - **ZERO**: [Exit Price](#Exit-Price) equals [Entry Price](#Entry-Price). - **NO CONTEST**: Round cannot be resolved as **UP**, **DOWN**, or **ZERO**. In case of this resolution Player's deposit get [Refund](#Refund). No Commision is collected by Oraclty Protocol.' **IMPORTANT** **Precision** of the price points in the [Feed](#Feed-Chainlink-Price-Feed) is **8 decimals**. Scenarios of **NO CONTEST** resolution: 1) All [Predictions](#Prediction) in a [Round](#Round) are on the same [Outcome](#Outcome). 2) No [Predictions](#Prediction) match the actual [Outcome](#Outcome). 3) The Feed doesn't publish an [Exit Price](#Exit-Price) within **24 hours**. 4) No Players withdraw rewards or refunds within **24 hours**. ___ #### Entry Price * The asset's price captured from the [Feed](#Feed-Chainlink-Price-Feed) latest prices during this phase, serving as the reference point for [Predictions](#Prediction). * Set by the first player to place a [Prediction](#Prediction) from [Feed](#Feed-Chainlink-Price-Feed) latest price, if valid. * **IMPORTANT:** To be valid, the latest price must meet these criteria: 1) Dated **on** or **after** the [Round](#Round)'s **Start Date**. 2) Dated **before** the [Round](#Round)'s **Lock Date**. 3) Has a value greater than zero. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) ___ #### Exit Price * The final asset price point within a [Round Phase](#Round-Phase-1-minute-2-minutes-3-minutes-5-minutes) determines the [Outcome](#Outcome). * Verified by the first player to **withdraw** reward or refund providing [Feed](#Feed-Chainlink-Price-Feed)'s final price point of the [Round](#Round), if valid. * **IMPORTANT:** To be valid, the price point must meet criteria: 1) Dated **before** the round's **End Date**. 2) Dated **on** or **after** the round's **Lock Date**. 3) Has the next sequential price point from the [Feed](#Feed-Chainlink-Price-Feed) dated **on** or **after** the round's **End Date**. 4) Comes from the same [Chainlink Aggregator](#Chainlink-Aggregator) as the [Entry Price](#Entry-Price). 5) Is less than double the value of the [Entry Price](#Entry-Price). 6) Is less than double the value of the next sequential price point from the [Feed](#Feed-Chainlink-Price-Feed). [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) 7) Has a value greater than zero. [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) 8) **Oracly Protocol**'s design ensures that there will be either **one valid price point** from the [Feed](#Feed-Chainlink-Price-Feed) per round to determine the [Outcome](#Outcome) or **none** (resulting in a **NO CONTEST**). [Oracly Risks Mitigation](#Oracly-Risks-Mitigation) ___ #### Chainlink The Chainlink network operates as a decentralized network of oracles, which are crucial in fetching and delivering external data to blockchain smart contracts. This decentralized arrangement enhances the reliability and security of the data, as it minimizes the risks associated with data manipulation by ensuring no single point of failure. This structure is particularly important because it helps maintain the integrity and accuracy of the data fed into smart contracts, which are foundational for **Oracly Protocol**. **Chainlink**'s network consists of numerous independent nodes, known as oracles, that collectively work to fetch data from various external sources. These nodes are incentivized to perform accurately and reliably to maintain their reputation and effectiveness within the network. By aggregating data from multiple sources, **Chainlink** ensures that the final data provided to the smart contracts is well-rounded and robust against potential data-specific risks or inaccuracies. [Chainlink Web3 Platform](https://chain.link/use-cases). ___ #### Chainlink Aggregator An aggregator is the **contract** that receives periodic data updates from the Chainlink oracle network. Aggregators store aggregated data onchain so that consumers can retrieve it and act upon it within the same transaction. [The 3 Levels of Data Aggregation in Chainlink Price Feeds ↗](https://blog.chain.link/levels-of-data-aggregation-in-chainlink-price-feeds/) ___ #### Feed (Chainlink Price Feed) [Price Feeds ↗](https://data.chain.link/feeds) provide data that is aggregated from many data sources by a decentralized set of independent node operators. The [Decentralized Data Model ↗](https://docs.chain.link/architecture-overview/architecture-decentralized-model) describes this in detail. **Oracly Protocol** uses [Low Market Risk ↗](https://docs.chain.link/data-feeds/selecting-data-feeds/#-low-market-risk-feeds) feeds to ensure consistent, accurate, and manipulation-resistant price data for fair outcomes. **Feed** price points genesis mechanism [Offchain Reporting (OCR)](https://docs.chain.link/architecture-overview/off-chain-reporting/) Tech Deep Dive: [OCR Protocol Paper](https://research.chain.link/ocr.pdf) ___ #### Unverified Round A round of the game where the [Outcome](#Outcome) is publicly known (the asset's price movement) but not yet verified and confirmed by **Oracly Procotol** contracts and therefore **not yet permanent**. While the [Outcome](#Outcome) is typically confirmed, there's a possibility it could change if the protocol detects discrepancies in the **Price Data**. ___ #### Mentors Player who mentor [Proteges](#Protege). Mentor rewarded with 0.25% of each win payout to their [Protege](#Protege) in currency of the payout. ___ #### Mentoring Reward A **reward** earned by [Mentors](#Mentor) within the **Oracly Protocol** ecosystem. - [Mentors](#Mentor) receive a percentage (**0.25%**) of every winning payout earned by their [Proteges](#Protege). - This **reward** incentivizes experienced players to find and support newer players on the protocol. - To become a [Mentors](#Mentor), players can generate invitation link within the **Oracly Protocol**. **Example** 1) Alice (Mentor) guides Bob (Protege) on Oracly strategies. 2) Bob wins a round and earns a payout of 100 USDC. 3) Alice automatically receives a Mentoring Reward of 0.25 USDC (0.25% of Bob's payout). ___ #### Protege A player who receives guidance and support from a more experienced player [Mentors](#Mentor). Proteges benefit from their mentor's knowledge, gaining valuable insights into crypto realm and the **Oracly Protocol**' prediction game. ___ #### Polygon (PoS) Polygon is a "layer two" or "sidechain" scaling solution that runs alongside the Ethereum blockchain — allowing for speedy transactions and low fees. [MATIC](#MATIC) is the network’s native cryptocurrency, which is used for gas fees on the platform. ___ #### MATIC MATIC is the native cryptocurrency of the [Polygon (PoS)](#Polygon-PoS) network. It's primarily used to pay for transaction fees (gas fees) on the platform. ___ #### Prediction A player's choice of [Outcome](#Outcome) (**UP**, **DOWN**, **ZERO**) within a round. If the prediction aligns with the actual price change, the player wins a share of the [Prize Pool](#Prize-Pool). ___ #### Game Level Determines the **minimum** amount player can **deposit** on a prediction within a single round. Oracly Protocol offers different Game Levels to cater to various player preferences and risk appetites. | Game Level | Minimum Deposit | |---|---| | Bronze | 1 USDC | | Silver | 10 USDC | | Gold | 100 USDC | ___ #### DEMO A special-purpose token used exclusively within the **Oracly Protocol**'s demonstration environment. It allows players to experience the gameplay and mechanics of the platform without risking real assets. ___ #### ORCY The native token of the Oracly Protocol. - **Staking**: **ORCY** holders can lock their tokens in the [Oracly Staking Platform](#Oracly-Staking-Platform) for [Staking Rewards](#Staking-Reward). - **Governance**: Empowers [Stakers](#Staker) to propose and vote on key decisions, enabling decentralized governance and shaping the evolution of **Oracly Protocol**. ___ #### Oracly Staking Platform The **Oracly Staking Platform** is a gateway to earning share of system income and becoming an integral part of the **Oracly Protocol** ecosystem. By staking **ORCY** tokens, [Staker](#Staker) not only receive a share of the [Oracly Commissions](#Oracly-Commission), but also gain the power to vote on proposals that shape the protocol's future. ___ #### Buy4Stake A unique feature within the **Oracly Protocol** that streamlines the process of acquiring **ORCY** tokens and immediately participating in **staking**. A significant **5,000,000 ORCY (50% of the total supply)** is dedicated to the **Buy4Stake** feature, allocated at the time of **ORCY** token generation. **Buy4Stake Process** * **Buy**: User pays the [Oracly Commissions](#Oracly-Commission) in [USDC](#USDC), calculated as a **1:1** ratio against the desired **ORCY** deposit amount. The **ORCY** tokens are sourced from a dedicated **Buy4Stake** pool. * **Stake**: The [Staking Contract](#StakingOraclyV1sol) automatically stakes the acquired **ORCY** deposit from the **Buy4Stake** pool. * **Rewards**: Rewards start accruing following the [Entry Epoch](#Entry-Epoch) (approx. 7 days) and can be withdrawn at any time thereafter, as [Oracly Commissions](#Oracly-Commission) are collected. ___ #### Staking Pool A pool of **ORCY** tokens within the **Oracly Protocol** where holders can securely lock their tokens for an arbitrary period. - **Reward Distribution**: [Stakers](#Staker) claims a share of the [Oracly Commissions](#Oracly-Commission) based on the size of a [Staking Deposit](#Staking-Deposit) relative to the overall **Staking Pool**. - **Governance**: [Stakers](#Staker) gain voting power to participate in key decisions that shape the future of the **Oracly Protocol**. ___ #### Staking Rewards **Rewards** earned by **ORCY** token holders who lock their tokens in the [Oracly Staking Contract](#StakingOraclyV1sol). [Stakers](#Staker) claims a share of the [Oracly Commissions](#Oracly-Commission) based on the size of a [Staking Deposit](#Staking-Deposit) relative to the overall [Staking Pool](#Staking-Pool). ___ #### Staking Epoch A recurring period (approximately 7 days) during which the staking pool remains unchanged. [Staking Rewards](#Staking-Rewards) are distributed as [Oracly Commissions](#Oracly-Commission) collected throughout the epoch are distributed proportionally to [Stakers](#Staker). Epochs ensure predictable staking cycles for [Stakers](#Staker). **IMPORTANT** * **Delayed Epoch Start**: If no stakers register for a newly scheduled [Staking Epoch](#Staking-Epoch), **Oracly Protocol** delays the epoch's start indefinitely until [Stakers](#Stakers) participate. [Delayed Epoch Start](#Delayed-Epoch-Start) * **Flexibility**: Users can request to exit epoch by unstaking **ORCY** deposit. User can withrawd **ORCY** deposit following an [Staking Epoch](#Staking-Epoch) (approx. 7 days) after initiating an unstaking request. ___ #### Staker An **ORCY** holder who locks their tokens in the [Oracly Staking Contract](#StakingOraclyV1sol) to earn [Staking Rewards](#Staking-Rewards) and participate in **Oracly Protocol**' governance. * **Earning Rewards**: **Stakers** receive a share of the [Oracly Commissions](#Oracly-Commission). Rewards are distributed in **USDC**. * **Flexible Staking**: **Stakers** can withdraw staked **ORCY** after a [Staking Epoch](#Staking-Epoch) (approximately 7 days) following an **unstake** request. * **Governance Power**: **Stakers** gain voting power to participate in key decisions that shape the future of the protocol. * **Presidium Membership**: **Stakers** holding at least **1%** of the total **ORCY** supply **staked** gain the right to submit proposals for the protocol's growth. ___ #### Presidium The governing council within the **Oracly Protocol**. **Presidium** members is [Stakers](#Stakers) who hold at least **1%** of the total **ORCY** supply **staked** and expricitly join **Presidium** community of [Councilors](#Councilor), gaining the right to submit **proposals**. **Presidium** responsible for creating and executing proposals. ___ #### Councilor A **Councilor** is a member of the [Presidium](#Presidium) who holds at least **1%** of the total **ORCY** supply staked. **Councilors** have the exclusive right to submit proposals for consideration by the [Stakers](#Stakers), playing a crucial role in shaping the future direction of the platform through decentralized governance. ___ #### Entry Epoch The initial staking period (approx. 7 days) during which a staker's **ORCY** deposit is pending. [Stakers](#Stakers) cannot earn rewards in the **Entry Epoch**, but they can **increase** or **withdraw** their deposit. [Staking Rewards](#Staking-Rewards) begin in the epoch immediately following the **Entry Epoch**. ___ #### Staking Deposit The specific quantity of **ORCY** tokens that a user commits to the [Oracly Staking Contract](#StakingOraclyV1sol). This deposit is locked for a [Stakign Epoch](#Staking-Epoch) and earns rewards based on its size relative to the total amount staked in the system. **Staking Deposits** also grant the user voting power in the protocol's governance processes. ___ #### Unverified (Outcome) A state in a round where the [Outcome](#Outcome) (**UP**, **DOWN**, **ZERO**) is publicly known based on the [Chainlink Price Feeds](#Feed-Chainlink-Price-Feed) data, but not yet **verified** as **Exit Price** by the Oracly **Protocol** contracts. This is a temporary state that ensures the [Outcome](#Outcome) is accurate and hasn't been tampered with before payouts are made. ___ **May 10, 2024 (@metaferryman)**