# Welcome to Challenge

Join us in shaping the future of gaming

{% embed url="<https://www.youtube.com/watch?v=5aoDWEK8wcs>" %}

### 🔸 Executive Summary

Welcome to Challenge.GG, a groundbreaking platform where the exhilarating world of gaming meets the transformative power of blockchain and Web3 technologies. This outlines our vision and the innovative features of Challenge.GG, a platform that's not just a gaming hub but a comprehensive ecosystem where passion for gaming evolves into a profession. Here, we redefine competitive gaming, offering a decentralized, secure, and dynamic environment where every player can thrive.

### 🔸 Socials

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-type="users" data-multiple></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Twitter / X</strong></td><td><mark style="color:yellow;">Challenge Announcements</mark></td><td></td><td></td><td><a href="https://twitter.com/challengedotgg">https://twitter.com/challengedotgg</a></td><td><a href="/files/kGu6TSPKPSt1B1UJTY9q">/files/kGu6TSPKPSt1B1UJTY9q</a></td></tr><tr><td><strong>Discord</strong></td><td><mark style="color:yellow;">Challenge Community</mark> </td><td></td><td></td><td><a href="https://discord.gg/vJxSfNBSpQ">https://discord.gg/vJxSfNBSpQ</a></td><td><a href="/files/uKbdRhlu84L3cshPhcGc">/files/uKbdRhlu84L3cshPhcGc</a></td></tr><tr><td><strong>Telegram</strong></td><td><mark style="color:yellow;">Challenge Community</mark></td><td></td><td></td><td><a href="https://t.me/IchallengeU">https://t.me/IchallengeU</a></td><td><a href="/files/80nIj1l6kmFAXtUQpdFC">/files/80nIj1l6kmFAXtUQpdFC</a></td></tr></tbody></table>


# Litepaper

### 🔸 Executive Summary

Welcome to Challenge.GG, a groundbreaking platform where the exhilarating world of gaming meets the transformative power of blockchain and Web3 technologies. This outlines our vision and the innovative features of Challenge.GG, a platform that's not just a gaming hub but a comprehensive ecosystem where passion for gaming evolves into a profession. Here, we redefine competitive gaming, offering a decentralized, secure, and dynamic environment where every player can thrive.

<figure><img src="/files/AdFqngCe3JVuDva4MlQF" alt=""><figcaption></figcaption></figure>

### 🔸 Challenges - Competitive Gaming

Challenge, where competition, skill, and entertainment converge to create an unparalleled gaming experience. Our platform is designed to cater to a wide range of gamers, from casual players to hardcore enthusiasts. Where everyone can compete for rewards.

<figure><img src="/files/EWfmoNIv1l19VEnM33se" alt=""><figcaption></figcaption></figure>

### 🔸 Challenge Games

The Studio Located in the heart of Stockholm, Sweden, Challenge studios want to change the industry of launching and building games. At Challenge, we are setting new benchmarks in interactive gaming with our original titles, launched in a competitive, yet inclusive environment.

Challenge Studios' vision is to create games and to innovate by demonstrating how Triple-A gaming experiences can be revolutionarily combining tradional gaming with Web3 technologies. The team is professionals and have a history with major titles like Payday and involvement in projects that have engaged millions worldwide.

<figure><img src="/files/v66iQAtRgS7a73yrKcPt" alt=""><figcaption></figcaption></figure>

### 🔸 Challenge Original - Frontland

FrontLand is a free-to-play shooter game developed by Challenge Original Games. It offers an immersive and competitive third-person shooting experience, powered by the cutting-edge Unreal Engine 5. This whitepaper aims to provide an overview of FrontLand, its gameplay, and the features that make it a unique gaming experience.

{% embed url="<https://www.youtube.com/watch?v=SgOM3SK--QM>" %}

### 🔸 Challenge Token

The $Challenge Token is built on the Ethereum blockchain, providing a secure, transparent, and decentralized system for managing and facilitating transactions within our ecosystem. It is the primary utility token and currency of Challenge Playground, used for purchasing, trading, and managing non-fungible tokens (NFTs) such as in-game features and assets in The Challenge marketplace.

<figure><img src="/files/cNIX9cXwKOzx7nGjsDF4" alt=""><figcaption></figcaption></figure>

**The token has been designed to provide the community with a multitude of use cases:**

1. **Purchase and Sale of NFTs:** Users can acquire $Challenge Token  to buy or sell NFTs, which include unique in-game features and assets on the Challenge marketplace.
2. **Loyalty program:** Owners of $Challenge Token can be part of the loaylty program with their holdings, thus contributing to the network’s security and earning rewards in Ethereum. This programs serves to incentivize user participation and loyalty to the platform.
3. **Governance:** The $Challenge Token acts as a governance token within the Challenge.gg ecosystem. Token holders can participate in the platform's Decentralized Autonomous Organization (DAO), voting on various proposals and influencing the direction and development of the ecosystem.

**Token Distribution**<br>

<figure><img src="/files/IPoMf8jmpzmS0SevnWcJ" alt=""><figcaption></figcaption></figure>

**Vesting**<br>

<figure><img src="/files/3iYnoGxVY84IxXbGJgrd" alt=""><figcaption></figcaption></figure>

**Trading fee - 0%**

<figure><img src="/files/awlsbHM9S6hd3Ocbb1Jx" alt=""><figcaption></figcaption></figure>

### 🔸 Team & Founders

Founded in 2019, Challenge GG emerged as a groundbreaking venture in competitive gaming and digital entertainment, conceptualized by Tourn International, a prestigious Nasdaq-listed company. From the vibrant cities of Stockholm, Sweden, and Zug, Switzerland, Challenge GG melds international expertise with local insights, aiming to transform the gaming world. Its launch was bolstered by the support of Microsoft, a testament to the platform's immense potential and a catalyst for its early strides.

### 🔸 **Roadmap**

At Challenge.gg, we're pioneering a new era in the gaming world, one where true decentralization isn't just a concept, but a reality. We're breaking down the traditional barriers of the gaming industry, empowering players to take control and reshape the gaming landscape. Our mission is to revolutionize gaming by placing the power directly in the hands of the community, ensuring that every player is not just a participant, but a key architect of the gaming universe.

<figure><img src="/files/QrWLRvW32mV1fVrUgEaU" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/16qHLkdkVJ1knLIoWcGK" alt=""><figcaption></figcaption></figure>


# Pitchdeck

{% embed url="<https://challenge.gg/files/Challenge_pitch_deck.pdf>" %}

Dive into our revolutionary platform where the excitement of gaming meets the innovative world of cryptocurrency. Challenge is created to redefine the digital entertainment landscape, offering a unique experience where gaming prowess translates into earning potential.

1. **Diverse Gaming Universe**: Serving to a broad spectrum of players, from casual enthusiasts to professional gamers, Challenge offers an extensive range of games. This diversity ensures an engaging and inclusive environment for all gaming preferences.
2. **Cryptocurrency Integration**: Challenge stands out with its seamless integration of digital assets. Players have the unique opportunity to use and grow their cryptocurrency holdings within the gaming world, merging the thrill of gaming with the financial allure of digital currency.
3. **Community and Governance**: At the core of Challenge is a DAO (Decentralized Autonomous Organization) structure, promoting user empowerment and fostering a robust community. This approach ensures that players are not just participants but also have a say in the platform's evolution.
4. **Earning Potential**: The platform offers multiple avenues for earnings, including a loyalty program, competitive tournaments, and a dynamic marketplace. These features provide players with various ways to earn rewards and monetize their gaming skills and strategies.
5. **Innovative Features**: Challenge is at the forefront of digital entertainment innovation, integrating NFTs and launchpads. These features not only enhance the gaming experience but also open up new avenues for creativity and entrepreneurship within the platform.
6. **Robust Technology**: Built on the latest blockchain technology, Challenge ensures a secure and scalable platform. This robust technological foundation guarantees a safe, reliable, and uninterrupted gaming experience.

**Legal and Corporate Structure**

* **Legal Partnerships**: Challenge is legally fortified through partnerships with MME Legal in Switzerland and RealJuridik in Sweden. These collaborations ensure adherence to the highest standards of legal compliance in the rapidly evolving domains of cryptocurrency and online gaming.
* **International Entity Structure**: With entities established in both Sweden and Switzerland, Challenge benefits from the strategic advantages and robust legal frameworks of these jurisdictions, enhancing the platform's credibility and operational stability.
* **Corporate Backing**: Founded by a NASDAQ-listed technology company, Challenge enjoys strong financial backing and corporate governance. This prestigious association not only underscores the platform's market potential but also instills confidence among players and investors alike.

Join us on this journey of innovation and excitement. Game on with Challenge!


# Create a wallet

Welcome to Challenge.gg, your gateway to an exciting realm of blockchain-powered gaming. This guide outlines the key steps to get you started, ensuring a seamless integration into our ecosystem.

**Step 1: Create a MetaMask Wallet**

To begin, you'll need a MetaMask wallet, a vital tool for interacting with decentralized applications (dApps) on the Ethereum network. Here's how to set it up:

1. **Install MetaMask:** A browser extension, MetaMask serves as your digital wallet, allowing you to manage, send, and receive Ethereum and other tokens. Follow the detailed instructions [here](https://metamask.io/) to install it.
2. **Configure the Ethereum Mainnet:** To engage with Ethereum-based dApps, your MetaMask wallet must be set up with the Ethereum Mainnet. The guide provides easy-to-follow steps and illustrations for this process, catering to both beginners and experienced users.


# Purchase tokens

**Acquire Challenge Tokens**

1. **Buy Ether ($ETH):** As the primary currency of Ethereum, $ETH is used for transaction fees and Challenge Tournaments entry fees. Purchase $ETH from reputable exchanges like Coinbase, Binance, or Kraken.
2. **Purchase $Challenge Token (launching soon):** With $ETH in your wallet, proceed to Uniswap, a decentralized exchange, to exchange $ETH for $CHALLENGE.GG tokens. This process is straightforward:
   * Visit: TO BE LAUNCHED.
   * Connect your MetaMask wallet.
   * Select $ETH as input and $Challenge Token as output.
   * Enter the desired amount, click 'Swap', and confirm the transaction in MetaMask.


# Launch App

**Step 3: Connect to Challenge.gg**

Finalize your setup by connecting your wallet to Challenge.gg:

1. **Sign a Message:** This proves your ownership of the connected wallet, enhancing security. Visit the login page on <https://client.stage.challenge.gg/> and initiate the login process.
2. **Complete the Login with metamask:** Instead of a traditional username and password, sign a unique message generated by your wallet software. Confirm your signature to complete the process.
3. **Sign up with gmail or socialmedia:** Create an account with your Gmail or social media, and Challenge will automatically create a web3 wallet for you to use within the platform.

Your integration into the Challenge.gg platform is now complete. This blockchain-driven gaming experience offers enhanced security, trustless interactions, and a host of unique opportunities. Welcome aboard and enjoy your journey in the Challenge.gg universe!


# Founder

Joint venture

🔸 **Introduction**

Founded in 2019, Challenge GG emerged as a groundbreaking venture in competitive gaming and digital entertainment, conceptualized by Tourn International, a prestigious Nasdaq-listed company. From the vibrant cities of Stockholm, Sweden, and Zug, Switzerland, Challenge GG melds international expertise with local insights, aiming to transform the gaming world. Its launch was bolstered by the support of Microsoft, a testament to the platform's immense potential and a catalyst for its early strides.

🔸 **Founders' Background and Expertise**

The founders of Challenge GG are a cadre of experts from diverse fields including technology, media, finance, and digital entertainment. Their experiences range from pivotal roles in companies like Skype, MTG (Swedish Television), and McCann in finance, to driving technological innovations and market leadership.

🔸 **Key Highlights:**

* **Startup and Tech Experience:** Contributions to the global success of Skype.
* **Media and Entertainment Insight:** Gained through involvement with MTG.
* **Financial Expertise:** Proven by experience in McCann and successful company listings.
* **Digital Media Partnership:** Established one of Northern Europe’s largest Multi-Channel Networks as a YouTube/Google partner.

🔸 **Challenge GG: The Inception**

The creation of Challenge GG was driven by a vision to redefine streamer revenue generation and audience interaction. The platform facilitates easy tournament setups in popular games, enabling streamers to directly engage their fans, thereby enriching the gaming experience and introducing new income avenues.

🔸 **Background of Challenge GG**

**Tourn International**

* **Origin:** A Swedish tech company, listed on Nasdaq First North.
* **Growth:** Featured in "Deloitte Tech Fast 500 (EMEA)" for rapid growth.
* **Focus:** Developing technological solutions for influencers, social tech, and fintech since 2014.
* **Partnership:** Collaborated with Google on the Nagato MCN platform, achieving over 1 billion views and a strong Esport streamer presence.

{% embed url="<https://tourn.com/>" %}
tourn international webpage
{% endembed %}

![Tourn international a Nasdaq listed Company](/files/T4XyVyA89Mjct0mVSZmi)

### **The Evolution of Challenge GG**

Key milestones in Challenge GG's evolution include:

* **Initial Launch:** Garnered over 8000 players in its beta phase with Fortnite tournaments.
* **Blockchain Integration (2021):** Brought enhanced transparency, security, and player ownership.
* **Expansion:** Diversified its competitive gaming offerings by incorporating original games.

Challenge GG stands as a innovative leadership and strategic vision, offering a new horizon in competitive gaming and digital entertainment.


# Team

Core People

<figure><img src="/files/2iNczxeC26UtC76XA3yZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/eX7lPpQuuHKvXPvZTxz1" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fRfBuv9TA0ewnLYZ0U5I" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/fZ6m0R2EIBmr248J24dr" alt=""><figcaption></figcaption></figure>


# Platform

The Next Frontier in Competitive Gaming

### 🔸 Executive Summary

Welcome to Challenge.GG, a groundbreaking platform where the exhilarating world of gaming meets the transformative power of blockchain and Web3 technologies. This outlines our vision and the innovative features of Challenge.GG, a platform that's not just a gaming hub but a comprehensive ecosystem where passion for gaming evolves into a profession. Here, we redefine competitive gaming, offering a decentralized, secure, and dynamic environment where every player can thrive.

<figure><img src="/files/OrmxJCLoHsVHFUickumO" alt=""><figcaption></figcaption></figure>

### 🔸 Introduction

In the rapidly evolving landscape of digital entertainment, Challenge.GG stands as a start for the future of gaming. It's a unique convergence of gaming, community, and cutting-edge technology, designed to empower gamers, developers, and enthusiasts. Our platform is a testament to the belief that gaming is not just a pastime but a dynamic and rewarding world, ripe with opportunities for growth, innovation, and earning.

### 🔸 Platform Overview

#### A. Decentralization and Blockchain Integration

Challenge.GG is at the forefront of the decentralized gaming revolution. By leveraging blockchain technology, we ensure true ownership, security, and transparency for our users. Our platform offers:

* **Immutable Gaming Records**: Every transaction and achievement is permanently recorded, fostering a fair and trustworthy environment.
* **Secure Transactions**: Enhanced security for all in-game transactions, protecting player assets and data.
* **Smart Contracts for Fair Play**: Automated processes for tournament organization, prize distribution, and more, ensuring efficiency and trust.
* **Community Governance**: Empowering our community with a voice in the platform's evolution through token-based governance models.

#### B. Gaming Meets Web3

Embrace a new era of gaming with Challenge.GG's integration of Web3:

* **Loyalty Program**: Rewards in ETH for active participation, incentivizing engagement and investment in the platform.
* **Earn Through Gaming**: Monetize your gaming skills by hosting and winning in tournaments.
* **Seamless Crypto Transactions**: Easy handling of entry fees, prize money, and in-game purchases using various digital assets.

<figure><img src="/files/of1obtm22d7p8BH6I6VL" alt=""><figcaption></figcaption></figure>

#### C. Diverse Asset Support

Experience unparalleled freedom and flexibility with Challenge.GG's multi-asset gaming environment:

* **Broad Asset Integration**: Play and win using a variety of digital assets across different games.
* **Asset Flexibility**: Freedom in transactions with support for various cryptocurrencies and digital tokens.
* **Cross-Asset Gaming Opportunities**: Unique gaming experiences with asset-specific tournaments and events.

Challenge.GG is more than just a platform; it's a revolution in the gaming world. It's an invitation to be part of a future where gaming is not only about entertainment but also empowerment, innovation, and community. Whether you're a gamer, developer, or enthusiast, Challenge.GG offers you a space to explore, grow, and redefine what gaming means to you. Join us in shaping the future of gaming, where your skills, passion, and contributions are valued and rewarded. Welcome to Challenge.GG – where gaming evolves.

<figure><img src="/files/mDKfNgoczE5zDK05TxJA" alt=""><figcaption></figcaption></figure>


# Engine

Leveraging Microsoft Azure and Ethereum for a High-Performance Blockchain Solution

## Challenge app

🔸 **Introduction**

Blockchain technology is rapidly transforming industries by introducing decentralization and trustless systems. Recognizing this, we've developed an engine that merges Microsoft Azure's cloud services with the Ethereum network, offering enterprises a robust platform to harness blockchain's potential.

🔸 **Microsoft Azure**

**2.1 Overview** Microsoft Azure is a versatile cloud services platform, encompassing computing, analytics, storage, and networking solutions tailored to specific needs.

**2.2 Advantages in Blockchain Development** Azure's scalability and flexibility are ideal for managing complex, high-load blockchain tasks. It provides a secure, reliable, and globally accessible hosting environment for our blockchain engine.

🔸 **Ethereum Network**

**3.1 Overview** Ethereum is a decentralized blockchain with smart contract functionality, employing Ether as its native cryptocurrency.

**3.2 Advantages for DApp Development** Ethereum excels in smart contract functionality, token standardization (ERC20 and ERC721), and network security, making it ideal for decentralized application (DApp) deployment.

🔸 **The Engine**

**4.1 System Architecture** Our engine integrates Azure's cloud capabilities with the Ethereum network, focusing on security, scalability, and performance.

**4.2 Functionalities and Features** Key features include scalability, cost-efficiency, high throughput, and real-time data analytics.

**4.3 Use Cases** We demonstrate potential use cases across various sectors, showcasing the engine's versatility.

🔸 **Original Games: FrontLand**

FrontLand is powered by Unreal Engine 5 and integrated with Ethereum's ERC-721 standard for NFTs. This combination brings:

* **Advanced Real-Time 3D Creation:** Leveraging Unreal Engine 5's Nanite graphics and Lumen illumination for unmatched visual fidelity.
* **Complex Gameplay Mechanics:** Enabled by Unreal Engine 5’s Blueprint system.
* **Unique In-Game Assets:** Each asset is tokenized as an ERC-721 NFT, allowing players to buy, sell, or trade these unique items on the Ethereum blockchain. This system introduces real-world rarity and value to digital assets.

🔸 **Conclusion**

**5.1 Summary** Our engine stands as a powerful blockchain solution, combining Microsoft Azure's cloud prowess with Ethereum's robust network. It offers scalability, security, and diverse application potential.

**5.2 Future Directions** We're committed to continuous development and enhancement, aiming to expand the engine's capabilities and applications in the evolving world of blockchain and gaming.


# Currencies

ETH

<figure><img src="/files/8YERlrZ1yJldFmyIqyXS" alt=""><figcaption></figcaption></figure>

### Embracing Diversity in Cryptocurrencies

In an increasingly digital world, Challenge.gg aims to create an environment where everyone, regardless of their choice of games or cryptocurrencies, can participate and reap the benefits of an engaging and profitable gaming ecosystem.

Our platform brings a variety of games to the table, ensuring that players with different tastes find something that resonates with them. With a wide array of games spanning various styles and categories, players can indulge in their favourite pastimes and share in the excitement of competitive gaming.

Moreover, Challenge.gg empowers users by giving them the opportunity to actively contribute to its evolution. Users can vote and participate in development decisions, be part of thrilling tournaments, and even stake their digital assets to earn passive income from the ecosystem's revenue.

### The Power of Diverse Cryptocurrencies

Our network recognises the vital role of cryptocurrencies in expanding our user base and player community. Thus, we are dedicated to fostering an environment conducive to multiple cryptocurrencies, starting with Ethereum, our foundational network.

The Challenge.gg tournament system is built on the Ethereum network, allowing players to join tournaments and access features within the ecosystem using Ether (ETH).

### Expanding Horizons with Multiple Chains and Currencies

However, our ambitions don't stop at Ethereum. We are committed to building our tournament system across different blockchain networks, each supporting its unique currency.

The first of these expansions will introduce $Challenge Token, our native token, followed by the integration of Tether (USDT).

Next on the roadmap is the incorporation of Binance Smart Chain (BSC), enabling users to play using Binance Coin (BNB).

This roadmap aligns with our ultimate goal to onboard a variety of currencies, making it easier for players to interact with our ecosystem using their preferred digital asset.

Our platform also accommodates developers looking to integrate their web3 games into our ecosystem. This flexibility ensures that developers can utilize their choice of currency for their games, reinforcing our commitment to a truly inclusive and comprehensive gaming network.

At Challenge.gg, we believe in the power of diversity, not just in gaming, but also in the cryptocurrencies that power our platform. Our mission is to build a universal platform that brings players, developers, and digital assets together to create a vibrant, engaging, and profitable gaming ecosystem.

### When?

Check out our ROADMAP:

{% content-ref url="/pages/O6kuxIxPjHk2d6BnprY1" %}
[ROADMAP](/roadmap/vision)
{% endcontent-ref %}


# Challenges

**Introduction to Tournament Segments in Our Whitepaper**

Welcome to the dynamic world of our gaming platform, where competition, skill, and entertainment converge to create an unparalleled gaming experience. Our platform is designed to cater to a wide range of gamers, from casual players to hardcore enthusiasts. In this segment of our whitepaper, we delve into the four distinct tournament categories that define our gaming ecosystem: FLASH 24/7 Tournament on Demand, Domination, Qualify Squads, and Training Camp. Each category is tailored to offer unique challenges and rewards, ensuring that there's something for everyone.

<figure><img src="/files/1NjQwPNl31SWANCD44cA" alt=""><figcaption></figcaption></figure>

**1. FLASH 24/7 Tournament on Demand**

*Overview:* FLASH is our round-the-clock, Sit-and-Play On-Demand Tournament, crafted to meet the demands of gamers seeking flexible and immediate competitive play. This segment is perfect for players who prefer quick and intense gaming sessions.

*Key Features:*

* **Sit-and-Play Format:** Easy entry and automatic game start when enough players join.
* **Cost-Effective:** Low entry fees, making it accessible to a wide range of players.
* **24/7 Availability:** Play anytime, suiting all schedules and time zones.
* **Real-Time Gaming:** Immediate action as soon as the lobby fills up.
* **Blockchain Integration:** Utilizing Ethereum for secure and transparent transactions.

{% content-ref url="/pages/VnyMSOvjOnWbWYn11b2o" %}
[FLASH](/challenge/challenges/flash)
{% endcontent-ref %}

***

**2. Domination**

*Overview:* Domination is a high-stakes, structured tournament held on specific dates and times. It's designed for players who thrive in competitive, head-to-head or team-based challenges.

*Key Features:*

* **Regular Schedule:** Weekly tournaments with fixed timings for consistent engagement.
* **High Stakes:** Significant cash prizes attracting top global players.
* **Team and Solo Play:** Options for individual or team participation.
* **Transparent Entry:** Straightforward buy-in process with clear prize pool information.

{% content-ref url="/pages/iEzexpuSOy6rknwvtXJV" %}
[DOMINATION](/challenge/challenges/domination)
{% endcontent-ref %}

***

**3. Qualify Squads**

*Overview:* Qualify Squads is our initiative to level the playing field in esports, focusing on skill and determination over financial resources. It's a gateway for talented players to enter major tournaments.

*Key Features:*

* **Skill-Based Entry:** No substantial crypto bankroll required, just gaming prowess.
* **Qualifying Rounds:** Initial contests to filter and identify top players.
* **Major Event Access:** Qualified players get to compete in high-reward Challenge events.
* **Democratizing Esports:** Focusing on talent and strategic gameplay.

{% content-ref url="/pages/wXeyKiRW7nkXZKD1ADvV" %}
[Qualify Squads](/challenge/challenges/qualify-squads)
{% endcontent-ref %}

***

**4. Training Camp**

*Overview:* The Training Camp is a nurturing ground for new players, offering a mix of Triple-A and original games. It's an ideal platform for learning, improving skills, and experiencing competitive play in a fun environment.

*Key Features:*

* **Diverse Game Selection:** A blend of popular and exclusive games.
* **Free Tournaments:** Regular, no-cost competitive events for practice and enjoyment.
* **Progress Tracking:** Tools and resources to help players evolve and enhance their skills.
* **Community and Fun:** A friendly environment for enjoyment and social interaction.

{% content-ref url="/pages/gCGV69MBgdnPVkjnge9O" %}
[Training camp](/challenge/challenges/training-camp)
{% endcontent-ref %}

***

**Awards and Rewards**

Participation in any of these tournament categories comes with its own set of rewards and surprises, including drops and special campaigns. Stay updated with our latest reward programs by following us on Twitter and Telegram.

Our platform's diverse tournament offerings are designed to make gaming fun, exciting, and competitive for everyone. Whether you're looking to jump into a game instantly, compete in high-stakes tournaments, showcase your skills without financial barriers, or start your journey in competitive gaming, our platform has something to offer. Join us in this gaming revolution and find your place in our vibrant community.


# FLASH

24/7 Tournaments

🔸 **Overview**

In response to the growing needs of the gaming community for flexible, user-friendly competition formats, we are thrilled to introduce FLASH our 24/7 Open Sit-and-Play On-Demand Tournament. This innovative system allows players of all levels to participate in games whenever they want, without the need to adhere to rigid schedules.

🔸 **The Sit-and-Play Concept "FLASH"**

The essence of our sit-and-play format lies in its simplicity and accessibility. As the name suggests, a player simply "sits" (registers) to play a game, and when the lobby is filled with a pre-determined number of participants, the game "plays" or begins automatically. These tournaments are short and sweet, typically lasting less than an hour, which makes them perfect for players looking for quick, intense gaming sessions.

🔸 **Cost-Effective and User-Friendly**

One of the main attractions of our FLASH tournaments is their affordability. The entry cost is kept low, ensuring that the tournament remains accessible to all gamers regardless of their budget. Furthermore, the platform is designed to be user-friendly, making it easy for both novice and veteran players to sign up and participate.

🔸 **24/7 Open Tournament**

The FLASH tournament system operates 24/7, providing players with the freedom to play whenever they desire. There are no fixed schedules or deadlines to worry about. Instead, players can log in at any time and join a tournament that suits their preference and skill level.

🔸 **Real-Time On-Demand Gaming**

This tournament system revolves around real-time on-demand gaming. As soon as the required number of players has gathered in the lobby, the game begins. This eliminates the need for players to wait around for long periods before the start of a game, ensuring a seamless and efficient gaming experience.

### **Functionality of FLASH Protocol**

The FLASH protocol facilitates decentralized gaming tournaments, utilizing blockchain technology for enhanced transparency, security, and user autonomy. It integrates the use of Ethereum (ETH), a leading blockchain-based platform, as a mode of transaction.

Here's an outline of how FLASH operates:

1. **Participant Onboarding**: Before the tournament commences, interested players must pay an entry fee in Ethereum (ETH). This not only ensures participation but also contributes to the prize pool. The fee acts as an ante, mirroring traditional gaming tournament structures.
2. **Tournament Initialization**: Once the required number of participants (or 'flash') has filled, the tournament officially begins. This is an automated process triggered by achieving the participant quota.
3. **Conduct of Tournament**: The tournament is conducted as per the predefined rules. Depending on the nature of the tournament, this could involve single games or a series of games leading to a final.
4. **Winner Declaration and Payout**: At the end of the tournament, the winners are determined according to the tournament rules. The FLASH protocol automatically triggers the payout to these winners. The blockchain contract inherent in the system autonomously transfers the ETH from the prize pool to the winners' wallets.

The entire process, from entry to payout, is facilitated by smart contracts on the Ethereum blockchain. These contracts automate the transactions and ensure the unbiased, tamper-proof, and prompt transfer of rewards to the winners.

By leveraging blockchain technology, FLASH eliminates the need for an intermediary, ensuring direct and fair transactions between participants. This decentralized approach empowers players and ensures a transparent and robust gaming experience.

###


# DOMINATION

Top Guns

Domination, a unique, challenging tournament with a distinct structure and organization, hosted on predetermined dates and times. This high-stakes tournament series invites players to compete head-to-head or within small teams, bringing a different level of excitement and competition to the gaming world.

Domination is not just any competition; it has been meticulously designed to draw top players from all corners of the globe, luring them with the promise of significant cash prizes. The tournament unfolds over several rounds, each carrying its own set of challenges and adrenaline rushes. The participants will face each other one-on-one or form small teams, all aiming for one ultimate goal: to become the champion.

Hosting this tournament on a weekly basis, Domination offers lucrative prize pots and grand awards for the top winners. An essential feature of our tournaments is that they operate on fixed dates and times, ensuring maximum participation from all our esteemed players.

Entrance to the competition requires an entry fee, serving as a buy-in for all interested players. The buy-in process is transparent and straightforward, as we believe in maintaining the utmost clarity with our participants. The excitement builds up as the prize pool is disclosed well in advance, enabling players to gauge the value of their investment in the tournament.

### So, how can you be a part of this thrilling experience?

To participate in Domination, our esteemed weekly tournament, all you need to do is pay the entry fee. After that, brace yourself for high-stake competitions and the chance to win substantial prizes. We welcome all the champions at heart, extending an opportunity for them to prove their worth and take home grand awards.

Come, be a part of this gaming revolution, and make your mark in Domination!

{% content-ref url="/pages/rGpn6keMyvvF6qyPNgyf" %}
[How to join a Tournament](/challenge/f.a.q/how-to-join-a-tournament)
{% endcontent-ref %}

### Qulify Squads

Read more about how to Qualify to Domantion:

{% content-ref url="/pages/wXeyKiRW7nkXZKD1ADvV" %}
[Qualify Squads](/challenge/challenges/qualify-squads)
{% endcontent-ref %}


# Qualify Squads

For the future top players

🔸 **Understanding Qualify Squads**

Challenge's Qualify Squads are designed to provide an opportunity for players with high levels of skill but without substantial crypto resources. This concept is rooted in the belief that talent and determination should be the determining factors in the realm of esports, not the size of one's bankroll.

Qualify Squads serve as a launchpad for these players, enabling them to qualify for larger tournaments, showcase their skills on a broader stage, and secure significant rewards. The concept addresses one of the most pressing issues in the esports industry, effectively democratizing the competition.

#### 🔸 The Process

Before every major Challenge event boasting high rewards, the platform will set up Qualify Squads. Here's a snapshot of how this process works:

1. **Registration**: Players sign up to become part of the Qualify Squads. No hefty crypto bankroll is required; all one needs is the requisite skill and passion for gaming.
2. **Qualifying Rounds**: Players compete in initial rounds of gaming contests. These rounds serve as the filtering process, assessing the abilities of players, and narrowing down the pool of participants.
3. **Qualification**: The top players from these initial rounds, selected purely based on their gaming performance, earn a spot in the Qualify Squad.
4. **Big Event Participation**: Players who qualify become part of the squad that competes in the major Challenge events. Their gaming skills, rather than their financial resources, enable them to compete for large rewards.

#### 🔸 The Impact

Through the Qualify Squads, Challenge seeks to redefine how esports operate. By stripping away the entry barrier of large crypto bankrolls and making skill the prime determinant of success, we aim to:

* Democratize access to high-reward tournaments, ensuring fairness and equality within the ecosystem.
* Encourage a greater number of participants, promoting a richer and more diverse competition.
* Highlight the importance of skill, endurance, and strategic thinking in gaming, setting a new standard in the esports world.
* Pave the way for undiscovered talent to rise, enhancing the quality of gameplay and making esports more thrilling for participants and spectators alike.

Read more about how to join a tournament:

{% content-ref url="/pages/rGpn6keMyvvF6qyPNgyf" %}
[How to join a Tournament](/challenge/f.a.q/how-to-join-a-tournament)
{% endcontent-ref %}


# Training camp

For beginners

Welcome to our exhilarating Training Camp! This is your starting point, your playground, and your training ground all wrapped up into one exciting platform. Whether you're new to the gaming scene or just looking for an opportunity to refine your skills, the Training Camp is specially tailored for you.

### 🔸 Step into the World of Competitive Gaming

If you're a fan of Triple-A games, the Training Camp opens a unique gateway for you. Now, you don't just play these blockbuster games for fun but you also get to be part of a community of competitive players. Engage in friendly yet intense matches, participate in tournaments, and learn how to turn your love for games into a potential avenue for competitive play.

### 🔸 Diverse and Original Games

Beyond the popular Triple-A titles, the Training Camp also hosts a collection of original games, exclusive to our platform. These games are specifically designed to challenge your strategic thinking, reflexes, and overall gameplay skills. As you traverse through these games, each unique in their elements, you also familiarize yourself with various gaming genres, styles, and mechanics.

### 🔸 Free Competitive Tournaments

The Training Camp stages free competitive tournaments on a regular basis. Here, you're not just pitting your skills against other players, but you also get a taste of the thrill, tension, and excitement that is inherent in competitive gaming. These tournaments are not only about winning but also about learning - from your own game play, your competitors, and the entire gaming experience.

### 🔸 Get Better at Playing

Progress is a central feature of the Training Camp. Here, learning and improvement are as important as fun and entertainment. With our expertly designed games and tournaments, we provide you with an environment that pushes you to constantly evolve as a player. Track your progress, understand your strengths and weaknesses, and strive to be a better version of your gaming self each time you log in.

### 🔸 A Fun-Filled Competitive Environment

While we promote competitiveness, we also put great emphasis on fun. The Training Camp maintains an environment where players can freely enjoy themselves, make friends, and share memorable gaming moments. Remember, at the end of the day, games are all about enjoyment, and we work hard to ensure you always have a blast while here.

### 🔸 Prepare for the Big Leagues

Think of the Training Camp as your springboard to the big leagues. This is where you learn the ropes, improve your skills, and prepare yourself for bigger challenges. We're here to equip you with the knowledge, techniques, and confidence to step into larger arenas.

The Training Camp for Beginners is more than just a gaming platform. It's your journey, your story, your gateway to the exciting world of competitive gaming. Are you ready to take the first step? Come and join us in the Training Camp!

### 🔸 Read more how to participate in Traing camp:

{% content-ref url="/pages/rGpn6keMyvvF6qyPNgyf" %}
[How to join a Tournament](/challenge/f.a.q/how-to-join-a-tournament)
{% endcontent-ref %}

## Awards

When you are playing Flash or in Training camp, you can be rewarded through drops and many more random surprises. Follow us on Twitter and Telegram to get more information about the reward campaigns in the training camp.

{% content-ref url="/pages/aH6CAhpFhQhmwgfuzexU" %}
[Broken mention](broken://pages/aH6CAhpFhQhmwgfuzexU)
{% endcontent-ref %}


# Leaderboards

To the top

In the heart of our tournament ecosystem lies a dynamic and multifaceted leaderboard system, designed to capture and reflect the diverse talents and efforts of our gaming community. Our leaderboards are not just a mere ranking tool; they are a comprehensive platform that showcases various aspects of gaming excellence.

<figure><img src="/files/JVR7SJAI0hpXvVxsnzCb" alt=""><figcaption></figcaption></figure>

🔸 **Long-Term and Short-Term Leaderboards: A Tale of Consistency and Momentum**

* **Long-Term Leaderboards**: These leaderboards are the testament to consistent performance and skill over an extended period. They track and highlight players who have demonstrated unwavering dedication and have achieved sustained success in various games.
* **Short-Term Leaderboards**: Contrasting the long-term leaderboards, these focus on capturing the essence of 'hot streaks' and immediate triumphs. They are constantly updating to reflect the latest trends, top performers of the week, and those who have made significant leaps in their gaming skills.

🔸 **Specialized Metrics: Beyond Just Winning**

Our leaderboards go beyond traditional win-loss metrics. We delve into a variety of parameters to showcase a player's journey:

* **Hot Streaks**: Recognizing players who are on a roll, this metric highlights those who have rapidly climbed the ranks in a short period.
* **Most Played Games**: This metric offers insights into player preferences and expertise, highlighting their dedication to specific games.
* **Other Metrics**: We continuously evolve our metrics to include innovative measures that reflect the diverse skills and strategies employed by players.

#### 🔸 Weekly Challenges: Fueling the Competitive Spirit

To keep the community engaged and the competition fierce, Challenge will host weekly challenges with enticing rewards. These challenges are designed to:

* **Encourage Community Engagement**: By setting up unique and varied tasks each week, we ensure that there is always something new and exciting for our players.
* **Reward Excellence**: Winners and top performers in these challenges will receive rewards, recognition, and possibly an opportunity to alter their standings on the leaderboards.

#### 🔸 Personal Growth and Development: Climb the Ranks

Our leaderboard system is not just about competition; it's a tool for personal growth and development. Players can:

* **Track Their Progress**: By observing their own standings, players can gauge their improvement over time, identify areas for development, and celebrate their achievements.
* **Set Personal Goals**: With a clear view of where they stand among peers, players can set realistic and challenging goals for themselves.
* **Gain Recognition**: Moving up in the leaderboards brings not just personal satisfaction but also recognition within the community.

Our leaderboards and ranks are designed to be more than just a measure of success; they are a comprehensive platform for growth, competition, and community engagement. Whether you're a seasoned gamer aiming for the top or a newcomer looking to make your mark, our system is here to track, motivate, and celebrate your journey in the gaming world.


# Marketplace

TBA


# F.A.Q

### 🔸 How to connect Epic acount?

Before playing a Fortnite challenge, we will ask for your Epic Account Id. We will then verify that it exists and is not already connected. Then you are enabled to play Fortnite Challenges

### 🔸 **How to create your Frontland account?**

Before playing a Frontland challenge, we will ask you to set a password. We will then use that with your username to create a FrontLand account. After that, please use the same account to log in to the Frontland PC game. Then you are enabled to play FrontLand challenges.

### 🔸 How to set user name?

After creating an account for the first time, we will ask you for a username. A username must be between 3 and 20 characters. A to Z - upper or lower - and 0-9.

### 🔸 What kind of user name can i use?

Username must be between 3 and 20 characters. A to Z and 0-9

### 🔸 **Can't make a buy-in for a tournament?**&#x20;

You will need to have $WETH that cover the entrance fee and ETH for the small gas transaction. If you still can't make a buy-in please ensure that you have:\
\
**FrontLand:**

* Latest downloaded gamplay
* Playfab account settings in your profile&#x20;

**Fortnite:**

-Connect your Epic account to the Challenge app.


# How to join a Tournament

Step by step

### 1. Set up a web3 wallet

{% content-ref url="/pages/kw2BzfoLf251G8Sn6xTn" %}
[Create a wallet](/first-step/create-a-wallet)
{% endcontent-ref %}

### 2. Connect wallet to Challenge

{% content-ref url="/pages/dbK2ne9kHLIBCCeJUL11" %}
[Purchase tokens](/first-step/purchase-tokens)
{% endcontent-ref %}

### 3. Create an Challenge Acount

{% content-ref url="/pages/Pag72X7YzZLLoNXaAjvf" %}
[Launch App](/first-step/launch-app)
{% endcontent-ref %}

### 4. Log in to Challenge.gg

{% content-ref url="/pages/7UbwVqpYZd41oARfuFqJ" %}
[Broken mention](broken://pages/7UbwVqpYZd41oARfuFqJ)
{% endcontent-ref %}

## Now you are ready to sign up for **Tournaments**&#x20;


# How to start a match?

Starting a match on Challenge.gg is easy and straightforward. You can pay your entry fees using ETH right from the start, or use $CHALLENGE.GG, the native token of our platform. This guide will walk you through the process step-by-step.

<figure><img src="/files/mDKfNgoczE5zDK05TxJA" alt=""><figcaption></figcaption></figure>

### Step 1: Get $CHALLENGE.GG or ETH

Firstly, you need to have either $CHALLENGE.GG or ETH in your Web3 wallet. These are the accepted currencies for entering matches on Challenge.gg.

Don't worry if you don't already have $CHALLENGE.GG coins. You can purchase these directly within our app, or via any exchange that supports $CHALLENGE.GG. More details about purchasing coins can be found in the next section.

### Step 2: Purchase Coins (Optional)

In case you do not hold any $CHALLENGE.GG coins, follow these steps:

1. Inside the Challenge.gg app, navigate to the purchase option.
2. Choose the desired amount of $CHALLENGE.GG coins you wish to buy.
3. Pay with your preferred currency. The transaction will be processed and the coins will be transferred to your account.

Alternatively, you can also buy $CHALLENGE.GG coins from supported exchanges. Make sure to transfer them to your Web3 wallet to use them on Challenge.gg.

### Step 3: Pay the Entry Fee

To join a match, simply pay the entry fee using either $CHALLENGE.GG or ETH. Verification is done via your Web3 wallet, ensuring all transactions are securely handled on the blockchain.

### Upcoming Implementations

In our commitment to make Challenge.gg more inclusive and versatile, we are working on incorporating additional crypto assets into our payment system. In the near future, users will be able to pay entry fees with USDT, BNB, and BUSD. This will allow players to participate in their favorite tournaments using their preferred crypto assets. Stay tuned for updates on this!

We're excited to provide you with a platform where you can not only enjoy playing the games you love but also utilize your favorite cryptocurrencies. Good luck, and may the best challenger win!

{% content-ref url="/pages/w5CCH5ELbpnZ7Jwa7yj7" %}
[Buy & Sell](/tokenomics/token/buy-and-sell)
{% endcontent-ref %}


# How do I create an account on FrontLand?

#### How do I create an account on FrontLand?

To create an account on FrontLand, you can use the same password and username that you set up when creating your challenge account. When you applied in the challenge app, an account was automatically created for you.

#### What should I do if I forgot my username or password?&#x20;

If you have forgotten your username or password, you can check it on the profile page of your challenge account.

#### Can I log in to the challenge app without a password?

Yes, you can log in to the challenge app using your web3 wallet. You don't need a password. To confirm that it is you, you can verify your identity through your web3 wallet.


# How Deposits Work in Our System

Traditionally, in many online platforms, users are required to deposit funds into a centralized account to participate in activities or gain access to certain features. However, our platform operates on a fundamentally different principle that ensures both user convenience and security. We have eliminated the need for users to deposit funds into an account. Instead, our platform utilizes smart contract technology to execute transactions.

### Pay-per-Challenge Model

Every time a user wishes to participate in a challenge, they are required to pay a fee. This fee is not deposited in an account but is transacted directly through our smart contract. This pay-per-challenge model enables users to pay only for what they want to participate in, offering them more control over their spendings.

### Smart Contract Technology

Smart contracts are self-executing contracts where the terms of the agreement are directly written into lines of code. These are deployed on the blockchain, which ensures the contracts are decentralized and secure. The code controls the execution, and transactions are trackable and irreversible.

When a user decides to participate in a challenge, the smart contract is triggered, facilitating the payment transaction. The fee is transferred directly to the smart contract, eliminating the need for deposits or intermediaries.

This system ensures that the transactions are:

1. **Transparent:** Every transaction is recorded on the blockchain, which can be publicly verified.
2. **Secure:** The use of blockchain technology ensures that each transaction is secure and cannot be tampered with once it's recorded on the blockchain.
3. **Efficient:** The transactions are processed swiftly, without requiring the usual processing time as in traditional banking systems.
4. **Trustless:** There's no need to trust a third party since the smart contract execution is managed by the blockchain network itself.

By leveraging the advantages of blockchain and smart contract technology, our platform offers a streamlined, transparent, and secure method for users to participate in challenges, without the hassle of depositing funds into a centralized account.


# Managing Your Winnings

### Receiving Your Winnings

Every time you achieve a victory within our gaming platform, rewards are processed automatically and promptly deposited into your Web3 wallet. The transaction of rewards is governed by our self-executing smart contracts which ensure a swift, seamless, and secure transfer of your earnings.

The rewards are always disbursed in the currency designated for the specific tournament you participate in. The details, including the percentage of winnings, are transparently presented to you prior to the start of your gaming experience. This ensures a fair and transparent reward system, allowing you to make informed decisions before joining any tournament.

### Integration with Decentralization

Our platform utilizes the power of blockchain technology to provide a decentralized gaming ecosystem. Our smart contracts lie at the heart of this process, not only guaranteeing automatic payout of rewards but also contributing to a fully decentralized, fair, and immutable system. This means that our contracts are independently verifiable and free from any central point of control, thereby providing a fair and secure environment for all gamers.

### Converting Your $CHALLENGE.GG Coins

Should you wish to convert your winnings in the form of $CHALLENGE.GG coins into another currency, we provide a convenient and straightforward mechanism for this within our app. With a few simple clicks, you can convert your coins to a currency of your choice.

Alternatively, you can also exchange your $CHALLENGE.GG coins on any cryptocurrency exchange where our token is listed. This provides you with the flexibility to manage your winnings as per your preference and financial strategy.


# Disqualified

Ensuring Fair Play and Protecting the Gaming

#### Introduction

In the realm of competitive gaming, maintaining fair play and upholding the integrity of the gaming community is of paramount importance. This whitepaper aims to outline the disqualification rules specifically designed to prevent unfair advantages and protect the interests of all participants.

#### Importance of Timeliness

One key aspect of fair play is ensuring that all players adhere to the designated schedule and start their matches promptly. By doing so, we can guarantee a level playing field for all competitors and avoid any potential disruptions or unfair advantages that may arise from delayed starts.

#### Disqualification for Failure to Start on Time

To maintain the integrity of the gaming competition, any player who fails to initiate their game when indicated by the lobby will be subject to disqualification. The designated start time is communicated to all participants, and it is the responsibility of each player to be present and ready to begin their match at the specified time.

#### Preventing Cheating and Unfair Practices

By enforcing strict rules regarding timely game starts, we effectively deter players from attempting to gain an unfair advantage through strategies such as manipulating game mechanics, scouting opponents during the delay, or obtaining additional information to enhance their chances of victory. This safeguards the competitive environment and ensures that each player competes solely on their skill, knowledge, and strategy.

#### Protecting the Community

Disqualification rules play a vital role in safeguarding the gaming community as a whole. By deterring cheating and maintaining fair play, we protect the interests and reputation of both individual players and the community at large. This ensures that competitions are conducted with transparency, trust, and respect, fostering a positive and enjoyable experience for all participants.

#### Transparent Enforcement

The disqualification rules are applied consistently and transparently to all players, regardless of their status or reputation within the gaming community. This approach ensures equal treatment and serves as a deterrent for potential rule violators. The enforcement process adheres to fair procedures, providing players with an opportunity to learn from their mistakes and grow as competitors.


# Cheating

In maintaining the integrity and fairness of Challenge, we adopt a strong stance against cheating. It is paramount to us that every user experiences a level playing field, encouraging healthy competition and promoting skill development. Consequently, we employ a robust mechanism to detect, mitigate, and eliminate cheating.

If you suspect that a user is cheating, we appreciate your proactive approach in reporting it to us. Your keen eyes and commitment to fair play are what keep Challenge thriving.

**What to Do When You Spot a Cheater**

1. **Identify**: Keep in mind that not all instances of exceptional performance or strange behaviour indicate cheating. It's crucial to discern between a highly skilled player and a cheater.
2. **Report**: If you are convinced that a player is indeed cheating, navigate to the user's profile and select the 'report' button. It is crucial to provide as much detail as possible to help us investigate and act swiftly.
3. **Wait**: Once a report is submitted, it will be handled by our Anti-Cheat Team, a group of trained professionals dedicated to maintaining fair play. They will scrutinize the reported account, corroborate your findings, and take appropriate action.

**Our Anti-Cheat System**

At Challenge, we take great pride in the proprietary anti-cheat system embedded within all our original games. We fully control and constantly upgrade this system, designed to promptly detect any attempts at cheating. This system employs advanced algorithms and AI techniques, assuring an advanced level of cheat detection and prevention.

Our Anti-Cheat System is continually refined and updated to adapt to new cheating methods that may arise. By proactively staying ahead of cheaters, we ensure a fair and enjoyable gaming environment for all users.

Through your vigilance and our technology, we work together to keep Challenge a space where skill, strategy, and sportsmanship are rewarded. Your commitment to fair play enables us to continuously enhance our platform, and for that, we thank you. Together, let's keep Challenge cheat-free!


# Loyalty Program

**What is Loyalty program in the context of $challenge.gg?**

Loyallty refers to the process of participating in a program by committing $challenge.gg tokens to support the platform's operations. As a token holder, you may choose to be in the loyalty program with your tokens in one of two programs: one with no time limit and another with a 3-month limit.

**How do I choose between the no time limit and the 3-month limit program?**

It depends on your personal preference and financial strategy. If you want flexibility with your tokens anytime, the no time limit program would be suitable for you. If you're looking for potentially higher rewards and can commit to a longer time period, the 3-month limit program may be more suitable.

**How is the Annual Percentage Rate (APR) or Annual Percentage Yield (APY) determined?**

The APR or APY for the loyalty program in $challenge.gg is directly influenced by the revenue generated on the platform. The revenue comes from entry fees for the challenge tournaments and future transactions on the marketplace. As the platform generates more revenue, the APR or APY could potentially increase.

**How are the loyalty rewards paid out?**

The rewards are automatically paid out in Ethereum (ETH).

**When can I claim my rewards?**

You can claim your rewards at any time you choose. There is no fixed schedule or limit on when rewards can be claimed. It's all about your comfort and strategy.

**Where do the funds for the loyalty rewards come from?**

The rewards are funded from the revenue that the platform generates. This revenue is primarily generated from entry fees for challenge tournaments and future marketplace transactions.

**What happens if I contribute in the 3-month limit program and need to withdraw them earlier?**

The terms of early withdrawal will depend on the specific rules of the loyalty program. Typically, there may be penalties or forfeitures for early withdrawal to incentivize and reward longer-term participation. For more detailed information, please refer to the specific guidelines associated with each program.


# DAO

### 1. What is a DAO?

A DAO, or Decentralized Autonomous Organization, is an organization represented by rules encoded as a computer program that is transparent, controlled by the organization members and not influenced by a central government.

### 2. Who can participate in the DAO?

Anyone who holds or member in the loyalty program with our token can participate in the DAO. The level of participation may vary depending on whether you are a holder or a staker.

### 3. What is the difference between a member of loyalty program and a holder?

A member in the loaylty program is a holder who actively participates by locking up their tokens for a specific period to help secure the network or make decisions. On the other hand, a holder is a token owner who may not necessarily participate in the program.

### 4. What is the role of the committee in the DAO?

The committee is a select group within the DAO tasked with presenting proposals for votes. They are involved in the research, formulation, and presentation of issues that holders or stakers vote on.

### 5. How are decisions made in the DAO?

Decisions are made through a voting process. Each holder gets to vote on proposals presented by the committee. The weight of your vote depends on the number of tokens you hold.

### 6. How can I vote in the DAO?

As a member of the loaylty program or a holder, you can vote by casting your ballot through our DAO's interface during the voting period for each proposal. Details of how and when to vote will be communicated.

### 7. How can I become a member of the loaylty program?

To take part of the loaylty program, you will need to lock up a specific amount of tokens for a set period. The procedure for doing this will be provided on our platform.

### 8. What are the benefits of being in the loaylty program?

Loaylty program will enjoy several benefits such as increased voting power, rewards for securing the network, and possibly a greater influence on the DAO's direction.

### 9. Can I lose my tokens in the loaylty program?

While the specifics depend on the DAO's design and smart contract functionality, typically, you do not lose tokens simply by taking part of the program. Unless there is a penalty mechanism for malicious actions or non-participation in key votes. Always read the program rules before participating.

### 10. Can I withdraw my tokens from the loaylty program?

Yes, you can withdraw your tokens after a specified locking period. However, withdrawing before this period ends may incur penalties.

### 11. How does the DAO ensure transparency?

The DAO operates on blockchain technology, ensuring that every transaction and decision-making process is recorded on a public ledger, making the operations transparent.

### 12. How secure is the DAO?

DAOs are built on the blockchain, known for its strong security measures. However, like any other online platform, it's crucial to remain vigilant against possible attacks and vulnerabilities.


# Original games

Challenge Studios

🔸 **Pioneering the Future of Gaming in Stockholm**

The Studio Located in the heart of Stockholm, Sweden, Challenge studios want to change the industry of launching and building games. At Challenge, we are setting new benchmarks in interactive gaming with our original titles, launched in a competitive, yet inclusive environment.

Challenge Studios was not just to create games but to innovate, demonstrating how Triple-A gaming experiences can be revolutionarily combined with the web2 and web3. \
The team is professionals, boasting a history with major titles like Payday and involvement in projects that have engaged millions worldwide.

<figure><img src="/files/FcNGg5xvwxqxxGvY8ciO" alt=""><figcaption></figcaption></figure>

🔸 **Frontland: A Convergence of Innovation and Gaming**

Frontland is the epitome of our pioneering spirit. Developed as a proof of concept, this game is a testing ground for a unique hybrid of traditional (Web2) and blockchain (Web3) gaming technologies. It's an ambitious project that showcases our commitment to redefining gaming paradigms and exploring new frontiers.

🔸 **Anticipating Frontland: A Milestone in Gaming**

With its beta phase underway, Frontland is poised for a grand release on renowned platforms such as Steam or Epic Games in 2024. As the first in a series from Challenge Originals, this game is more than a new title; it's a start of our innovative drive and a glimpse into the future of gaming.

🔸 **Expanding Horizons: Ongoing Development and New Ventures**

Our path forward is one of continuous evolution and expansion. We are committed to enriching our existing game portfolio and start on new projects, each tailored to thrive in competitive environments. Our focus is to create games that are not just entertaining but also immersive, challenging, and engaging.

{% embed url="<https://www.youtube.com/watch?v=SgOM3SK--QM>" %}

### Project-x&#x20;

Working on our flagship game TBA

More coming soon


# FrontLand

FPS = First person shooter

{% embed url="<https://www.youtube.com/watch?v=SgOM3SK--QM>" %}

#### 🔸 Introduction:&#x20;

FrontLand is a free-to-play shooter game developed by Challenge Original Games. It offers an immersive and competitive third-person shooting experience, powered by the cutting-edge Unreal Engine 5. This whitepaper aims to provide an overview of FrontLand, its gameplay, and the features that make it a unique gaming experience.

#### 🔸 Gameplay:

FrontLand is designed to be a highly competitive shooter game where players must strategically take down their opponents to survive. The game can be accessed and played for free through app.challenge.gg, our dedicated gaming platform. Players have the opportunity to participate in challenges and compete against other players, showcasing their skills and aiming to climb the leaderboards.

#### 🔸 Beta Features:&#x20;

During the beta phase, FrontLand offers a one vs. one gameplay mode, allowing players to engage in intense duels with other participants. The playing map, carefully crafted to provide a thrilling experience, serves as the battleground for these face-offs. This beta phase acts as a foundation for refining the gameplay mechanics and receiving valuable feedback from the player community.

#### 🔸 Full Release Features:

Upon the game's full release, FrontLand will introduce a wide array of weapons and maps for players to choose from, expanding the strategic possibilities and offering diverse gameplay experiences. Additionally, a multiplayer mode will be introduced, allowing players to engage in larger-scale battles with friends and other players from around the world.

🔸 **Weapons**

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th></tr></thead><tbody><tr><td><strong>Desert Eagle</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/ImxQ7nBdqwd12n2pWYbg">/files/ImxQ7nBdqwd12n2pWYbg</a></td></tr><tr><td><strong>Famas</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/sZgbrHJFydZNh1KdUzVe">/files/sZgbrHJFydZNh1KdUzVe</a></td></tr><tr><td><strong>Marakov</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/yvmU7NWiuXX3kLoFPBDf">/files/yvmU7NWiuXX3kLoFPBDf</a></td></tr><tr><td><strong>MP5</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/6jhYN8RWah8dHTIBT1xl">/files/6jhYN8RWah8dHTIBT1xl</a></td></tr><tr><td><strong>Vector</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/11DFZnhzQl5iQAiR4jA6">/files/11DFZnhzQl5iQAiR4jA6</a></td></tr><tr><td><strong>AR-15</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/WjiyZvq6U2givsHynuOO">/files/WjiyZvq6U2givsHynuOO</a></td></tr><tr><td><strong>Colt</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/u43viz9GV0izvNfNiNeY">/files/u43viz9GV0izvNfNiNeY</a></td></tr><tr><td><strong>Scar</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/yMOoj3sZnNl921pBqzOq">/files/yMOoj3sZnNl921pBqzOq</a></td></tr><tr><td><strong>Frag</strong></td><td><em>(Stats coming soon)</em></td><td></td><td><a href="/files/DiqQITM74ApX2juxOhLC">/files/DiqQITM74ApX2juxOhLC</a></td></tr></tbody></table>

{% content-ref url="/pages/37xq4qlVxCN21BKZKwYB" %}
[Vision](/roadmap/vision)
{% endcontent-ref %}


# Challenge Extended

Compete, Connect, Conquer

Challenge Extended is a pioneering, innovative feature on our Tournament platform that allows our users to compete fiercely in a range of games. We have linked with popular and well-received challenge dApps via SDK or API, creating an immersive gaming ecosystem where players can engage in riveting competitions.

<figure><img src="/files/ZsyE9fxFdVcoRzQH3HLz" alt=""><figcaption></figcaption></figure>

Our first Extended game was the globally renowned Fortnite, providing users an opportunity to participate in build and no-build tournaments alike. These platforms let players showcase their skills, implement their strategies, and compete in an intense, rewarding gaming environment.

Looking ahead, we're excited to announce our plans to expand our portfolio. We aim to launch more Triple-A games on our Tournament platform, diversifying the gaming experiences we offer to our growing community. By providing a plethora of tournament games, we aim to cater to the diverse tastes and preferences of our users, enhancing their engagement and enjoyment.

Challenge Extended is more than a gaming platform – it's an inclusive, decentralized hub where all users can compete in their favorite games and challenge each other. It's a space where users can hone their skills, demonstrate their prowess, and earn recognition among their peers.

We believe that gaming should be competitive, exciting, and always evolving. That's why we're committed to continuous growth and development, to keep our platform fresh, dynamic, and engaging for all our users.

Please refer to our roadmap for details about the upcoming game launches. We're thrilled to share this journey with you as we keep pushing boundaries and defining the future of online gaming tournaments.

Stay tuned for more updates on Challenge Extended – because the game has just begun.

{% content-ref url="/pages/O6kuxIxPjHk2d6BnprY1" %}
[ROADMAP](/roadmap/vision)
{% endcontent-ref %}

## Fortnite&#x20;

Fortnite is implemented and live in tournament mode with both build and no-build tournaments.

{% embed url="<https://challenge.gg/>" %}

What is the next extended game? More info is coming soon.


# Fortnite

Fortnite is an online video game developed by Epic Games, released in 2017. It is available in three distinct game mode versions that otherwise share the same general gameplay and game engine: Fortnite Battle Royale, a free-to-play battle royale game in which up to 100 players fight to be the last person standing; Fortnite: Save the World, a cooperative hybrid tower defense-shooter and survival game in which up to four players fight off zombie-like creatures and defend objects with traps and fortifications they build; and Fortnite Creative, in which players are given complete freedom to create worlds and battle arenas.

In the Challenge platform you can play both build and no-build tournaments.

Join now and have fun!

{% embed url="<https://challenge.gg/>" %}

### For play a match in Fortnite:

* Connected web3 wallet to Challenge app
* User name in Challenge app&#x20;
* Connect Epic account to Challenge.app&#x20;

**What type of user name can i pick?**&#x20;

Username must be between 3 and 20 characters. A to Z and 0-9


# Mobile games

### 🔸 Introduction

As we look to the future of entertainment and connectivity, we see an immense potential for innovation in the mobile gaming industry. The rise in smartphone usage and technological advancements has given birth to a new era of digital entertainment that extends far beyond traditional gaming. With the anticipated launch in early 2024, Challenge.gg aims to revolutionize the way we play and interact in the gaming space

### 🔸 Mobile Gaming

Mobile gaming has emerged as an essential pillar of the gaming industry. It's not just about the convenience of being able to play anywhere and anytime; it's about fostering diverse, inclusive communities and innovative experiences that are accessible to everyone. Moreover, mobile games are not confined to any single genre or style, catering to all types of players and tastes. In line with this trend, Challenge.gg believes in leveraging the power of mobile games to bridge gaps and create a world where everyone has the opportunity to enjoy and excel in gaming.

### 🔸 Diversity and Inclusivity

At Challenge.gg, we believe that diversity is the key to fostering an engaging and vibrant gaming ecosystem. To ensure our platform is inclusive, we are committed to providing a wide array of games for every kind of gamer. Whether you prefer casual games for relaxation, or you are a competitive player seeking thrilling challenges, Challenge.gg will cater to your needs.

To bring this vision to life, Challenge.gg will host both casual and non-casual mobile games, setting them in a competitive environment. Our tournament platform will host a multitude of games, where users can participate in various levels of competition. From fun, friendly tournaments to high-stakes competitive events, there will be a place for everyone.

#### Challenge.gg will launch casual and non-causal mobile games and set them in a competitive environment on challenge.gg.&#x20;

Follow our socials for more information regarding launch with mobile games.

{% content-ref url="/pages/aH6CAhpFhQhmwgfuzexU" %}
[Broken mention](broken://pages/aH6CAhpFhQhmwgfuzexU)
{% endcontent-ref %}


# Vision

Revolutionizing Gaming with True Decentralization

<figure><img src="/files/SoBMJIWoeRvH17Q3PDTu" alt=""><figcaption></figcaption></figure>

At Challenge.gg, we're pioneering a new era in the gaming world, one where true decentralization isn't just a concept, but a reality. We're breaking down the traditional barriers of the gaming industry, empowering players to take control and reshape the gaming landscape. Our mission is to revolutionize gaming by placing the power directly in the hands of the community, ensuring that every player is not just a participant, but a key architect of the gaming universe.

🔸 **Decentralizing Power, Empowering Players**

At the heart of Challenge is the belief that the future of gaming should be in the hands of those who love it most - the players. We're decentralizing the traditional gaming model, shifting the power to you, the community. This means every game, every tournament, and every interaction isn't dictated by us; it's driven by you.

🔸 **Your Game, Your Rules**

Imagine a world where your favorite games are shaped by your preferences and feedback. At Challenge, that's our reality. We're creating a platform where the community's voice leads the development and evolution of games. Your game, your rules.

🔸 **Tokenizing Your Gaming Experience**

Your participation, your victories, your strategies - all contribute to more than just leaderboard rankings. With our unique token system, your gaming prowess translates into tangible rewards. These tokens aren't just in-game currency; they're a stake in the platform, a share in the ecosystem, a real-world asset.

🔸 **Building Teams, Fostering Communities**

Challenge is where teams are more than just players working together; they're communities thriving together. We're fostering an environment where collaboration, competition, and camaraderie go hand in hand. Your team is your family, your support system, your path to victory.

🔸 **Our Collective Challenge**

We're on a mission, but it's not just ours; it's ours collectively. We're inviting you to join us in this groundbreaking journey. Together, we'll redefine gaming, turning every challenge into an opportunity to innovate, to grow, to lead.

## "Your game, your community, your token, your team - Our Challenge."

Join Challenge.gg and be a part of this gaming revolution. Own your game, shape your community, invest in your tokens, build your team, and embrace our collective challenge. This is just the beginning. Welcome to the future of gaming.


# Achievements and future

#### Our Achievements:

* Built a robust tournament platform for competitive gaming.
* Seamlessly integrated blockchain technology for transactions, payments, and tournament signups.
* Developed a Software Development Kit (SDK) for third-party game developers and studios.
* Created 'FrontLand,' an immersive TPS game developed in Unreal Engine 5.
* Successfully incorporated 'Fortnite' into our tournament platform.
* Our application to one of the top five launchpads is currently under review.

#### Current Projects:

* Developing a dynamic Loyalty program.
* Creating an exciting new game.
* Implementing the platform in the upcoming Triple-A title.
* Conducting a ICO for early investors.
* Introducing DAO functionality to foster community involvement.
* Adding new maps and features to 'FrontLand'.

#### Launch Q1 2024:

Get ready for the upcoming launch. Here's what you can look forward to:

* Create an account on the Challenge app.
* Connect with friends, track rankings, view leaderboards, and create a personalized profile.
* Play two high-end games available on the platform.
* Compete in tournaments of various sizes and configurations.
* Participate in the loyalty program with a reward system based on revenue sharing.
* Utilize DAO functionality to contribute to the platform's development.

### The Future of Gaming:

The future of gaming at Challenge includes:

* A next-gen gaming system with competitive gameplay, clan participation, and ranking features.
* Early access to games before their official launch and a marketplace for trading game assets.
* Acquiring game studios and indie games to convert their inventory into blockchain-based experiences and NFTs.
* A community-driven decentralized gaming platform that revolutionizes the gaming industry.

### Join us at Challenge as we pioneer the future of blockchain gaming. Get in the game. Shape the game.


# Roadmap

<figure><img src="/files/QrWLRvW32mV1fVrUgEaU" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/16qHLkdkVJ1knLIoWcGK" alt=""><figcaption></figcaption></figure>


# Token

Token

The $CHALLENGE.GG token is built on the Ethereum blockchain, providing a secure, transparent, and decentralized system for managing and facilitating transactions within our ecosystem. It is the primary utility token and currency of Challenge Playground, used for purchasing, trading, and managing non-fungible tokens (NFTs) such as in-game features and assets in The Challenge marketplace.

<figure><img src="/files/QggV90Q3KKyJ7xUxjfY6" alt=""><figcaption></figcaption></figure>

### 🔸 Token Utility

The token has been designed to provide the community with a multitude of use cases:

1. **Purchase and Sale of NFTs:** Users can acquire $CHALLENGE Tokens to buy or sell NFTs, which include unique in-game features and assets on the Challenge marketplace.
2. **Staking program:** Owners of $CHALLENGE Tokens can be part of the loaylty program with their holdings, thus contributing to the network’s security and earning rewards in Ethereum. This programs serves to incentivize user participation and loyalty to the platform.
3. **Governance:** The $CHALLENGE Token acts as a governance token within the Challenge.gg ecosystem. Token holders can participate in the platform's Decentralized Autonomous Organization (DAO), voting on various proposals and influencing the direction and development of the ecosystem.

### 🔸 Blockchain Integration

The Challenge.gg ecosystem utilizes multiple Ethereum standards to support the functionality and flexibility of its operations:

* **ERC-20:** Used for the $CHALLENGE Token itself. ERC-20 is the technical standard used for all smart contracts on the Ethereum blockchain for token implementation.
* **ERC-1155 and ERC-721:** Utilized for digital assets storage and trading within the platform. These standards enable the creation of tokens that can represent ownership over digital assets.

All transactions and activities in the Challenge.gg platform are executed on the blockchain, ensuring maximum transparency and security for our users. We utilize InterPlanetary File System (IPFS) technology to store digital assets, further safeguarding the integrity of these assets and ensuring that they cannot be changed without the owner's permission.

### 🔸 Conclusion

The $CHALLENGE Token lies at the heart of the Challenge Playground ecosystem, underpinning all transactions, governance, and rewards within the platform. By integrating blockchain technology, we have created a transparent, secure, and inclusive system that empowers gamers and creators alike to experience truly unique gaming experiences.

Our vision for $CHALLENGE Token is to revolutionize the gaming industry, creating an ecosystem that incentivizes creativity, inclusivity, and innovation. We invite you to join us in our journey to reshape the gaming landscape. Welcome to the $CHALLENGE Token revolution.


# Initial Liquidity

Decentralized launch

#### 🔸 Initial Liquidity Provision

&#x20;To bootstrap the liquidity for $Challenge Token, we will allocate an initial amount of estimated 600,000 $Challenge Token, which represents 0.6% of the total token supply. These tokens will be paired with estimated $100 000 in ETH as pair on Uniswap, effectively creating a $CT-ETH liquidity pool. This initial liquidity provision is crucial for enabling seamless token trading and facilitating market efficiency from the outset.

#### 🔸 Liquidity Lock-Up Period

To enhance the trust and confidence of our community, we commit to locking up the LP tokens for a period of 12 months. This means that the liquidity provided by LPs will be inaccessible for trading or withdrawal during this period. By implementing this lock-up mechanism, we ensure that the liquidity remains stable and protected from any potential manipulation or sudden market fluctuations.

#### 🔸 Presale Platform Selection

&#x20;The presale platform for $Challenge Token will be announced soon. Our team is evaluating different platforms to ensure the highest standards of security, transparency, and user experience. We recognize the importance of selecting a trusted and reliable platform that aligns with our vision of a decentralized future for the gaming industry.

####


# Exchange and fee

Where can i buy and sell $CHALLENGE.GG?

🔸 **Introduction**

At $Challenge Token, we are revolutionizing the world of decentralized finance by creating unique utility tokens that cater to the distinct needs of our ecosystem. With the inception of our utility token, $Challenge Token, we aim to unlock new horizons of possibilities for our community members. To further extend the utility and liquidity of our token, we have chosen Uniswap as our decentralized trading platform.

<figure><img src="/files/3jhtIegtINwwiAE6Kmsr" alt=""><figcaption></figcaption></figure>

🔸 **Uniswap and its Impact**

Uniswap is a renowned decentralized trading protocol, guaranteed to secure the financial interactions of $Challenge Token holders. Engineered on the Ethereum blockchain, Uniswap is a reliable and transparent platform for token exchange, ensuring an open market pricing mechanism that is free from intermediaries.

Uniswap sets itself apart by enabling automated transactions between cryptocurrency pairs across liquidity pools. This pioneering protocol establishes a marketplace that connects buyers and sellers in an environment that is permissionless, open, and secure.

🔸 **$Challenge Token on Uniswap**

By integrating with Uniswap, we provide $Challenge Token token holders with the opportunity to trade directly from their wallets. The provision of liquidity in the Uniswap pool guarantees a 24/7 market for $Challenge Token. Users can engage in seamless trading of $Challenge Token, while maintaining full custody of their assets.

As $Challenge Token is integrated with Uniswap, holders can swap tokens, provide liquidity and earn transaction fees in return, and engage in yield farming activities. In addition, token holders will be able to participate in a decentralized, autonomous, and transparent financial ecosystem, setting the pace for a truly inclusive financial future.

🔸 **Security and Transparency**

At $Challenge Token, we are committed to providing a secure and transparent trading environment for our community. Uniswap's on-chain protocol ensures all transactions are transparent and verifiable on the Ethereum blockchain. This eliminates the risk of manipulation and fraudulent activities, ensuring the safety and security of our community's assets.

## Centralized Trading Platforms

Centralized exchanges (CEXs) are traditional, third-party platforms that operate similarly to banks or brokerage firms. CEXs act as intermediaries for transactions and offer a degree of security, reliability, and speed. When dealing with large sums of money, centralized exchanges can provide an additional layer of protection to users.

We are in the process of finalizing the list of centralized trading platforms where Challenge.gg tokens will be listed. The partnerships with these platforms are in the final stages of negotiation and we will be able to share this information soon.

The criteria we consider when choosing the platforms include:

1. **Security** – The platforms must have strong security measures to protect your assets. This includes two-factor authentication, cold storage, and encryption methods.
2. **Liquidity** – We aim to ensure our tokens are listed on exchanges with high trading volume. This offers better liquidity, allowing for easy buying and selling without drastically affecting the price.
3. **Reputation** – The credibility and trustworthiness of the exchange platform are crucial. We strive to partner with well-respected exchanges known for their reliability and customer service.
4. **User Experience** – A user-friendly interface is essential for a seamless experience. The platforms we choose will provide intuitive functionality, regardless of whether you're a novice or experienced trader.
5. **Regulatory Compliance** – Our partner platforms must comply with the necessary regulations and licenses to operate, ensuring they conduct fair and transparent business practices.

While we are eager to announce the names of the platforms, it's important that we ensure everything aligns with our goal of offering the best experience for our users.

#### 🔸 **To Be Announced**

Once the partnerships are secured and the launch date is set, we will make the official announcement detailing the specifics about where you can buy Challenge.gg tokens. We want to ensure that we deliver this exciting news with all the information necessary for a smooth token acquisition process.

To stay updated, we encourage you to follow our official social media accounts and join our community forums. Our team is committed to keeping our community informed about our token's journey.

Thank you for your patience and enthusiasm. The journey is just beginning, and we are thrilled to have you with us. Keep an eye out for our official announcement!


# DAO

🔸 **Decentralized Governance and Voting Rights**

The Challenge.gg DAO is designed to provide equal voting rights and decision-making power to all token holders. This decentralized governance model ensures that every participant has a say in the platform's development, including voting on critical decisions related to progress, fee structures, game implementation, tournament setups, reward systems, and features in both PC and mobile games.

🔸 **Democratizing Progress and Development**

With the Challenge.gg DAO, progress and development are democratized. Rather than relying on a centralized authority to dictate the platform's direction, token holders collectively determine the next steps for Challenge.gg. This inclusive approach ensures that the community's interests and preferences are at the forefront of decision-making, fostering a sense of ownership and participation among all stakeholders.

🔸 **Determining Fees and Revenue Distribution**

A key aspect of the Challenge.gg DAO is the ability for token holders to influence fee structures. By allowing token holders to vote on fees, the platform ensures transparency and fairness in revenue distribution. This democratic process ensures that fees are aligned with the community's expectations and needs, enhancing trust and participation.

🔸 **Selecting New Games and Tournament Setups**

The Challenge.gg DAO allows token holders to propose and vote on new games and tournament setups to be implemented on the platform. This open and collaborative approach encourages diverse perspectives, ensuring that the gaming offerings are aligned with the interests and preferences of the community. Token holders collectively decide on the games to be introduced, fostering an engaging and dynamic gaming ecosystem.

🔸 **Reward Systems and Features in Games**

The Challenge.gg DAO empowers token holders to shape reward systems and the implementation of features within games. Through voting, token holders can influence the design and mechanics of reward systems, ensuring they align with the platform's values and the community's desires. Additionally, token holders can propose and vote on new features to enhance the gaming experience, creating a dynamic and evolving environment.


# Distribution

Token distribution

### 🔸 **Token Distribution**

Our project's digital currency, the native token, is designed to fuel our ecosystem's growth, provide economic incentives, and facilitate transactions within our platform.

The total supply of our token is capped at 1,000,000,000 (1 Billion). The tokens will be allocated and distributed as follows:

<figure><img src="/files/uIuOpc8lZvaABZ9F6DdI" alt=""><figcaption></figcaption></figure>

### 🔸 **Pre-Seed Funding: Long-Term Investor Strategy**

* **Tokens Released**: 68,250,000 (68,25 Million, 6,83% of total supply)
* **Valuation**: $10 million
* **Objective**: Attract strategic, long-term investors aligned with our vision.

In the first round of our Pre-Seed funding, we will release 68, 250, 000 tokens. This round are evaluated at a total of 10 million dollars. The goal of this early round was to attract strategic investors who can bring long-term value to our ecosystem. Participants in this round are carefully selected to ensure their interests align with our project's vision and goals.

### 🔸 **Private Presale: Quick Market Entry**

* **Tokens Allocated**: 82,500,000 (82,5 Million, 8,25% of total supply)
* **Valuation:** $20 million
* **Strategy**: Balance broad distribution with sustainable growth.

The Round Private Presale is structured to allocate a total of 8,25% of our initial token supply, which amounts to 82,500,000 (82,5 million tokens). This allocation is strategically designed to strike a balance between distributing tokens to a wide audience while ensuring the project's sustainability and long-term growth.

### 🔸 **IDO**

* **Tokens Distributed**: 40,000,000 (40 Million)
* **Valuation**: $25 million
* **Purpose**: Enhance token spread, user base growth, and network security.

Next, we will distribute 40,000,000 (40 Million) tokens through multiple IDO platforms, which is evaluated at 25 million dollars. The IDO platforms gives individuals an opportunity to participate in the early stages of our project. This stage is crucial as it enhances the distribution of our tokens and ensures a widespread user base, making the network more secure and decentralized.

### 🔸 **Additional Allocations**

* **Team and Advisors**: 40,000,000 (4%)
* **Community Incentives, Partnerships, Tournaments**: 200,000,000 (20%)
* **Treasure**: 179,250,000 (17.92%)
* **Marketing:** 100,000,000 (10%)
* **CEX and MM:** 100,000,000 (10%)
* **Game Rewards**: 80,000,000 (8%)
* **Staking:** 80,000,000 (8%)
* **Liquidity:** 20,000,000 (2%)
* **Airdrop:** 10,000,000 (1%)

This distribution strategy reflects our commitment to promoting fair and broad-based ownership of our tokens. We believe that by giving our community a chance to be a part of our journey right from the start, we can build a strong, vibrant, and committed user base that will drive our project to new heights.


# Buy & Sell

**UNISWAP**

Uniswap is a decentralized exchange (DEX) protocol built on the Ethereum blockchain that allows for the trading of Ethereum-based ERC-20 tokens directly from user wallets. It was created in 2018 by developer Hayden Adams.

Unlike traditional, centralized exchanges, Uniswap doesn't match buy and sell orders in an order book. Instead, it uses an automated liquidity protocol, which means that it has a series of liquidity pools that users trade against. These pools are funded by other users who provide liquidity by depositing their assets into the pool and maintaining a balance of both assets.

In return for providing liquidity, these users earn fees generated from the trades that happen in their pool, proportional to their share of the total liquidity.

Uniswap's protocol operates on the concept of automated market makers (AMMs), where prices are determined by a mathematical formula which depends on how much of each token exists in a pool.

In 2020, Uniswap launched its second version (V2) and its own token, UNI. The UNI token serves multiple purposes within the Uniswap ecosystem, including governance voting rights. Uniswap V3 was launched in 2021 with several enhancements like concentrated liquidity and multiple fee tiers which provide more flexibility to liquidity providers.

Uniswap has played a significant role in the DeFi (decentralized finance) boom, as it offers a trustless, permissionless platform for exchanging tokens, providing liquidity, and earning income through liquidity provision. As of my knowledge cut-off in September 2021, Uniswap has been one of the highest-volume DEXs in the cryptocurrency market.

## Can i swap to another cryptocurrency token for $CHALLENGE TOKEN?

Yes, you can do this using (link). Alternatively, some wallets may have a swap feature, such as MetaMask.

### 🔸 **Can I purchase $CHALLENGE TOKEN using a credit card?**

Not right now, but more info will come regarding this with a third-party solution.\
You can always buy $Challenge Token on any exchange, the token is listed.

### 🔸 Can I purchase $CHALLENGE TOKEN via The Challenge's dashboard/website?

Yes, you can buy $CHALLENGE.GG inside the app through Uniswap inside the app with your web3 wallet.

### 🔸 Is there a way to get $CHALLENGE TOKEN for free?

Yes, winning tournaments on app.challenge.gg

### 🔸 When should I buy $CHALLENGE TOKEN

This is entirely up to you. Challenge cannot give you any financial advice. However, you are welcome to seek advice from community members via one of our live chat communities.

{% content-ref url="/pages/JFbcwqCK1ZOLTxOhkdxG" %}
[Broken mention](broken://pages/JFbcwqCK1ZOLTxOhkdxG)
{% endcontent-ref %}

## Selling $CHALLENGE TOKEN

### 🔸 Is it possible to sell $CHALLENGE TOKENS?

Yes, you can sell your $Challenge Token inside app.challenge.gg through pancake swap or an exchange $Challenge Token is listed.&#x20;

### 🔸 Can I exchange my $CHALLNGE TOKEN for a different cryptocurrency?

Yes, you can do this using (link). Or any wallet that supports cryptocurrency swapping, such as MetaMask.

### 🔸 When should I sell $CHALLENGE TOKEN?

This is entirely up to you. The Challenge cannot give you any financial advice. However, you are welcome to seek advice from community members via one of our live chat communities.&#x20;

{% content-ref url="/pages/JFbcwqCK1ZOLTxOhkdxG" %}
[Broken mention](broken://pages/JFbcwqCK1ZOLTxOhkdxG)
{% endcontent-ref %}

### 🔸 Do I have to pay taxes on any profits I make from $CHALLENGE TOKEN?

Challenge can not offer you any tax advice. Taxation rules differ by country and even by local jurisdictions, states or counties within those countries.&#x20;

Please seek advice from an official tax representative within your local jurisdiction.


# Vesting

The vesting plan ensures a gradual release of tokens over a specified time period, allowing for strategic allocation and controlled distribution of resources. This approach aims to foster long-term commitment and alignment of interests between the project and its investors, ultimately contributing to the growth and success of our ecosystem.

<figure><img src="/files/4yYQSOZaaz2twXwTAD5i" alt=""><figcaption></figcaption></figure>

#### 🔸 Pre-Seed Fundin&#x67;**: Long-Term Investor Strategy**

* **Start:** 10% after 7 days trading
* **1 month:** +3%
* **2 months:** +3%
* **3 months:** +4%
* **6 months:** +20%
* **9 months:** +20%
* **12 months:** +20%
* **15 months:** +20%

*Early liquidity with a focus on long-term commitment. Regular releases to avoid market fluctuations.*

#### 🔸 **Private Presale: Quick Market Entry (3 Months)**

* **Start:** 10% after 7 days trading
* **1 month:** +30%
* **2 months:** +30%
* **3 months:** +30%

*Rapid release for Private Presale participants, balancing quick access with ongoing project support.*

#### 🔸 **Team and Advisors: Commitment Rewards**

* **6 months:** 20%
* **12 months:** +20%
* **15 months:** +20%
* **24 months:** +40%

*Yearly releases to align our team and advisors with the project's long-term success.*

#### 🔸 **Community Initiatives: Ongoing Support**

* **Start:** 10% unlocked for tournaments and community rewards
* 10% after 7 days trading
* **3 months:** +20%
* **6 months:** +20%
* **9 months:** +20%
* **12 months:** +20%

*Funding for community, partnerships, and events, ensuring a vibrant ecosystem.*

#### 🔸 **Treasure: Long-Term Stability**

* **Start:** 10% unlocked
* **3 months:** 20%
* **6 months:** 20%
* **12 months:** 20%
* **18 months:** 20%
* **24 months:** 10%

*This measured release schedule is instrumental in maintaining the company's financial stability, ensuring adequate resources for ongoing development and innovation.*

#### 🔸 Marketing, Rewards, Staking, CEX

* **Start:** 10% unlocked for CEX and market markers
* **3 months:** 20%
* **6 months:** 20%
* **12 months:** 20%
* **18 months:** 20%
* **24 months:** 10%

*This measured release schedule is instrumental in maintaining the ecosystem stability, ensuring adequate resources for ongoing development and innovation.*


# Deployment Strategies

This section focuses on the deployment strategies for the various vesting groups within Challenge.gg. Our approach is tailored to ensure that each group's vesting process aligns with their specific roles and contributions to the project, while also integrating with our innovative loyalty program where applicable.

### 🔸 Loyalty Program Participants

**Deployment Strategy:**

* **Eligible Groups**: Investor round Pre-seed funding, Private presale participants and Team\&Advisor, as detailed in the vesting plan.
* **Mechanism**: Integration into the loyalty program.
* **Process**:
  * Upon the start of their vesting period, participants are automatically enrolled in the loyalty program.
  * Rewards are distributed in ETH, directly proportional to their vested tokens.
  * The loyalty program contract manages the vesting schedule, ensuring a seamless reward distribution process and unlocking.&#x20;

### 🔸 Community Initiatives: Ongoing Support

**Deployment Strategy:**

* **Exclusion from Loyalty Program**: These tokens are vested solely through TBA vesting program.
* **Mechanism**: TBA vesting program.
* **Process**:
  * Tokens are allocated for community initiatives, partnerships, and events.
  * The vesting schedule is managed through TBA, ensuring transparency and adherence to the predetermined timeline.

### 🔸 Company Tokens: Long-Term Stability

**Deployment Strategy:**

* **Exclusion from Loyalty Program**: Similar to Community Initiatives, these tokens are vested through TBA program.
* **Mechanism**: TBA vesting program.
* **Process**:
  * Aimed at ensuring the company's long-term financial stability.
  * The vesting is executed in predefined phases over a 24-month period.

### 🔸 Security and Compliance

To maintain the highest standards of security and compliance:

* **Multisig Wallet**: All tokens, irrespective of the group, are initially held in a multisig wallet.
* **Transparent Tracking**: Vesting schedules and distributions are tracked transparently, accessible for audit and review.


# Contracts


# Coin Contract

The ChallengeCoin contract is an ERC20 token with a total supply capped at 1 billion tokens, ensuring scarcity and value stability. Built using OpenZeppelin's ERC20 framework, it provides a secure and reliable token for the Challenge.GG ecosystem. The contract assigns initial token ownership to a multisig wallet, enhancing security and governance by requiring multiple approvals for key transactions.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";

/// @title ChallengeCoin (ERC20 token)
/// @author Challenge.GG
/// @dev The ChallengeCoin contract is an ERC20 token with a total supply capped at 1 billion tokens, ensuring scarcity and value stability. 
/// Built using OpenZeppelin's ERC20 framework, it provides a secure and reliable token for the Challenge.GG ecosystem.
/// The contract assigns initial token ownership to a multisig wallet, enhancing security and governance by requiring multiple approvals for key transactions.
contract ChallengeCoin is ERC20 {

    uint256 private constant MAX_SUPPLY = 10**9;

    constructor(string memory _name,  string memory _symbol, address _multisigOwner) ERC20(_name, _symbol) {
        _mint(_multisigOwner, MAX_SUPPLY * 10 ** decimals());
    }
}
```


# Base Contract

The ChallengeBase contract serves as a core component for managing gaming challenges on the blockchain. It integrates role-based access control, game template management, and prize distribution, ensuring secure and flexible challenge creation and participation. Additionally, it manages valid ERC20 tokens for transactions and maintains a system to increment and track challenge IDs effectively.

{% code fullWidth="false" %}

```solidity
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";

/// @title Base contract for all Challenge types, includes common structs and functions
/// @author Challenge.GG
/// @dev The ChallengeBase contract serves as a core component for managing gaming challenges on the blockchain. 
/// It integrates role-based access control, game template management, and prize distribution, ensuring secure and flexible challenge creation and participation. 
/// Additionally, it manages valid ERC20 tokens for transactions and maintains a system to increment and track challenge IDs effectively.
contract ChallengeBase is AccessControl  {
    
    bytes32 public constant CONTRACT_ROLE = keccak256("CONTRACT"); //CONTRACT role is required to increment ids
    bytes32 public constant MANAGER_ROLE = keccak256("MANAGER"); //MANAGER role is required to handle gametemplates, payout structures and more
    bytes32 public constant PAYER_ROLE = keccak256("PAYMENT"); //PAYER role is required to handle payments

    uint256 private _challengeId  = 0; // Current challenge id, incremented for each new challenge created
    mapping (uint16 => uint256) private  _lastestIds; //Latest ids for each game template 
    mapping (address => bool) public isBlocked; //Players blocked from participating in challenges
    mapping (uint16 => GameTemplate) public gameTemplates; //Map of ids to game templates
    mapping (bool => PrizeDistribution[]) public prizeDistributions; // Mapping for sponsored and unsponsored distributions of prizes, x number of players will have a certain distribution including commission for Challenge.gg if not sponsored
    mapping(address => ValidERC20Token) public validTokens;  //Valid tokens to play with and their commission threshold (When we send comission to split contract)

    //Struct definitions

    //Challenge status
    enum ChallengeStatus {
        Unvailable,  //0 is default, when checking if challenge exists
        Created,
        Running,
        Finished,
        Error,
        Canceled
    }

    //Player status
    enum PlayerStatus {
        NotParticipating,  //0 is default,  when checking if player exists
        Participating,     
        Completed,
        Failed
    }    

    //A template to base created challenges on
    struct GameTemplate {
        uint256 fee;
        IERC20 token;
        uint256 prizeFund;
        IERC20 prizeFundToken;
        uint16 maxPlayersCount; //Do not need min players since min players is always equal to max players
        bool paused;  //If paused, players can not create or join challenges of this type
        bool softPaused; //If soft paused, players can join existing challenges of this type but not create new ones
    }

    // Percentage distribution of prizes, [80,10] = 80% to 1:st place, 10% to 2:nd place, 10% to ChallengeGG as comission
    struct PrizeDistribution {
        uint16 minPlayers;
        uint16 maxPlayers;
        uint8[] distribution;

    }

    //Valid tokens to play with and their commission threshold (When we send comission to split contract)
    struct ValidERC20Token {
        bool valid;
        uint256 commission_threshold;       
    }    

    //Modifiers

    /// @dev Restricted to members of the admin role.
    modifier onlyAdmin()
    {
        require(isAdmin(msg.sender), "Restricted to admins");
        _;
    }  

    /// @dev Restricted to members of the Contract role.
    modifier onlyContract()
    {
        require(isContract(msg.sender), "Restricted to allowed contracts");
        _;
    }

    /// @dev Restricted to members of the Manager role.
    modifier onlyManager()
    {
        require(isManager(msg.sender), "Restricted to managers");
        _;
    }  

    /// @dev Constructor
    /// @param multisigAdmin Mutisig owner 
    constructor(address multisigAdmin) {
       _grantRole(DEFAULT_ADMIN_ROLE, multisigAdmin);
       _setRoleAdmin(CONTRACT_ROLE, DEFAULT_ADMIN_ROLE);
       _setRoleAdmin(MANAGER_ROLE, DEFAULT_ADMIN_ROLE);
       _setRoleAdmin(PAYER_ROLE, DEFAULT_ADMIN_ROLE);
    }

    //Update functions
   
    /// @dev Add an account to the Contract role. Restricted to admins.
    /// @param account Address to add
    function addContract(address account) external onlyAdmin
    {
        grantRole(CONTRACT_ROLE, account);
    }

    /// @dev Remove an account from the Contract role. Restricted to admins.
    /// @param account Address to remove
    function removeContract(address account) external onlyAdmin
    {
        revokeRole(CONTRACT_ROLE, account);
    }

    /// @dev Add an account to the Manager role. Restricted to admins.
    /// @param account Address to add
    function addManager(address account) external onlyAdmin
    {
        grantRole(MANAGER_ROLE, account);
    }

    /// @dev Remove an account from the Manager role. Restricted to admins.
    /// @param account Address to remove
    function removeManager(address account) external onlyAdmin
    {
        revokeRole(MANAGER_ROLE, account);
    }

    /// @dev Add an account to the Payer role. Restricted to admins.
    /// @param account Address to add
    function addPayer(address account) external onlyAdmin
    {
        grantRole(PAYER_ROLE, account);
    }

    /// @dev Remove an account from the Payer role. Restricted to admins.
    /// @param account Address to remove
    function removePayer(address account) external onlyAdmin
    {
        revokeRole(PAYER_ROLE, account);
    }

    /// @dev Set challenge id offset. If we replace contract we need to set the challenge id offset. Restricted to admins.
    /// @param challengeId Challenge id to set
    function setChallengeIdOffset(uint256 challengeId) external onlyAdmin {
        _challengeId=challengeId;
    } 

    /// @dev Set current id offset for a game template. Restricted to admins.
    /// @param gameTemplateId Game template id
    /// @param challengeId Challenge id to set
    function setCurrentIdOffset(uint16 gameTemplateId, uint256 challengeId) external onlyAdmin {
        _lastestIds[gameTemplateId] = challengeId;
    }

    /// @dev Increment challenge id by one and returns the id, restricted to contracts
    /// @return challengeId Current challenge id
    function incrementAndGetChallengeId() external onlyContract returns(uint256) {
        _challengeId++;
        return _challengeId;
    }   

    /// @dev Increment the challenge id and set it for a specific game template id
    /// @param gameTemplateId Game template id
    /// @return challengeId Current challenge id
    function incrementAndSetCurrentId(uint16 gameTemplateId) external onlyContract returns(uint256) {
        _challengeId++;
        _lastestIds[gameTemplateId] = _challengeId;
        return _challengeId;
    }
   
    /// @dev Resets the current id for a game template, restricted to contracts
    /// @param gameTemplateId Game template id
    function resetCurrentId(uint16 gameTemplateId) external onlyContract {
        _lastestIds[gameTemplateId] = 0;
    }      

    /// @dev Add a ERC20 token to the valid tokens list, restricted to managers
    /// @param tokenAddress Token address to add
    /// @param commission_threshold Commission threshold to set
    function addValidToken(address tokenAddress, uint256 commission_threshold) external onlyManager {
        validTokens[tokenAddress] = ValidERC20Token({
            valid: true,
            commission_threshold: commission_threshold
        });
    }

    /// @dev Remove a ERC20 token from the valid tokens list, restricted to managers
    function removeValidToken(address tokenAddress) external onlyManager {
        delete validTokens[tokenAddress];
    } 

    /// @dev Add a new game template, restricted to managers
    /// @param gameTemplateId Game template id 
    /// @param maxPlayersCount  Max players for this template
    /// @param fee Fee for this template 
    /// @param token  ERC20 Token to use for this template 
    function addGameTemplate(uint16 gameTemplateId, uint16 maxPlayersCount, uint256 fee, address token, uint256 prizeFund, address prizeFundToken) external onlyManager {
        require(gameTemplates[gameTemplateId].maxPlayersCount==0,"Template already exist");
        _setGameTemplate(gameTemplateId, maxPlayersCount, fee, token, prizeFund, prizeFundToken);
    }

    /// @dev Update a game template, restricted to managers
    /// @param gameTemplateId Game template id
    /// @param maxPlayersCount  Max players for this template
    /// @param fee Fee for this template
    /// @param token  ERC20 Token to use for this template
    function updateGameTemplate(uint16 gameTemplateId, uint16 maxPlayersCount, uint256 fee, address token, uint256 prizeFund, address prizeFundToken) external onlyManager {        
        require(gameTemplates[gameTemplateId].maxPlayersCount!=0,"Template does not exist");
        _setGameTemplate(gameTemplateId, maxPlayersCount, fee, token, prizeFund, prizeFundToken);
    }

    /// @dev Delete a game template, restricted to managers
    /// @param gameTemplateId Game template id
    function deleteGameTemplate(uint16 gameTemplateId) external onlyManager  {
        require(gameTemplates[gameTemplateId].maxPlayersCount!=0,"Template does not exist");
        delete  gameTemplates[gameTemplateId];
    }

    /// @dev Set if template is paused (players can not create or join challenges of this type). Restricted to managers
    /// @param gameTemplateId Game template id
    /// @param paused True if template should be paused
    function setTemplatePaused(uint16 gameTemplateId, bool paused) external onlyManager {
        GameTemplate storage gameTemplate = gameTemplates[gameTemplateId];
        gameTemplate.paused = paused;
    }   

    /// @dev Set if template is soft paused (players can join existing challenges but not create new ones). Restricted to managers
    /// @param gameTemplateId Game template id
    /// @param softPaused True if template should be soft paused
    function setTemplateSoftPaused(uint16 gameTemplateId, bool softPaused) external onlyManager {
        GameTemplate storage gameTemplate = gameTemplates[gameTemplateId];
        gameTemplate.softPaused = softPaused;
    }
   
    /// @dev Add or replace a payout distribution, restricted to managers
    /// @param minPlayers Minimum number of players for this distribution
    /// @param maxPlayers Maximum number of players for this distribution
    /// @param percentage Percentage distribution, [80,10] = 80% to 1:st place, 10% to 2:nd place, 10% to ChallengeGG as comission
    /// @param isSponsored True if sponsored distribution 
    function setPayoutDistribution(uint16 minPlayers, uint16 maxPlayers, uint8[] memory percentage, bool isSponsored) external onlyManager {        
        require(percentage.length>0, "Distribution is empty");
        require(minPlayers>0, "Min players must be greater than 0");
        require(maxPlayers>=minPlayers, "Max players must be greater than or equal to min players");

        // Ensure valid distribution
        uint256 totalPercentage;
        for (uint256 i = 0; i < percentage.length; i++) {
            totalPercentage += percentage[i];
        }
        require(totalPercentage <= 100, "Total percentage exceeds 100");
        
        
        bool _replaced;
        PrizeDistribution[] storage prizeDistribution = prizeDistributions[isSponsored];

        for (uint8 i = 0; i < prizeDistribution.length; i++) {
            if(prizeDistribution[i].minPlayers==minPlayers && prizeDistribution[i].maxPlayers==maxPlayers){
                prizeDistribution[i].distribution=percentage;
                _replaced=true;
            }
        }

        if(!_replaced){                
               //uint8[] memory base;
               prizeDistribution.push(PrizeDistribution(minPlayers, maxPlayers, percentage));
               //prizeDistribution[prizeDistribution.length-1].distribution=percentage;
        }
    }

    /// @dev Delete a payout distribution, restricted to managers
    /// @param minPlayers Minimum number of players for this distribution
    /// @param maxPlayers Maximum number of players for this distribution
    /// @param isSponsored True if sponsored distribution should be deleted
    function deletePayoutDistribution(uint16 minPlayers, uint16 maxPlayers, bool isSponsored) external onlyManager {

        PrizeDistribution[] storage prizeDistribution = prizeDistributions[isSponsored];

        for (uint8 i = 0; i < prizeDistribution.length; i++) {
            if(prizeDistribution[i].minPlayers==minPlayers && prizeDistribution[i].maxPlayers==maxPlayers){
                delete prizeDistribution[i];
            }
        }
    }

    /// @dev Set if player is blocked from participating in challenges
    /// @param player Address of player
    /// @param blocked True if player should be blocked
    function setBlocked(address player, bool blocked) external onlyManager {
        isBlocked[player]=blocked;
    }


    //View functions    

    /// @dev Checks if a ERC20 token is valid to use in Challenge.gg.
    /// @param tokenAddress Token address to check
    /// @return valid True if token is valid
    function isValidToken(address tokenAddress) external view returns(bool){
        return validTokens[tokenAddress].valid;
    }

    /// Returs the commission threshold for a token, as soon as commision for token is above theshold we send commission to split contract
    /// @param tokenAddress Token address to check
    /// @return commission_threshold Commission threshold
    function getValidTokenThreshold(address tokenAddress) external view returns(uint256){
        return validTokens[tokenAddress].commission_threshold;
    }

    /// @dev Returns the current challenge id
    /// @return challengeId Current challenge id
    function getChallengeId() external view returns(uint256) {
        return _challengeId;
    }

    /// @dev Returns the current challenge id for a game template
    /// @param gameTemplateId Game template id
    /// @return challengeId Current challenge id
    function getCurrentId(uint16 gameTemplateId) external view returns(uint256) {
        return _lastestIds[gameTemplateId];
    }

    /// Returns the game template for a id
    /// @param gameTemplateId Game template id
    /// @return gameTemplate Game template
    function getGameTemplate(uint16 gameTemplateId) external view returns(GameTemplate memory) {
        return gameTemplates[gameTemplateId];
    }

    /// Checks if a template is paused (players can not create or join challenges of this type)
    /// @param gameTemplateId Game template id
    /// @return paused True if template is paused
    function isTemplatePaused(uint16 gameTemplateId) external view returns (bool paused)  {
        GameTemplate storage gameTemplate = gameTemplates[gameTemplateId];
        return gameTemplate.paused;
    }

    /// Checks if template is soft paused (players can join existing challenges but not create new ones)
    /// @param gameTemplateId Game template id
    /// @return softPaused True if template is soft paused
    function isTemplateSoftPaused(uint16 gameTemplateId) external view returns (bool softPaused)  {
        GameTemplate storage gameTemplate = gameTemplates[gameTemplateId];
        return gameTemplate.softPaused;
    }

    /// Returns the payout distribution for a number of players
    /// @param players Number of players
    /// @param isSponsored True if sponsored distribution should be returned
    /// @return minPlayers Minimum number of players for this distribution
    /// @return maxPlayers Maximum number of players for this distribution
    /// @return percentage Percentage distribution, [80,10] = 80% to 1:st place, 10% to 2:nd place, 10% to ChallengeGG as comission
    /// @return commission Commission for this distribution
    function getPayoutDistribution(uint16 players, bool isSponsored) external view returns(uint16 minPlayers, uint16 maxPlayers, uint8[] memory percentage,uint8 commission) {

        PrizeDistribution[] storage prizeDistribution = prizeDistributions[isSponsored];
        for (uint8 i = 0; i < prizeDistribution.length; i++) {
            if(prizeDistribution[i].minPlayers<=players && prizeDistribution[i].maxPlayers>=players){

                uint8 sum=0;
                for(uint j=0; j< prizeDistribution[i].distribution.length; j++){
                        sum=sum+prizeDistribution[i].distribution[j];
                }
                uint8 _commission= 100-sum;

                return (prizeDistribution[i].minPlayers,prizeDistribution[i].maxPlayers, prizeDistribution[i].distribution,_commission);
            }
        }
      
    }

    /// @dev Checks if the account belongs to the admin role.
    /// @param account Address to check
    /// @return True if account belongs to 'ADMIN' role
    function isAdmin(address account) public view returns (bool)
    {
        return hasRole(DEFAULT_ADMIN_ROLE, account);
    }

    /// @dev Checks if the account belongs to the contract role.
    /// @param account Address to check
    /// @return True if account belongs to 'CONTRACT' role
    function isContract(address account) public view returns (bool)
    {
        return hasRole(CONTRACT_ROLE, account);
    }

    /// @dev Checks if the account belongs to the manager role.
    /// @param account Address to check
    /// @return True if account belongs to 'MANAGER' role
    function isManager(address account) public view returns (bool)
    {
        return hasRole(MANAGER_ROLE, account);
    }

    /// @dev Checks if the account belongs to the payer role.
    /// @param account Address to check
    /// @return True if account belongs to 'PAYER' role
    function isPayer(address account) public view returns (bool)
    {
        return hasRole(PAYER_ROLE, account);
    }

    function _setGameTemplate(uint16 gameTemplateId, uint16 maxPlayersCount, uint256 fee, address token, uint256 prizeFund, address prizeFundToken) private {
        require(validTokens[token].valid, "Invalid ERC20 token");

        if(prizeFund > 0) {
            require(validTokens[prizeFundToken].valid, "Invalid ERC20 prize fund token");
        }

        GameTemplate storage gameTemplate = gameTemplates[gameTemplateId];
        gameTemplate.maxPlayersCount = maxPlayersCount;
        gameTemplate.fee = fee;
        gameTemplate.token = IERC20(token);
        gameTemplate.prizeFund = prizeFund;
        gameTemplate.prizeFundToken = IERC20(prizeFundToken);

    }
}
       

```

{% endcode %}


# Solo Contract

The SoloChallenge contract, is a comprehensive smart contract for managing solo player challenges. It integrates Chainlink's VRF for randomness, utilizes OpenZeppelin's security features, and coordinates with ChallengeBase for roles and templates. Key functionalities include creating, joining, leaving, canceling, and paying out challenges, as well as handling commission and refunds. The contract also supports custom challenges and tournament brackets, offering a versatile platform for various gaming scenarios.

```solidity
 // SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import {VRFCoordinatorV2Interface} from "@chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol";
import {VRFConsumerBaseV2} from "@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.sol";
import {ConfirmedOwner} from "@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {Pausable} from "@openzeppelin/contracts/utils/Pausable.sol";
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
import './ChallengeBase.sol';
import './util/TimeLock.sol';

/// @title Manages Solo player gaming Challenges
/// @author Challenge.GG
/// @dev The SoloChallenge contract, is a comprehensive smart contract for managing solo player challenges. 
/// It integrates Chainlink's VRF for randomness, utilizes OpenZeppelin's security features, and coordinates with ChallengeBase for roles and templates. 
/// Key functionalities include creating, joining, leaving, canceling, and paying out challenges, as well as handling commission and refunds. 
/// The contract also supports custom challenges and tournament brackets, offering a versatile platform for various gaming scenarios.
contract SoloChallenge is Pausable, ReentrancyGuard, VRFConsumerBaseV2, ConfirmedOwner {
     using SafeERC20 for IERC20;

    ChallengeBase private _baseContract; // Address to base contract that handles roles, templates and other common data
    mapping (uint256 => Challenge) private _challenges; //challengeId => Challenge
    address private _splitContract; //Address to contract that handles split of commission. 
    address private _foundingWallet; //Address to wallet that sponsored payout will be drawn from
    bool public softPaused;  // If true no new challenges can be created but existing can be completed   
    mapping (IERC20 => uint256) public commission; //Current commission per token    
    TimeLock public timeLock;
    
    //ChainLink VRF variables
    uint64 public immutable vrfSubscriptionId; // Chainlink VRF subscription ID.
    VRFCoordinatorV2Interface vrfCoordinatorInf; // Chainlink VRF coordinator contract.
    mapping(uint256 => RequestStatus) public vrfRequests; // requestId --> requestStatus mapping.
    bytes32 public vrfKeyHash; // Chainlink VRF key hash. The gas lane to use, which specifies the maximum gas price to bump to. For Etherum 200, 500,1000 gwei
    uint16 public  vrfRequestConfirmations = 3; // Number of required Chainlink VRF node confirmations. Recommended value is 3-6
    uint32 public vrfCallbackGasLimit = 100000; // Depends on the number of requested values that you want sent to the fulfillRandomWords() function. 
                                                //Storing each word costs about 20,000 gas, so 100,000 is a safe default.
    // Chainlink VRF request status.
    struct RequestStatus {
        bool exists;
        bool fulfilled;
        uint256 challengeId;        
    }


    // Challenge data
    struct Challenge {
        ChallengeBase.ChallengeStatus status;
        mapping (address => Player) players;
        address[] playerAddresses;
        uint256 fee;
        IERC20 token;
        uint16 maxPlayersCount;
        uint16 minPlayersCount; //only for tournaments
        uint16 playersCount;

        uint256 prizeFund;      //Sponsored payout
        IERC20 prizeFundToken;  //Token to use for sponsored payout

        uint256 amountPaidOut;
        uint256 amountRefunded;
        uint256 comission;

        bool isCustom; //Flag to indicate custom (not template based) challenge
        
        uint256[] randomSeeds; //Random seeds used for tournament brackets
        
        uint16 index; //We save an index to make sure events can be retrieved in order
    }

    // Player data
    struct Player {
        ChallengeBase.PlayerStatus status;
        uint64 score;
        uint16 placement;
        
        uint256 amountPaidOut;
        uint256 amountRefunded;

        bool refunded;
        bool paidOut;

        uint16 index; //To keep track of order players joined, this is per challenge
    }

    //Used to return data from payout function event
    struct PlayerResult {
        address player;
        uint16 placement;
        uint256 payout;
        uint8 status;
    }

    //Used to return data from refund function event
    struct PlayerRefund {
        address player;
        bool refunded;
    }

     //Events

    //Challenges based on templates    
    event ChallengeJoined(uint256 challengeId, uint16 gameTemplateId, uint256 fee, IERC20 token, uint16 maxPlayersCount, address indexed participant, uint16 playersCount, bool created, bool started, uint16 eventIndex, uint256 date);  
    
    //Challenges based on templates or custom challenges
    event ChallengeLeft(uint256 challengeId, address indexed participant, uint16 eventIndex, uint256 date);  
    event ChallengePayout(uint256 challengeId, uint256 payout, IERC20 payoutToken, uint256 commision, IERC20 commissionToken, PlayerResult[] playerResults);
    event ChallengeCanceled(uint256 challengeId, uint8 status, PlayerRefund[] playerRefunds);
    event BatchRefund(uint256 challengeId, PlayerRefund[] playerRefunds);

    //Challenges related to custom challenges
    event ChallengeCreated(uint256 internalChallengeId, uint256 challengeId, uint256 date); 
    event ChallengeStarted(uint256 challengeId, uint256 date);
    
    //Only tournaments
    event BracketSeedsRequested(uint256 challengeId, uint256 vrfRequestId);
    event BracketSeedsCreated(uint256 challengeId, uint256[] randomSeeds);
 
    //Payout to split contract
    event TransferCommissionSucceeded(uint256 amount, IERC20 token);
     
    // Modifiers

    /// @dev Restricted to members of the admin role.
    modifier onlyAdmin()
    {
        require(_baseContract.isAdmin(msg.sender), "Restricted to admin");
        _;
    }  

    /// @dev Restricted to members of the Manager role.
    modifier onlyManager()
    {
        require(_baseContract.isManager(msg.sender), "Restricted to managers");
        _;
    }
    
    /// @dev Restricted to members of the Payer role.
    modifier onlyPayer()
    {
        require(_baseContract.isPayer(msg.sender), "Restricted to payers");
        _;
    }

    /// @dev Constructor
    /// @param multisigAdmin Multisig admin of contract
    /// @param baseContract Address to base contract that handles roles, templates and other common data
    /// @param splitContract Address to contract that handles split of commission
    /// @param subscriptionId Chainlink VRF subscription ID.
    /// @param coordinator Chainlink VRF coordinator contract.
    /// @param keyHash Chainlink VRF key hash.
    constructor(address multisigAdmin, address baseContract, address splitContract, address timeLockContract, address foundingWallet, uint64 subscriptionId, address coordinator, bytes32 keyHash) 
        VRFConsumerBaseV2(coordinator) 
        ConfirmedOwner(multisigAdmin){
        
        require(baseContract != address(0), "Base contract address is the zero address");
        require(splitContract != address(0), "Split contract address is the zero address");
        require(foundingWallet != address(0), "Founding wallet is the zero address");
        require(coordinator != address(0), "Coordinator address is the zero address");
        require(timeLockContract != address(0), "TimeLock address is the zero address");

        _baseContract = ChallengeBase(baseContract);     
        timeLock = TimeLock(timeLockContract); 
        _splitContract = splitContract;
        _foundingWallet = foundingWallet;

        vrfSubscriptionId = subscriptionId;
        vrfKeyHash = keyHash;
        vrfCoordinatorInf = VRFCoordinatorV2Interface(
            coordinator
        );

        softPaused=false;
    }

    receive() external payable {}
    
    /// @dev Sets the split contract address
    /// Split contract is setup on ThirdWeb (https://thirdweb.com/thirdweb.eth/Split)
    /// We need to be able to change split contract since split should be sent to staking contracts and they are not deployed yet
    /// For extra security all changes to split contract is done through a timelock contract.
    /// @param splitContract Address to contract that handles split of commission
    /// @param actionId Action id generated by TimeLock contract
    function setSplitContract(address splitContract,bytes32 actionId) external onlyAdmin {

        require(timeLock.getExecutionTime(actionId) != 0, "Action not scheduled");
        require(block.timestamp >= timeLock.getExecutionTime(actionId), "Action not ready");
        require(actionId == timeLock.generateActionId("setSplitContract", abi.encode(splitContract), address(this)), "Invalid actionId");

        require(splitContract != address(0), "Split contract address is the zero address");
        _splitContract = splitContract;
        // Clear the scheduled action
        timeLock.clearAction(actionId);
    }

    /// @dev Sets the base contract address
    /// @param baseContract Address to base contract that handles roles, templates and other common data
    function setBaseContract(address baseContract) external onlyAdmin {
         require(baseContract != address(0), "Base contract address is the zero address");
        _baseContract = ChallengeBase(baseContract);
    }

    /// @dev Sets the founding wallet address
    /// Make sure this contract has enought allowance to transfer tokens from founding wallet
    /// @param foundingWallet Address to founding wallet
    function setFoundingWallet(address foundingWallet) external onlyAdmin {
        require(foundingWallet != address(0), "Founding wallet is the zero address");
        _foundingWallet = foundingWallet;
    }

    /// @dev Distributes all commission of the specified type to the split contract
    /// This would be usefull if we need to do a contract upgrade and we want to distribute all commission that are below threshold before we do the upgrade 
    /// @param token ERC20 token to distribute
    function distributeTokensToSplitContract(address token) external nonReentrant onlyAdmin {
       _transferCommission(IERC20(token));
    }

    /// @dev Withdraws ETH sent to contract by mistake
    /// @param to Address to send ETH to
    /// @param amount Amount to send
    function withdrawETH(address payable to, uint256 amount) external nonReentrant onlyAdmin { 
        require(to != address(0), "To wallet is the zero address");
        require(address(this).balance >= amount, "Insufficient ETH balance");
        Address.sendValue(to, amount);
    }

    /// @dev Pause contract
    function pause() external onlyManager {
        _pause();
    }

    /// @dev Unpause contract
    function unpause() external onlyManager {
        _unpause();
    }

    /// @dev Soft pause contract. No new challenges can be created but existing can be completed
    function softPause() external onlyManager {
        softPaused=true;
    }

    /// @dev Unsoft pause contract
    function unSoftPause() external onlyManager {
        softPaused=false;
    }

    /// @dev Sets the Chainlink VRF coordinator contract address.
    /// @param coordinator Chainlink VRF coordinator contract.
    function setVrfCoordinator(address coordinator) external onlyAdmin {
        require(coordinator != address(0), "Coordinator address is the zero address");
        vrfCoordinatorInf = VRFCoordinatorV2Interface(
            coordinator
        );
    }

    /// @dev Sets the Chainlink VRF key hash.
    /// @param keyHash Chainlink VRF key hash.
    function setVrfKeyHash(bytes32 keyHash) external onlyManager {
        vrfKeyHash = keyHash;
    }

    /// @dev Sets the Chainlink VRF request confirmations.
    /// @param requestConfirmations Chainlink VRF request confirmations.
    function setVrfRequestConfirmations(uint16 requestConfirmations) external onlyManager {
        vrfRequestConfirmations = requestConfirmations;
    }

    /// @dev Sets the Chainlink VRF callback gas limit.
    /// @param callbackGasLimit Chainlink VRF callback gas limit.
    function setVrfCallbackGasLimit(uint32 callbackGasLimit) external onlyManager {
        vrfCallbackGasLimit = callbackGasLimit;
    }
    
    /// @dev Creates a custom challenge
    /// A custom challenge is not created from a template.
    /// A custom challenge is normally started at a set time by startChallenge or createBrackets(if tournament)
    /// @param internalChallengeId Internal challenge id used by backend system
    /// @param fee Fee to join challenge    
    /// @param token ERC20 token to use for challenge
    /// @param prizeFund Sponsored payout for challenge
    /// @param prizeFundToken ERC20 token to use for sponsored payout
    /// @param maxPlayersCount Max number of players in challenge    
    function createChallenge(uint256 internalChallengeId, uint256 fee,  address token, uint256 prizeFund, address prizeFundToken, uint16 minPlayersCount, uint16 maxPlayersCount) external nonReentrant onlyManager {     
        require(_baseContract.isValidToken(token),"Invalid ERC20 token"); 
        require(maxPlayersCount>1,"Max players must be greater than 1");
        require(minPlayersCount>1 && minPlayersCount<=maxPlayersCount,"Min players must be greater than 1 and less or equal to max players");
        require(fee > 0 || prizeFund> 0,"Fee or prize fund must be greater than 0");
        require(prizeFund>=0,"Prize fund must be greater than or equal to 0");

        uint256 challengeId = _baseContract.incrementAndGetChallengeId();
        Challenge storage challenge = _challenges[challengeId];
        challenge.fee=fee;
        challenge.prizeFund=prizeFund;
        challenge.prizeFundToken=IERC20(prizeFundToken);
        challenge.token=IERC20(token);
        challenge.minPlayersCount=minPlayersCount;
        challenge.maxPlayersCount=maxPlayersCount;
        challenge.status=ChallengeBase.ChallengeStatus.Created;
        challenge.isCustom=true;
        
        if(prizeFund>0){
            require(_baseContract.isValidToken(prizeFundToken),"Invalid ERC20 token"); 
            _transferFromFoundingWallet(prizeFund, IERC20(prizeFundToken), address(this));
        }

        emit ChallengeCreated(internalChallengeId, challengeId, block.timestamp);

    }

    /// @dev Starts a custom challenge
    /// A custom challenge is not created from a template, needs to be created by createChallenge
    /// A custom challenge is normally started at a set time by this method or callback fulfillRandomWords from calling requestBracketSeeds(if tournament)
    /// @param challengeId Challenge id
    function startChallenge(uint256 challengeId) external nonReentrant onlyManager {     
        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status==ChallengeBase.ChallengeStatus.Created,"Incorrect Challenge status");
        require(challenge.playersCount >= challenge.minPlayersCount, "Number of players must be >= min players");
        require(challenge.isCustom,"Challenge is not custom");
        challenge.status=ChallengeBase.ChallengeStatus.Running;        
        emit ChallengeStarted(challengeId, block.timestamp);
    }

    /// @dev Request bracket seeds for challenge tournament. 
    /// This is used for tournaments. Each player is randomly assigned to a bracket. To generate brackets we need a verifiable random seed.
    /// This can be done for both custom and template based challenges.
    /// Custom challenges will have the status Created and Challenges from templates will have the status Running when this is called.
    /// @param challengeId Challenge id
    /// @param numSeeds Number of random seeds to generate
    function requestBracketSeeds(uint256 challengeId, uint32  numSeeds) external nonReentrant onlyManager {
        require(numSeeds > 0, "Number of seeds must be greater than zero.");
        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status==ChallengeBase.ChallengeStatus.Created 
                || challenge.status==ChallengeBase.ChallengeStatus.Running,"Incorrect Challenge status");
        require(challenge.playersCount >= challenge.minPlayersCount, "Number of players must be >= min players");   
        require(challenge.randomSeeds.length==0,"Brackets already created");

        // Will revert if subscription is not set and funded.
        uint256 requestId = vrfCoordinatorInf.requestRandomWords(
            vrfKeyHash,
            vrfSubscriptionId,
            vrfRequestConfirmations,
            vrfCallbackGasLimit,
            numSeeds
        );
        vrfRequests[requestId] = RequestStatus({
            exists: true,
            fulfilled: false,
            challengeId: challengeId
        });

       
        emit BracketSeedsRequested(challengeId, requestId);
    }

    /// @dev Batch refund. For challenges with  many players we refund in batches if needed.
    /// @param challengeId Challenge id
    /// @param playerAddresses Addresses of players to refund
    function refundBatch(uint256 challengeId, address[] memory playerAddresses) external nonReentrant onlyPayer {
        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status == ChallengeBase.ChallengeStatus.Canceled || challenge.status == ChallengeBase.ChallengeStatus.Error, "Challenge not in refundable state");
        require(challenge.fee>0,"Challenge does not have a fee");

        PlayerRefund[] memory playerRefunds = new PlayerRefund[](playerAddresses.length);
        for (uint i = 0; i < playerAddresses.length; i++) {
            playerRefunds[i] = PlayerRefund({
                    player: playerAddresses[i],
                    refunded: false
            });                
            playerRefunds[i].refunded=_processRefund(challenge, playerAddresses[i]);  
        }

        emit BatchRefund(challengeId, playerRefunds);
    }

    /// @dev Does a payout to winners in challenge based on their score/placement. Scores is a ordered list. Amount payed out is based on payout distribution and fee.
    /// @param challengeId Challenge id
    /// @param winners Addresses of players to payout
    /// @param scores Scores of players to payout
    function payout(uint256 challengeId, address[] memory winners, uint64[] memory scores) external nonReentrant onlyPayer {
        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status==ChallengeBase.ChallengeStatus.Running,"Challenge is not running");

        bool isSponsoredPayout = challenge.prizeFund>0;
        IERC20 prizeToken = isSponsoredPayout ? challenge.prizeFundToken : challenge.token;

        uint256 _possiblePayout= isSponsoredPayout ? challenge.prizeFund : (challenge.fee*challenge.playersCount);
        uint256 _actualPayout=0;

        (,,uint8[] memory payoutDistribution,)  = _baseContract.getPayoutDistribution(challenge.playersCount,isSponsoredPayout);

        require(payoutDistribution.length>0,"Distribuition not set");

        //To send event
        // Array of structs to hold player details for the event
        PlayerResult[] memory playerReults = new PlayerResult[](winners.length);        
        
        uint16 placement=1;
        for (uint16 i = 0; i < winners.length; i++) {
             Player storage player = challenge.players[winners[i]];    
             
             if(player.status==ChallengeBase.PlayerStatus.Participating){
                 
                  player.status=ChallengeBase.PlayerStatus.Completed;
                  player.score=scores[i];
                  player.placement=placement;
                  
                  if(payoutDistribution.length>=placement){
                    player.amountPaidOut=(payoutDistribution[placement-1]*_possiblePayout)/100;

                    if(player.amountPaidOut>0){               
                        player.paidOut=true;
                        _actualPayout = _actualPayout+player.amountPaidOut;
                        prizeToken.safeTransfer(winners[i], player.amountPaidOut);                 
                    }
                  }
                
                  placement++;
             }
             else{
                    player.status=ChallengeBase.PlayerStatus.Failed;
             }

            playerReults[i] = PlayerResult({
                player: winners[i],
                placement: player.placement,
                payout: player.amountPaidOut,
                status: uint8(player.status)
            });
        }

        challenge.amountPaidOut=_actualPayout;
        challenge.comission= isSponsoredPayout ? (challenge.fee*challenge.playersCount) : _possiblePayout-_actualPayout;
        challenge.status=ChallengeBase.ChallengeStatus.Finished;

        // Handle commission and send it to split contract when amount exceeds threshold
        
        commission[challenge.token] += challenge.comission;    
        
     
        if(commission[challenge.token] >= _baseContract.getValidTokenThreshold(address(challenge.token))) {        
           _transferCommission(challenge.token); // Call to the private function to transfer commission           
        }

        emit ChallengePayout(challengeId, challenge.amountPaidOut, prizeToken, challenge.comission, challenge.token, playerReults);                
    }

   

    /// @dev Cancels a challenge and refunds up to maxrefunds. If more players then players will be refunded in batches.
    /// @param challengeId Challenge id
    /// @param status Status to set challenge to
    function cancel(uint256 challengeId, uint8 status, uint16 maxRefunds) external nonReentrant onlyPayer  {
        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status==ChallengeBase.ChallengeStatus.Running || challenge.status==ChallengeBase.ChallengeStatus.Created,"Challenge is not running");

        // Array of structs to hold player details for the event
        PlayerRefund[] memory playerRefunds;
     
        if(challenge.fee>0 && challenge.playerAddresses.length<=maxRefunds){
            
            playerRefunds = new PlayerRefund[](challenge.playerAddresses.length);
            for (uint16 i = 0; i < challenge.playerAddresses.length; i++) {
                
                playerRefunds[i] = PlayerRefund({
                    player: challenge.playerAddresses[i],
                    refunded: false
                });                
                playerRefunds[i].refunded=_processRefund(challenge, challenge.playerAddresses[i]);              
            }
        }
        else{
            playerRefunds = new PlayerRefund[](0);
        }      
        
        if(status==uint8(ChallengeBase.ChallengeStatus.Error)){
            challenge.status=ChallengeBase.ChallengeStatus.Error;
        }
        else{
            challenge.status=ChallengeBase.ChallengeStatus.Canceled;
        }

        if(challenge.prizeFund>0){
            uint256 amountToRefund = challenge.prizeFund;
            challenge.prizeFund=0;     
            challenge.prizeFundToken.safeTransfer(_foundingWallet, amountToRefund);                   
        }

        emit ChallengeCanceled(challengeId, uint8(challenge.status), playerRefunds);

    }     
   
    /// @dev Called by players to join a challenge of the specified template type. 
    /// If challenge does not exist or is full a new one is created.
    /// Full challenges will be started
    /// Player must not be blocked or template paused.    
    /// Fee is withdrawn from player and stored in contract until challenge is completed or canceled. Then payout or refund is done.
    /// @param gameTemplateId Id of game template to join
    function joinChallenge(uint16 gameTemplateId ) external nonReentrant whenNotPaused { 
           require(!_baseContract.isBlocked(msg.sender),"User is blocked");          
           
           ChallengeBase.GameTemplate memory gameTemplate = _baseContract.getGameTemplate(gameTemplateId);           
           require(gameTemplate.maxPlayersCount!=0,"Unknown game");
           require(!gameTemplate.paused,"This challenge type is currently not available");

           bool created=false;
           bool started=false;
           
           uint256 currentChallengeId = _baseContract.getCurrentId(gameTemplateId); 

           //If this is an exising challenge it could have been canceled or in error state, in that case we need to create a new challenge.
           if(currentChallengeId==0 
                || _challenges[currentChallengeId].status==ChallengeBase.ChallengeStatus.Canceled
                || _challenges[currentChallengeId].status==ChallengeBase.ChallengeStatus.Error){

               //Check if we allow new game, could be that we disable this to allow people to finish already created
               require(!gameTemplate.softPaused,"This challenge type is currently disabled");   
               //Created challenges can be compled but no new ones can be created
               require(!softPaused,"Joining a challenge is currently paused");   

               (currentChallengeId,created) = _createChallenge(gameTemplateId, gameTemplate);      
              
           }

           Challenge storage challenge = _challenges[currentChallengeId];                                   
          
           // Call the private function to join the challenge
           (started) = _joinChallenge(challenge,gameTemplateId,true);          

           emit ChallengeJoined(currentChallengeId, gameTemplateId, challenge.fee, challenge.token, challenge.maxPlayersCount, msg.sender, challenge.playersCount, created, started, challenge.index, block.timestamp);  
           //We increase event index after event is emitted so create have index 0
           challenge.index++; 
    }

    /// @dev Join a custom challenge. 
    /// A custom challenge is not created from a template.
    /// A custom challenge is normally started at a set time by startChallenge or createBrackets(if tournament)
    /// @param challengeId Id of challenge to join
    function joinChallengeById(uint256 challengeId) external nonReentrant whenNotPaused {
        require(!_baseContract.isBlocked(msg.sender),"User is blocked"); 

        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status==ChallengeBase.ChallengeStatus.Created,"Challenge does not exist");
        require(challenge.isCustom,"Challenge is not custom");
       
        bool started = false;        
        // Call the private function to join the challenge
        (started) = _joinChallenge(challenge,0,false);
        
        //We increase event index before event is emitted since create is in separate function
        challenge.index++; 
        emit ChallengeJoined(challengeId, 0, challenge.fee, challenge.token, challenge.maxPlayersCount, msg.sender, challenge.playersCount, false, started, challenge.index, block.timestamp);  
    }    

    /// @dev Called by players to leave a challenge.
    /// @dev Players can only leave if not challenge is started.
    /// @dev Player will be refunded if allowed to leave.
    /// @param challengeId Id of challenge to leave
    function leaveChallenge(uint256 challengeId) external nonReentrant whenNotPaused {
        Challenge storage challenge = _challenges[challengeId];
        require(challenge.status==ChallengeBase.ChallengeStatus.Created,"Challenge is started or does not exist");
        
        Player storage player = challenge.players[msg.sender];
        require(player.status==ChallengeBase.PlayerStatus.Participating,"Not participating in challenge");

        challenge.playersCount--;
        //Remove from keys. Will remove element but will not keep order. No need now to handle address(0)
        for(uint16 i=0; i<challenge.playerAddresses.length;i++){
              if(challenge.playerAddresses[i]==msg.sender){
                  challenge.playerAddresses[i]=challenge.playerAddresses[challenge.playerAddresses.length-1];
                  challenge.playerAddresses.pop();
              }  
        }

        player.status=ChallengeBase.PlayerStatus.NotParticipating;
        player.refunded=true;
        player.amountRefunded=challenge.fee;

        if(challenge.fee>0){
            challenge.token.safeTransfer(msg.sender, challenge.fee);
        }
        
        emit ChallengeLeft(challengeId, msg.sender, challenge.index, block.timestamp);  

        challenge.index++; 
    }  
    
    /// @dev Returns balance of specified token
    /// @param token Token to check balance of
    /// @return balance Balance of token
    function tokenBalance(address token) external view returns (uint256 balance) {
      return IERC20(token).balanceOf(address(this));
    }   

    /// @dev Returns some of the challenge data (not players)
    /// @param challengeId Challenge id
    /// @return status  Challenge status
    /// @return playersCount Players in challenge 
    /// @return maxPlayersCount Max players in challenge
    /// @return minPlayersCount Min players in challenge
    /// @return fee Fee to join challenge
    /// @return token Token used for challenge
    /// @return prizeFund Sponsored payout for challenge
    /// @return prizeFundToken Token used for sponsored payout
    /// @return amountPaidOut Amount paid out to players 
    /// @return amountRefunded Amount refunded to players
    /// @return comission Commission earned by challenge
    /// @return isCustom If challenge is custom
    function getChallenge(uint256 challengeId) external view returns (uint8 status, uint16 playersCount,uint16 maxPlayersCount, uint16 minPlayersCount, uint256 fee, IERC20 token, uint256 prizeFund, IERC20 prizeFundToken, uint256 amountPaidOut, uint256 amountRefunded, uint256 comission, bool isCustom){
       Challenge storage challenge = _challenges[challengeId];
       return (uint8(challenge.status), challenge.playersCount, challenge.maxPlayersCount, challenge.minPlayersCount, challenge.fee, challenge.token, challenge.prizeFund, challenge.prizeFundToken, challenge.amountPaidOut, challenge.amountRefunded, challenge.comission, challenge.isCustom);
    }

    /// @dev Returns a specific challenge seed used to create tournament brackets
    /// Only applicable for tournaments
    /// @param challengeId Challenge id
    /// @param randomSeeds Seeds created by Chainlink VRF
    function  getChallengeSeeds(uint256 challengeId) external view returns (uint256[] memory randomSeeds){
        Challenge storage challenge = _challenges[challengeId];
        return challenge.randomSeeds;
    }

    /// @dev Returns specified player data
    /// @param challengeId Challenge id 
    /// @param participant Address of player 
    /// @return status Player status 
    /// @return score Player score
    /// @return placement Player placement
    /// @return amountPaidOut Amount paid out to player 
    /// @return amountRefunded Amount refunded to player 
    /// @return paidOut If player is paid out 
    /// @return refunded If player is refunded
    /// @return index Index of player in challenge, if players leave there will be a gap in index
    function getParticipant(uint256 challengeId, address participant) external view returns(uint8 status, uint64 score, uint16 placement, uint256 amountPaidOut, uint256 amountRefunded,  bool paidOut, bool refunded, uint16 index ) {
          Player memory player = _challenges[challengeId].players[participant];
          return (uint8(player.status), player.score, player.placement, player.amountPaidOut, player.amountRefunded, player.paidOut, player.refunded, player.index);
    }

    /// @dev Returns the split contract address
    function getSplitContract() external view returns(address) {
        return _splitContract;
    }

    /// @dev Callback function used by the Chainlink VRF Coordinator to return the random number to the contract.
    /// This function is invoked by the VRF Coordinator once the requested random number is ready.
    /// It must only be callable by the VRF Coordinator to ensure the integrity of the randomness provided.
    /// The function processes the random number(s) and typically triggers contract logic that depends on randomness.
    /// 
    /// @param requestId The unique identifier of the random number request, correlating to the original request made.
    /// @param randomSeeds An array of random numbers generated and returned by the VRF Coordinator. Each element
    /// in the array is a random number. The number of elements depends on the request parameters when randomness was requested.
    function fulfillRandomWords(uint256 requestId, uint256[] memory randomSeeds) internal override {
        require(vrfRequests[requestId].exists, "request not found");
        vrfRequests[requestId].fulfilled = true;

        Challenge storage challenge = _challenges[vrfRequests[requestId].challengeId];
        challenge.status=ChallengeBase.ChallengeStatus.Running;
        challenge.randomSeeds=randomSeeds;

        emit BracketSeedsCreated(vrfRequests[requestId].challengeId, randomSeeds);
    }

    /// @dev Helper function to join a challenge based on a template or custom challenge
    /// @param challenge Challenge to join
    /// @param gameTemplateId Id of game template to join, only if template based otherwise 0
    /// @param canStart If challenge is ready to start, only if template based otherwise false
    /// @return started If challenge was started
    function _joinChallenge(Challenge storage challenge, uint16 gameTemplateId, bool canStart) private returns (bool) {
        Player storage player = challenge.players[msg.sender];

        require(player.status==ChallengeBase.PlayerStatus.NotParticipating,"Player is already participating");
        require(challenge.playersCount<challenge.maxPlayersCount,"Challenge is already full");
        challenge.playersCount++;
        challenge.playerAddresses.push(msg.sender); // Add to array of keys
        player.status=ChallengeBase.PlayerStatus.Participating;
        player.refunded=false;
        player.amountRefunded=0;
        player.index=challenge.index; //Set current index to keep track of order players joined

        bool started = false;
        if(canStart && challenge.playersCount==challenge.maxPlayersCount){
            challenge.status=ChallengeBase.ChallengeStatus.Running;                    
            _baseContract.resetCurrentId(gameTemplateId);
            started=true;
        }
        if(challenge.fee>0){
            _withdrawFee(challenge.fee,challenge.token);
        }          

        return (started);
    }

    /// @dev Helper function to create a challenge from a game template
    /// @param gameTemplateId Id of game template to join
    /// @param gameTemplate Game template to base challenge on
    /// @return newChallengeId Id of new challenge
    /// @return created If challenge was created
    function _createChallenge(uint16 gameTemplateId, ChallengeBase.GameTemplate memory gameTemplate) private returns (uint256, bool) {           
        uint256 newChallengeId = _baseContract.incrementAndSetCurrentId(gameTemplateId);

        Challenge storage challenge = _challenges[newChallengeId];
        challenge.fee=gameTemplate.fee;
        challenge.token=gameTemplate.token;
        challenge.prizeFund=gameTemplate.prizeFund;
        challenge.prizeFundToken=gameTemplate.prizeFundToken;
        challenge.minPlayersCount=gameTemplate.maxPlayersCount;
        challenge.maxPlayersCount=gameTemplate.maxPlayersCount;
        challenge.status=ChallengeBase.ChallengeStatus.Created;

        if(challenge.prizeFund>0){
            _transferFromFoundingWallet(challenge.prizeFund, challenge.prizeFundToken, address(this));
        }

        return (newChallengeId,true);
        
    }

    /// @dev Helper function to withdraw fee from player
    /// @param fee Fee to withdraw
    /// @param token Token to withdraw    
    function _withdrawFee(uint256 fee, IERC20 token) private {
        require(token.allowance(msg.sender, address(this)) >= fee, "Check allowance");
        require(token.balanceOf(msg.sender)>=fee, "Not enough coins");
        token.safeTransferFrom(msg.sender, address(this), fee);
    }

    /// @dev Helper function to withdraw fee from founding wallet
    /// @param fee Fee to withdraw
    /// @param token Token to withdraw
    function _transferFromFoundingWallet(uint256 fee, IERC20 token, address to) private {
        require(token.allowance(_foundingWallet, address(this)) >= fee, "Check founding wallet allowance");
        require(token.balanceOf(_foundingWallet)>=fee, "Not enough coins in founding wallet");
        token.safeTransferFrom(_foundingWallet, to, fee);
    }

     // @dev Function to process refund for a single player
    // @param challenge Challenge
    // @param playerAddress Address of player to refund
    // @return refunded If player was refunded
    function _processRefund(Challenge storage challenge, address playerAddress) private returns (bool refunded) {
        Player storage player = challenge.players[playerAddress];
        if (player.status == ChallengeBase.PlayerStatus.Participating && !player.refunded) {
            player.refunded = true;
            player.amountRefunded = challenge.fee;
            challenge.amountRefunded += challenge.fee;
            challenge.token.safeTransfer(playerAddress, challenge.fee); 
            return true;
           
        }
        return false;
    }

    /// @dev Helper function to transfer commission to split contract
    /// @param token Token to transfer
    function _transferCommission(IERC20 token) private {
        uint256 amountToTransfer = commission[token];
        require(amountToTransfer > 0, "No commission to distribute");
        uint256 balance = token.balanceOf(address(this));
        require(balance >= amountToTransfer, "Not enough balance to transfer commission");

        commission[token] = 0; // Reset the totalCommission
        token.safeTransfer(_splitContract, amountToTransfer); // Transfer commission
        emit TransferCommissionSucceeded(amountToTransfer, token); // Emit event
    }

}

```


# Timelock Contract

The TimeLock contract is designed to enhance security and transparency of contract operations. This contract serves to enforce a mandatory delay (minDelay) on the execution of scheduled actions. Contract actions are scheduled by the admin role and can be cleared by the admin role or the contract role.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity 0.8.21;

import '../ChallengeBase.sol';

/// @title Timelock contract
/// @author Challenge.GG
/// @dev The TimeLock contract is designed to enhance security and transparency of contract operations.  
/// This contract serves to enforce a mandatory delay (minDelay) on the execution of scheduled actions. 
/// Contract actions are scheduled by the admin role and can be cleared by the admin role or the contract role.
contract TimeLock {

    ChallengeBase private _baseContract; // Address to base contract that handles roles, templates and other common data
    uint public minDelay;
    mapping(bytes32 => uint) public timestampOf;

    /// Action scheduLed event
    event ActionScheduled(bytes32 indexed actionId, uint executionTime, string actionName, bytes data);

    /// @dev Restricted to members of the admin role.
    modifier onlyAdmin()
    {
        require(_baseContract.isAdmin(msg.sender), "Restricted to admin");
        _;
    }  

    /// @dev Restricted to members of the Contract role.
    modifier onlyContractOrAdmin()
    {
        require(_baseContract.isAdmin(msg.sender) || _baseContract.isContract(msg.sender), "Restricted to admin or allowed contracts");
        _;
    }

    /// @dev Constructor
    /// @param delay Delay in seconds
    constructor(address baseContract, uint delay) {
        require(baseContract != address(0), "Base contract address is the zero address");
        require(delay > 0, "Delay too short");
        _baseContract = ChallengeBase(baseContract);     
        minDelay = delay;
    }

    /// @dev Schedule an action to only be executed after the set delay
    /// @param actionName Name of the action
    /// @param parameters Parameters of the action
    /// @param initiator Address of the initiator
    /// @return actionId Id of the action
    function scheduleAction(string memory actionName, bytes memory parameters, address initiator) onlyAdmin external returns (bytes32) {
        bytes32 actionId = generateActionId(actionName, parameters, initiator);
        require(timestampOf[actionId] == 0, "Action already scheduled");
        uint executeAfter = block.timestamp + minDelay;
        timestampOf[actionId] = executeAfter;
        emit ActionScheduled(actionId, executeAfter, actionName, parameters);
        return actionId;
    }

    /// @dev Sets the base contract address
    /// @param baseContract Address to base contract that handles roles, templates and other common data
    function setBaseContract(address baseContract) external onlyAdmin {
         require(baseContract != address(0), "Base contract address is the zero address");
        _baseContract = ChallengeBase(baseContract);
    }


    /// @dev Clear a scheduled action
    /// @param actionId Id of the action
    function clearAction(bytes32 actionId) onlyContractOrAdmin public {
        require(timestampOf[actionId] != 0, "Action not scheduled");
        require(block.timestamp >= timestampOf[actionId], "Action time not elapsed");
        timestampOf[actionId] = 0;
    }

    /// @dev Get the execution time of an action
    function getExecutionTime(bytes32 actionId) public view returns (uint) {
        return timestampOf[actionId];
    }

    /// @dev Get the id of an action
    /// @param actionName Name of the action
    /// @param parameters Parameters of the action
    /// @param initiator Address of the initiator
    /// @return actionId Id of the actio
    function generateActionId(string memory actionName, bytes memory parameters, address initiator) public pure returns (bytes32) {
        return keccak256(abi.encodePacked(actionName, parameters, initiator));
    }
}
```


# Loaylty Program Contract

### TBA


# NFT

A non-fungible token, or NFT, is a special type of token which represents a unique ASSET on the BSC blockchain. Learn more here.

## 🔸 What is a non-fungible token?

The Ethereum blockchain brought a whole new digital world where digital assets could be tracked for uniqueness and scarcity, providing the perfect platform to create a one-of-a-kind type of digital asset. These assets are known as non-fungible tokens, or NFTs.

These tokens are built on a cryptocurrency platform in compliance with Ethereum's ERC-721, ERC-1155 and ERC-1337 token standards. NFTs are units of value which are non-fungible, unique and digitally scarce. They cannot be replaced by another equal part or quantity.

### 🔸 Benefits of NFTs as Game Assets

In the revolutionary world of blockchain technology, Non-Fungible Tokens (NFTs) have taken the gaming industry by storm, creating a paradigm shift in how gamers interact with digital worlds. Through the use of NFTs, users on Challenge can derive myriad benefits.

**True Digital Ownership**

NFTs represent a transformative step forward in the realm of digital assets. Unlike traditional in-game items, which are owned and controlled by the game’s developers, NFTs grant true digital ownership to the players. Each NFT is unique, scarce, and directly owned by the player, signifying a new era of player empowerment. This true ownership paradigm not only ensures players’ rights over their game assets, but also allows them to derive real-world economic benefits from their gaming achievements.

**Trading**

NFTs in gaming facilitate easy and secure trading of game assets. Using blockchain's decentralized, peer-to-peer nature, players can buy, sell, or trade their unique game assets on NFT marketplaces. This not only allows players to monetize their skills and assets, but it also adds a new layer of economic complexity and depth to gaming experiences.

**Security**

The blockchain's decentralized and immutable nature underpins the security of NFT-based game assets. Once an NFT is minted and ownership is established, it cannot be altered or deleted, reducing the risk of fraud and hacking. This unprecedented level of security gives players the peace of mind to focus on their gaming, knowing their assets are safe.

**Immutability**

NFTs are immutable, meaning once they're created, they cannot be changed or duplicated. This ensures that each NFT retains its uniqueness and value, reinforcing the scarcity and uniqueness of in-game assets. Immutability ensures authenticity and prevents counterfeit issues, thereby enhancing the overall trust in the digital gaming ecosystem.

**Cross-Platform Interoperability**

One of the most groundbreaking benefits of NFTs is their cross-platform interoperability. This means that NFTs created in one game could potentially be used in another. Players could use their favorite weapon, character, or item across different gaming platforms, opening up a new dimension of gaming experience. This interoperability fosters a more open, interconnected gaming ecosystem, blurring the lines between different gaming universes.

In conclusion, NFTs as game assets are not just a trend but a game-changing innovation that offers significant benefits for players. Through Challenge, users can experience first-hand the advantages of this cutting-edge technology, marking an exciting evolution in the gaming industry.


# In-game

Reshaping Gaming Economy with In-Game NFTs

<figure><img src="/files/CIIKhYjc1rO0Exo8TWC2" alt=""><figcaption><p>FrrontLand ingame asset</p></figcaption></figure>

### 🔸 A New Era: Gaming Meets Blockchain

We will introduce in-game Non-Fungible Tokens (NFTs) for our Original games, ensuring a more engaging and enriched gaming experience. Unlike traditional virtual assets, these NFTs will represent unique, immutable, and transparently verifiable in-game assets, allowing players to derive real-world economic value from their virtual possessions.

### 🔸 The Power of Traits

In the Challenge.gg universe, the power of your gameplay is in your hands. Each NFT, representing an in-game item, will come with distinct traits that affect its performance and aesthetics. These traits range from Scopes, Grips, Barrels, and Magazines to Skins.

With Scopes for precision, Grips for better control, Barrels for enhanced shooting performance, and Magazines for increased ammo capacity, every element is designed to enrich your gaming strategy. The Skin trait, on the other hand, offers a cosmetic uplift to your weaponry, giving you the edge in styling your in-game persona to your taste.

### 🔸 Customization and Identity

Challenge.gg introduces a whole new level of character customization. Players can purchase characters and dress them up in their unique style, offering a personal touch to their gaming avatars. This not only adds a layer of individual identity but also enhances player engagement, creating a more immersive gaming experience.

### 🔸 Airdrops: The Surprise Element

At Challenge.gg, we believe in rewarding our players in ways that augment their in-game adventures. That’s why we will introduce random airdrops for NFTs to players engaged in both Training Camp and Flash modes. These airdrops, landing unexpectedly in your game, will bring a thrilling dimension to your gaming journey, offering the potential to unlock new capabilities and styles.

Challenge.gg is not just about creating games; it's about crafting an immersive, engaging, and rewarding gaming experience. Our in-game NFTs are the first step towards a decentralized gaming economy where players have the liberty to realize the value of their in-game accomplishments in the real world. Join us and be a part of this exciting revolution!

**Read more regarding launch date of the ingame NFT:S in our roadmap:**

{% content-ref url="/pages/O6kuxIxPjHk2d6BnprY1" %}
[ROADMAP](/roadmap/vision)
{% endcontent-ref %}


# Tournament

Tournament NFTs

Tournament NFTs introduces a concept in the expanding sphere of digital assets and blockchain technology. As an innovative form of unique, indivisible digital assets, Tournament NFTs not only hold value but also provide their holders with the exclusive ability to host tournaments in a Whitelabel structure. **In essence, they provide a mechanism that intertwines ownership, digital identity, and participation rights in the gaming landscape.**

### 🔸 Concept Overview

Tournament NFTs stand out in the crypto-asset space by providing a functional utility: the right to host gaming tournaments. This mechanism engenders a symbiotic relationship with the Challenge ecosystem, where all stakeholders, including streamers, teams, communities, and studios, can benefit.

This concept operates on a decentralized model where the NFTs become more than just digital collectibles but gateways to engaging experiences and potential sources of income. Through these NFTs, holders can host tournaments, attract participation, foster community growth, and share in the economic benefits brought about by the increased activities in the Challenge ecosystem.

<figure><img src="/files/yYDY4Y6t8Qxr2o3QaQpZ" alt=""><figcaption></figcaption></figure>

### 🔸 Beneficiaries of Tournament NFTs

#### Streamers

As the gaming and esports industry continue to flourish, streamers have a unique opportunity to leverage Tournament NFTs. They can host their tournaments, increase viewer engagement, and diversify their revenue streams. With the added allure of exclusive tournaments, streamers can boost their brand's visibility and attract more followers.

#### Teams

Tournament NFTs also provide teams with the chance to host their tournaments. Teams can use these tournaments as a platform for scouting new talent, practicing strategies, or fostering community engagement. By hosting a tournament, they can increase their value, both in terms of brand and their NFT assets.

#### Community

Tournament NFTs are a win for the community at large. These NFTs fuel the excitement and engagement in the ecosystem, providing community members with more opportunities to participate in unique gaming experiences. Community members can also potentially increase the value of their NFTs by participating in these tournaments and building their reputation within the community.

#### Studios

For game studios, Tournament NFTs can be used as an innovative marketing tool. Studios can host tournaments to showcase new games, updates, or features, directly engaging with their audience in an interactive and immersive way. It is an innovative method of player retention and acquisition.

### 🔸 Building Value Through NFTs

One of the core aspects of the Tournament NFTs concept is the potential for value growth of the NFT assets. As tournament hosts build their brand and reputation, the value of their NFTs can also increase. This growth in value is directly tied to the brand recognition and the success of the tournaments they host.

Further, the unique integration with the Challenge ecosystem ensures a shared economic benefit. This shared economy not only increases the overall value of the ecosystem but also incentivizes all stakeholders to contribute towards its growth.


# Earn NFTs

Find out how you can earn NFTS such as ASSETS in Challenge.gg

🔸 **Domination**

In the Domination branch, players compete in a series of intense competitions where their gaming skills are tested to the limit. Successful players not only earn bragging rights but also have the chance to earn NFTs as a reward for their efforts.

#### 🔸 Flash

The Flash branch features short, high-intensity tournaments where quick thinking and fast reflexes are key. Here, players can earn NFTs as they blaze their way through the competition.

#### 🔸 Qualify Squads

In Qualify Squads, players form teams and compete for supremacy. This branch promotes teamwork and strategic planning, and successful squads are rewarded with NFTs.

#### 🔸 Training Camp

The Training Camp is a safe space where players can hone their skills before competing in high-stakes tournaments. In addition to improving their gameplay, participants in the Training Camp stand a chance to earn NFTs through randomized airdrops.

### Random Airdrops

Random airdrops serve as a reward system on the Challenge.gg platform. In these events, NFTs are distributed at random to participants in the different branches. This adds an exciting twist, as players can earn rewards simply by being active participants in the platform.

<figure><img src="/files/U3LLDne8sLnfWtf3vUMj" alt=""><figcaption></figcaption></figure>


# Staking program

Our loyalty program is not only profitable but also engaging and impactful. Vesting Challenge.GG tokens opens up a world of opportunities, rewards, and exclusive benefits:

1. **Early Access to New Games**: Be among the first to get your hands on our new games. Test them during their alpha and beta stages and shape their development with your feedback.
2. **Play & Earn in Tournaments**: Engage in at least five tournaments and get rewarded for your participation. It's a win-win – you enhance your gaming skills and enjoy the added perk of earning rewards.
3. **Participate in Governance**: With our Challenge.GG Decentralized Autonomous Organization (DAO), your opinion matters. Tokens in the loyalty program grants you voting rights, enabling you to influence the platform's future direction.
4. **Exclusive Access to Pre-Released NFTs**: Get ahead of the game with pre-release access to our unique Non-Fungible Tokens (NFTs). Secure one-of-a-kind digital assets before anyone else.
5. **Host Tournaments**: Flex your creativity by hosting your own tournaments on our platform. Showcase your initiative and earn rewards in the process.

On top of these, we have the **Tiered Reward System**, designed to elevate your program benefits based on your level of engagement, and a **Loyalty Bonus** to reward long-term loyal members.

Our loyalty program operates via two distinct program – an unrestricted program with no time limit, and a locked program with a 3-month holding period. You can vest your Challenge.gg tokens based on your preferences and risk tolerance.

Unique to our model is our reward system, which is backed by Ethereum. This means that instead of getting more Challenge.gg tokens, you earn Ethereum, providing a new income stream and enhancing the profitability of holding Challenge.gg tokens and do task for challenge.

Revenue from different platform fees, like tournament fees, is redistributed to the loyalty program through a smart contract. This ensures not only a steady flow of rewards but also binds the interests of our loyal holders to the performance of the platform. The reward model is designed to avoid inflation, as rewards are given in Ethereum, not Challenge.gg tokens, thereby not increasing our native token supply.

At Challenge.gg, we believe in a future where the gaming industry thrives in an equitable, decentralized environment. Our loyalty program offers more than just a new income – it offers the chance to be part of this transformative journey. Be loyal with us, shape the future gaming landscape, and enjoy the financial benefits of our shared success. be part, play, influence, earn – it’s all part of the game!


# Audit and KYC

In the rapidly evolving landscape of blockchain and cryptocurrency, ensuring the highest standards of security and compliance is paramount. Challenge has proactively addressed these concerns by engaging with CertiK, a leader in blockchain security, for both technical auditing and KYC (Know Your Customer) processes.

🔸 **Overview of CertiK's Audit Services**

CertiK, renowned for its pioneering role in blockchain security, offers comprehensive audit services that delve deep into the project's codebase to identify potential vulnerabilities and security risks. Founded by esteemed professors from Yale University and Columbia University in 2018, CertiK leverages cutting-edge artificial intelligence (AI) technology to enhance the safety and integrity of blockchain protocols and smart contracts.

🔸 **Audit Details for Challenge**

Challenge has undergone a rigorous technical audit conducted by CertiK, reflecting our commitment to security and transparency. The audit's primary objective was to provide a thorough security assessment of our project's code, ensuring it adheres to the highest standards of safety and reliability in the blockchain domain.

The detailed results and findings of this audit can be accessed at: [CertiK's Challenge Project Audit](https://skynet.certik.com/projects/challenge-gg).

#### 🔸 KYC on CertiK

<figure><img src="/files/w3cHB335wKXTjVYNlqHx" alt=""><figcaption></figcaption></figure>

🔸 **Importance of KYC in Blockchain Projects**

Know Your Customer (KYC) processes are crucial in the blockchain industry, serving as a standard for ensuring the legitimacy and accountability of project teams. KYC procedures help in building trust within the community and among investors by promoting transparency and adherence to regulatory standards.

🔸 **Challenge's KYC Compliance**

In line with our commitment to transparency and trust, Challenge has completed the KYC process with CertiK. This process involved thorough verification of our team members' identities and credentials, ensuring that our project operates with integrity and in compliance with relevant regulations.

For more information on our KYC compliance, please visit: [CertiK's Challenge Project KYC](https://skynet.certik.com/projects/challenge-gg).


# Airdrop

Challenge Token Airdrop Alert!

Get ready for an exciting opportunity to earn Challenge Tokens! We're thrilled to announce our airdrop campaign where we're distributing a total of 5,000,000 Challenge Tokens to our community members.

How to Participate:

* **1.**&#x56;isit the Challenge Airdrop Website: Head over to our dedicated airdrop website to get started on your journey to earning Challenge Tokens.
* **2.**&#x43;reate Your Account: Connect your wallet for an account on the airdrop page to begin your participation.
* **3.**&#x43;omplete Account Verification: Verify your account to ensure eligibility for the airdrop.
* **4.**&#x48;old at Least 0.001 ETH: To qualify for the campaign, you must hold a minimum of 0.001 ETH in your wallet on ethereum mainnet.
* **5.**&#x45;arn Points for Rewards: Starting from March 27th, 2024, participants will earn challenge tokens based on their activity. The more points accumulated, the higher the Challenge Token rewards.
* **6.**&#x50;articipation: Participants will receive the airdrop through the Thirdweb airdrop contract to obtain the rewards.

Airdrop Details:

* Total Token Allocation: 5,000,000 Challenge Tokens
* Campaign Duration: The campaign will run until April 25, 2024, 00:00 am (GMT).
* Reward Distribution: The rewards will be distributed to the winners by 7th may, 2024.
* Minimum ETH Holding Requirement: Participants must hold at least 0.001 ETH to be eligible at the 6th May 2024 in your connected wallet on ethereum mainnet.
* Refer a friend to the Airdrop: A maximum of 10 invites per referral link. To receive the rewards, the referred person must complete all tasks.
* Airdrop System: The airdrop system will verify that all tasks are completed and users are legitimate before announcing the winner.&#x20;

Breaching policies, using bots, or not being a real user will result in instant disqualification from the airdrop allocation.

### Find Out More: <br>

Stay tuned on our social media channels, including Discord and Telegram, where you'll find updates, winner announcements, and more!

Don't miss out on this opportunity to join our community and earn Challenge Tokens. Get started now and seize the rewards!

<br>


# Partnerships

Entity we work with

## MME Legal

MME Legal a swiss legal firm. Tax and compliances team provides support across legal, tax and compliance matters to all crypto, blockchain, and fintech clients and includes experts across a broad range of areas, including banking, corporate law, tax, compliance, and AML.

{% embed url="<https://www.mme.ch/en/>" %}

## Cipoholio Ventures

Cipholio Ventures is a research-driven investment firm specializing in cryptocurrencies, tokens, and blockchain projects that have the potential to reshape the trillion-dollar markets. Serve as a bridge to connect people, technology, and capital in the decentralized world. We aim to seek opportunities in Web 3.0, DeFi, GameFi, Metaverse, and Layer 2 based on our deep understanding of the industry and data-driven decisions.&#x20;

{% embed url="<https://www.cipholio.com/>" %}

## Certik Audit

CertiK is a pioneer in blockchain security, leveraging best-in-class artificial intelligence (AI) technology to protect and monitor blockchain protocols and smart contracts. Founded in 2018 by professors from Yale University and Columbia University, CertiK's mission is to secure the web3 world.

{% embed url="<https://www.certik.com/>" %}

## Unreal Engine

Unreal Engine is a series of 3D computer graphics game engines developed by Epic Games, first showcased in the 1998 first-person shooter video game Unreal.

{% embed url="<https://www.unrealengine.com/en-US>" %}

## Microsoft

Microsoft Corporation is an American multinational technology corporation which produces computer software, consumer electronics, personal computers, and related services

Microsoft Sponsored Challenge and made it possible to make a beta platform for comeptetive gaming.&#x20;

{% embed url="<https://www.microsoft.com/>" %}

## NMBRS Studio

Nmbrs Studio is an innovative creative powerhouse that thrives in the realm of visuals. Born within the digital universe, this studio is dedicated to crafting unique and captivating cinematic experiences. Their expertise lies in creating breathtaking visuals that leave a lasting impact on audiences.

Nmbrs Studio has collaborated with prestigious clients, including Vallhalla and Riot Games, the renowned creators behind popular games like Valorant. Their partnership with these industry giants showcases their ability to bring digital worlds to life and push the boundaries of visual storytelling.

With a team of talented creatives, Nmbrs Studio combines cutting-edge technology, artistic vision, and storytelling prowess to deliver extraordinary visual experiences. Whether it's crafting immersive game cinematics or producing stunning promotional videos, they excel in bringing ideas to life and capturing the essence of a brand or concept.

{% embed url="<https://www.nmbrs.studio/>" %}

## Yuugen Labs

Yuugen Studios strives toward creating optimal digital solutions for companies that want to excel within their industry.

Our clients range from enterprises to newly launched start-ups, making us able to accommodate all sorts of business sizes. Moreover, our clients are placed in various industries

{% embed url="<https://www.yuugen-studios.com/>" %}

## Nagato

Nagato is an MCN platform and partners with Google. Nagato has over one billion views on youtube and a close partnership with gaming content creators worldwide.&#x20;

Challenge will have them as partners to create partnership deals with streamers and YouTubers for marketing.

{% embed url="<https://nagato.io/>" %}

## CHARGE

Charge is a dynamic payment management platform that emerged in 2019, revolutionizing the gaming industry. But it doesn't stop there. Charge goes beyond just facilitating payments; it also operates as a talent agency for gamers, nurturing and promoting the brightest stars in the gaming world.

With an impressive portfolio that includes renowned gaming icons like FRIBERG, Loda, and Heaton, Charge has quickly established itself as a driving force in the industry. By merging the worlds of finance and talent management, Charge provides a comprehensive platform for gamers to excel both financially and professionally.

{% embed url="<https://charge.gg/>" %}

## LION GAME LION

Lion Game Lion is a diverse and dedicated game development studio with experience in creating high-quality games such as 'Payday 2' and 'Raid: World War II'. The team focuses on player engagement and enjoyment, striving to continually refine their games. With a deep-rooted passion for entertainment and gaming, Lion Game Lion continues to explore and innovate within the industry.

{% embed url="<https://www.liongamelion.com/>" %}

## Spring

Spring is a digital innovation agency. Spring works creatively, technically, and strategically in tech, innovation, and design. With extensive industry experience, Spring creates comprehensive solutions, products, and services focusing on usability and benefit.

{% embed url="<https://spring.se/>" %}

## RealJuridik

Realjuridik is a new, flexible, and modern business law firm in Sweden that provides services in areas including contract law and corporate law, as well as legal financial advice and compliance. Our goal is to deliver the best legal service at a competitive price, based on a solid understanding of your specific business and operations.

{% embed url="<https://www.realjuridik.se/>" %}


# Marketing

Three-Stage

🔸**Stage 1: Establishing Foundation and Awareness**

**Objective**: Create a online presence and cultivate a dedicated community.

* **Launch of Digital Platforms**: We will develop a website and engage on key social media platforms to connect with our audience.
* **Content Strategy Implementation**: A series of informative blog posts and regular social media updates will be initiated, highlighting the distinct features of our blockchain gaming project.
* **Community Engagement Initiatives**: Platform like Discord will be established for direct interaction with the project team and early community members.

🔸**Stage 2: Enhancing Engagement and Building Partnerships**

**Objective**: Brand visibility and form strategic collaborations.

* **Influencer Collaborations**: Partnership with key influencers in the gaming and cryptocurrency sectors will be pursued for content creation and live streaming.
* **Announcement of Strategic Partnerships**: We will publicly announce partnerships with gaming clans and other blockchain projects, with a focus on collaborative tournaments and events.
* **Educational Outreach**: The project will produce and disseminate explainer videos and articles to elucidate the integration of blockchain technology in gaming.

🔸**Stage 3: Building Pre-Launch Momentum and Community Support**

**Objective**: Foster anticipation for the project launch and reinforce community support.

* **Beta Testing and Gathering Community Feedback**: We will actively engage the community in beta testing, utilizing their insights for project enhancements.
* **Elevating Marketing Efforts**: Marketing activities will be intensified across all channels, underscoring the unique attributes and advantages of the project.
* **Announcement of Tournament Schedule**: A schedule for forthcoming tournaments will be released, encouraging early participation and excitement.
* **Launch Countdown Initiative**: A countdown to the project launch will be implemented, spotlighting the innovative elements and prospective impact of the project.


# Streamers

Engaging Audiences through Competitive Play

Streamers are key influencers in the gaming world. On Challenge.gg, they have the unique opportunity to host tournaments, transforming their role from entertainers to interactive community leaders.

🔸**Benefits**:

1. **Viewer Integration**: By organizing competitive events, streamers can involve their viewers directly in their content. This interaction deepens viewer loyalty and enhances the community experience.
2. **Content Diversification**: Hosting tournaments offers a dimension to a streamer's channel, adding excitement and variety to their existing content lineup.

#### **Supporting Streamers in Tournament Hosting**

* **Campaigns for Streamers**: We will launch targeted campaigns to support streamers who organize their own tournaments on Challenge.gg. These campaigns will focus on promoting the streamer's event, enhancing visibility and participation.
* **Innovative Content Creation**: Encouraging streamers to try new games on Challenge.gg as part of their tournaments will provide fresh content. This approach not only keeps their channels dynamic but also introduces their audience to new gaming experiences.


# Communities

Fostering Clan Unity

#### 🔸**Clans**:

Clans thrive on a strong sense of community. Challenge.gg enables clans to strengthen these bonds by hosting exclusive tournaments.

**Benefits for Clans**:

1. **Member Engagement**: Organizing clan-exclusive tournaments offers a space for camaraderie and friendly competition.
2. **Unity and Accomplishment**: These events promote a sense of unity and collective achievement among clan members.

#### 🔸**Community Projects:**

The platform to broader communities and new blockchain ventures.

**Benefits for commynties**:

1. **Event-Based Engagement**: Communities can host tournaments to celebrate events, new project launches.
2. **Audience Engagement**: These tournaments provide an innovative way to engage and grow an audience.


# Terms of use

Version information: We last updated this notice on January 20, 2024

### Where can I see Challenges terms of use?

You can see the terms of use here:  [LINK](https://challenge.gg/terms-of-use/)

### Challenge gg ab

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity ("you") and Challenge GG ab ("we", "us", or "our") concerning your access to and use of the [www.challenge.gg](http://www.challenge.gg) website and the app.challenge.gg as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the "Site" and the "App"). Challenge is a distributed application that is currently running on the Ethereum Network (the "Blockchains"), using specially-developed smart contracts (each, a "Smart Contract") to enable users to play tournaments, games, transfer, and buy genetically unique digital creatures. It also allows users to hold and transfer other digital assets like Tournaments assets. The Smart Contracts and the Site are collectively referred to in these Terms as the "App." Using the App, users can view their assets and use the Smart Contracts to acquire, trade, and play with other App users.

\
WE ARE ONLY WILLING TO MAKE THE APP, THE SMART CONTRACTS, AND THE SITE AVAILABLE TO YOU IF YOU ACCEPT ALL THESE TERMS. BY USING THE APP, THE SMART CONTRACTS, THE SITE, OR ANY OTHER OFFICIAL CHALLENGE PRODUCT, YOU ARE CONFIRMING THAT YOU HAVE READ, UNDERSTAND, AND AGREE TO BE BOUND BY ALL OF THESE TERMS OF USE. IF YOU DO NOT AGREE AND/OR ACCEPT ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE, THE APP AND THE SMART CONTRACTS AND YOU MUST DISCONTINUE USE IMMEDIATELY.

\
Supplemental terms and conditions or documents that may be posted on the site, the App, and the Smart Contracts from time to time are hereby expressly incorporated herein by reference. In our sole discretion, we reserve the right to make changes or modifications to these Terms of Use at any time and for any reason. We will alert you of any changes by updating the "Last Updated" date of these Terms of Use, and you waive any right to receive specific notice of each such change. You are responsible for periodically reviewing these Terms of Use to stay informed of updates. You will be subject to and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the site, the App, and the Smart Contracts after the date such revised Terms of Use are posted.

The information on the site, the App, and the Smart Contracts are not intended for distribution to any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or subject us to any registration requirement within such jurisdiction or country. Accordingly, any persons who access the Site and/or the App while breaking local laws are doing it on their initiative and will have to deal with the consequences when applicable.

\
The Challenge is offered and available to users who are 18 years of age or older.&#x20;

By accessing or using The Challenge, you represent and warrant that you are of legal age to form a binding contract with Challenge GG Ab and meet the initial eligibility requirements. If you do not meet all of these requirements, you must not access or use The Challenge.

\
Please read these Terms carefully before you start to use The Challenge. By using The Challenge, you accept and agree to be bound and abide by these Terms.&#x20;

\
Privacy Policy, which can be found at the following URL: [LINK](https://challenge.gg/privacy-policy/)

{% content-ref url="/pages/StU9zG0NZcYOMMHJFhPe" %}
[Privacy and Legal](/privacy-and-legal/terms-of-use)
{% endcontent-ref %}

You must not access or use The Challenge.

\
**USER REGISTRATION**

You may be required to register with the site, the App, and the Smart Contracts. You agree to keep your password confidential and will be responsible for all your account and password use. We reserve the right to remove, reclaim or change a username you select if we determine, in our sole discretion, that such username is inappropriate, obscene, or otherwise objectionable.

\
**USER REPRESENTATIONS**

By using the site, the App and the Smart Contracts, you represent and warrant that:

1. All registration information you submit will be accurate, current, and complete.
2. You will maintain the accuracy of such information and promptly update such registration information as necessary.
3. You have the legal capacity and agree to comply with these Terms of Use.
4. You are not a minor in the jurisdiction in which you reside.
5. You will not access the site, the App, and the Smart Contracts through automated and non-human means, whether through a bot, script, or otherwise.&#x20;
6. You will not use the site, the App, and the Smart Contracts for any illegal and unauthorized purpose; and
7. &#x20;Using the site, the App, and the Smart Contracts will not violate any applicable law or regulation. Suppose you provide any information that is untrue, inaccurate, not current, or incomplete. In that case, we have the right to suspend or terminate your account and refuse any and all current or future use of the site, the App, and the Smart Contracts (or any portion thereof).&#x20;
8. You, as a Challenge.gg owner, are responsible for the actions of any "scholars" (players using any Challenge.gg you own) that play on your behalf and that their efforts can have consequences for any connected accounts that you own.&#x20;
9. You will not manipulate the challenge system, such as using aimbots and playbots to win challenges. (This goes under multi-accounting).&#x20;
10. You have not been included in any trade embargoes or economic sanctions list (such as united nations security council sanctions list), the list of specially designated nationals maintained by OFAC (the office of foreign assets control of the u.s. department of the treasury), or the denied persons or entity list of the u.s. department of commerce.&#x20;
11. That Challenge or third-party providers we work with, may store the IP address you use to access the site.&#x20;
12. You can only play one challenge at the same time.&#x20;

Challenge GG Ab reserves the right to choose which markets and jurisdictions to conduct its business and may restrict or refuse, at its sole discretion, the provision of Challenge services in certain countries or regions.

<br>

**SALE OF ASSETS AND GAMES; PAYMENT**

You may make your Asset eligible to be sold in The Challenge marketplace. You and Challenge shall mutually agree on the price for the Asset in The Challenge marketplace. You will control the scarcity of the Asset in The Challenge marketplace. Any revenue earned in The Challenge marketplace for the Asset sales, minus any transaction fees, shall be paid immediately on the blockchain by your Asset's purchaser. A Game may be made available for sale to users of The Challenge, and you will control the Game's pricing and business model (free, free-2-play, or premium). Any revenue earned in The Challenge marketplace for sales of a Game, minus any transaction fees, shall be paid to you immediately on the blockchain by the purchaser of your Game.

Suppose you elect to purchase and/or sell Assets and/or Games on The Challenge. In that case, any financial transactions you engage in will be conducted solely through the Ethereum network via MetaMask (or other ETH-compatible wallets and browsers). Challenge has no insight into or control over these payments or transactions, nor do we have the ability to reverse any transactions. With that in mind, Challenge will have no liability to you or any third party for any claims or damages that may arise as a result of any transactions that you engage in on The Challenge.

Each sales transaction in The Challenge will be subject to a fee payable by the purchaser to Challenge. Such fee will be automatically applied as part of the sales transaction.

As between you and Challenge, you will be solely responsible for paying any and all sales, use, value-added, and other taxes, duties, and assessments (except taxes on Challenge net income) now or hereafter claimed or imposed by any governmental authority (collectively, "Taxes") associated with your use of The Challenge (including, without limitation, any Taxes that may become payable as a result of your ownership, transfer, or creation of any Assets and/or Games).

\
**RIGHT TO MONITOR, MODERATE, OR REMOVE**

You agree that you bear all risks associated with your Assets and Games. You are solely responsible for safeguarding your Assets and Games, and Challenge has no duty to store copies of Assets and Games for future availability to you or any user except as otherwise provided under these Terms. Challenge does not permit the infringement of intellectual property rights on the Services, and will remove Assets and/or Games from the Services if properly notified that such Assets and/or Games infringe on another's intellectual property rights. We reserve the right to remove Assets and Games from the Services, in whole or in part, without prior notice, for any reason or for no reason at all. Without limiting our right to terminate a user pursuant to these Terms, we reserve the right to terminate the account of any user of the Services who has been notified of infringing activity and/or has had Assets and/or Games removed from the Service. We also reserve the right to decide whether Assets and/or Games are appropriate and comply with these Terms for violations other than violations of intellectual property law. This shall extend to the right of Challenge to edit, modify, moderate, re-format, change or otherwise remove all or part of the descriptions, comments and/or annotations that you and/or third parties add and/or make in relation to your Assets and/or Games in any manner that we may determine, whenever we deem it appropriate.

\
**FEEDBACK**

Feedback. If you provide the company with any feedback or suggestions regarding the site ("Feedback"), you hereby assign all rights to the company in such Feedback. You agree that the company shall have the right to use and fully exploit such Feedback and related information in any manner it deems appropriate. The company will treat any Feedback you provide to the company as non-confidential and non-proprietary. You agree that you will not submit to the company any information or ideas that you consider confidential or proprietary.

**TERMINATION**

These Terms of Use remain in full force and effect while you use the site, the App, and the Smart Contracts. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE, THE APP, AND THE SMART CONTRACT (INCLUDING BLOCKING CERTAIN IP ADDRESSES) TO ANY PERSON FOR ANY REASON OR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE, THE APP, AND THE SMART CONTRACT OR DELETE YOUR ACCOUNT WITHOUT WARNING AT OUR SOLE DISCRETION.

Suppose we terminate or suspend your account for any reason. In that case, you are prohibited from registering and creating a new account under your name, a fake or a borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating and suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

<br>

&#x20;**ASSUMPTION OF RISK**

You accept and acknowledge each of the following:

A. The prices of blockchain assets are extremely volatile. Fluctuations in the price of other digital assets could materially and adversely affect the value of your Challenge.gg, which may also be subject to significant price volatility. Therefore, we cannot guarantee that any purchasers of Challenge.gg will not lose money.

B. You are solely responsible for determining what taxes apply to your Challenge.gg-related transactions. Challenge GG ab is not responsible for determining the taxes that apply to your transactions on the App, the site, or the Smart Contracts.

C. There are risks associated with using an Internet-based currency, including, but not limited to, the risk of hardware, software and Internet connections. The risk of malicious software introduction, and the risk that third parties may obtain unauthorized access to information stored within your wallet. You accept and acknowledge that Challenge GG ab will not be responsible for any communication failures, disruptions, errors, distortions or delays you may experience when using the Binance network, however caused.

D. A lack of use or public interest in the creation and development of distributed ecosystems could negatively impact the development of the Challenge ecosystem and, therefore, the potential utility or value of Challenge.gg.

E. The regulatory regime governing blockchain technologies, cryptocurrencies, and tokens is uncertain. New regulations or policies may materially adversely affect the development of the Challenge ecosystem and, therefore, the potential utility or value of Challenge.gg.

\
**USER DATA**

We will maintain certain data that you transmit to the site, the App, and the Smart Contracts for the purpose of managing the performance of the site, the App and the Smart Contracts, as well as data relating to your use of the site, the App and the Smart Contracts. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that release to any activity you have undertaken using the site, the App and the Smart Contracts. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

\
**MISCELLANEOUS**

These Terms of Use and any policies or operating rules posted by us on the site, the App, and the Smart Contracts, or in respect to the site, the App, and the Smart Contracts constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. Suppose any provision or part of a provision of these Terms of Use is determined to be unlawful, void, and unenforceable. In that case, that provision or part of the provision is deemed severable these Terms of Use and does not affect the validity and enforceability of any remaining provisions. No joint venture, partnership, employment, or agency relationship was created between you and us due to these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.


# Privacy and Legal

Information regarding Challenge privacy policy.

### Will Challenge share or sell my personal information?

Challenge will never share your personal information with anybody unless you have given consent to do so.&#x20;

### Does The **Challenge** adhere to GDPR?

Yes, Challenge adheres to the EU General Data Protection Regulation (GDPR).

### How can I get in touch with Challenge regarding a privacy query?

Feel free to take a look at our privacy policy:

{% content-ref url="/pages/dMbBecmmyXvtIACVmksw" %}
[GDPR](/privacy-and-legal/gdpr)
{% endcontent-ref %}

## Legal

### Do we need to pay taxes on any of our earnings?

Challenge cannot offer you any tax or financial advice. This information differs by nation as well as by local jurisdictions such as states and counties. Please seek advice from an official tax representative from your local jurisdiction.


# GDPR

GDPR – Privacy-By-Design and Record of Processing Activities

We are committed to a lawful, fair and transparent processing of personal data, adhering to the EU General Data Protection Regulation (GDPR). This privacy policy documents our general privacy-by-design considerations (articles 5, 25 and 26 GDPR) and records our processing activities (article 30(1) GDPR). This privacy policy describes the type of information we may collect from you or that you may provide when you visit the website [https://www.challenge.gg/ ](https://www.sandbox.game/), all platforms and services offered thereon, and through our mobile applications (collectively, our “Website”) and our practices for collecting, using, maintaining, protecting, and disclosing that information.

Company name: Challenge GG AB Birgerjarlsgatan 20, 114 34 Stockholm, Sweden.&#x20;

\*Not formally a DPO under the GDPR. Note that the below uses “you” and “us” in the NRS of the paragraphs. 1 to 11 to allow inclusion without modification in our information notices provided to data subjects.

Our Website is not intended for children under 18 years of age. No one under age 18 may provide any personal information to or on the Website. We do not knowingly collect personal information from children under 18. If you are under 18, do not use or provide any information on this Website or on or through any of its features/register on the Website, make any purchases through the Website, use any of the interactive or public comment features of this Website or provide any information about yourself to us, including your name, address, telephone number, email address, or any screen name or user name you may use. If we find out we have collected or received personal information from a child under 18 without verification of parental consent, we will delete that information. If you believe we might have any information from or about a child under 18, please contact us at <privacy@challenge.gg>

1\. We process the following (categories of) personal data when you play our games, interact with or participate in our gaming platforms, connect to a social networking site through our games, register an account, enter a promo code, or place an order:

Your IP address, your SIM code, and the country where you are located. Your device type (for example, PC or Mac, iPhone 7, Samsung Galaxy S7) and operating system version.

For analytics, when you installed and played the game, your progress throughout the game, and events that are connected to your game-play. We generally cannot identify you with this data, but treat it the same way as personal data.

2\. What (purposes) do we use the data for? We use this personal data to perform analytics for our games and to allow third-parties to sell, buy and deliver advertising in these games. We use your IP address and SIM code to comply with legal obligations, specifically to comply with VAT reporting obligations

We use social network data to show you personalized content and synchronize your online progression across multiple devices. For example, we might show a list with only your friends in it, or show your name or avatar on an in-game object.

We use your email address that you provided when you signed up for our newsletter to send you the newsletter

3\. What is our legal basis for the processing? For both analytics and advertising, we base the processing of personal data on the legitimate interest of Challenge GG AB. For analytics, this is our ability to analyze how players progress through our games to make them better, and to know our player base on an aggregate level. For advertising, this is our ability to be able to off-set development costs and risk with advertising income. We also process your personal data for the legitimate business interest of complying with a legal obligation — we are subject to certain legal requirements which may require us to process your personal data. We may also be obliged by law to disclose your personal data to a regulatory body or law enforcement agency. For the third-parties we use, their legitimate interest is to be able to offer us their services, and for advertising third-parties and advertisers to be able to show you advertising.

4\. Where do we obtain the data from (sources)? We obtain data from you (when you provide it directly through the Website) and from our third-party services providers:

* Google Analytics
* Smartlook
* Google Tags
* Bitski

5\. For how long and where do we store data? We store the personal data that we collect for up to 5 years, and only aggregate data after that time. Aggregation data means that we can no longer look at data for individual players. We store the data with our third-party service provider, Amazon AWS. When a third-party service provider is a controller, they may keep data as well, either for a shorter or longer period.

6\. What safeguards have we taken to protect data? Taking into account the nature, scope, context and purpose of the processing, we have taken the following technical and organizational measures:

* Access to our database and user accounts by third-party service providers is protected with access control.
* Access to the database is limited, not all staff in our organization have full access.
* Data sent from our games is encrypted in transit where technically possible. We do not actively monitor the security of our databases and need to rely on our processors to notify us of any data breaches.

7\. Who do we share data with? We may disclose aggregated data and any information that does not identify an individual without restriction.

We may also disclose personal information that we collect or you provide:

* To our subsidiaries and affiliates.
* To contractors, service providers, and other third parties we use to support our business.
* To a buyer or other successor in the event of a merger, reorganization, dissolution, or other transfer or sale of some or all of Challengegg ab’s assets.
* To fulfill the purposes for which you provide it.
* For any other purpose disclosed by us when you provide the information.
* With your consent.

We share data with the following third-parties. These are either controllers, or processors acting on our behalf. We have linked to their respective policies and given a basic description of what they do:

* Google Analytics
* Smartlook
* Google Tags
* Bitski

We may also disclose your personal information:

* To comply with any court order, law, or legal process, including to respond to any government or regulatory request.
* To enforce or apply our Terms of Use and other agreements, including for billing and collection purposes.
* If we believe disclosure is necessary or appropriate to protect the rights, property, or safety or Challenge GG AB., our end users, or others.

8\. Transfer of your personal data You should also know that your personal data may be transferred from your home country to third parties. If you are an EU resident, this could imply that we also transfer data to countries that do not offer an adequate level of protection for your personal data. When we transfer this data, we will do so only when we have put in place appropriate safeguards to protect your personal data. Please contact us to get a copy of the safeguards that we have put in place. Our contact details are at the end of this privacy policy.

9\. Your Rights You have the right to request access to your personal data that we process. You also have the right to:

* Rectify incorrect personal data or erase it in certain circumstances.
* Restrict or object to the processing of your personal data.
* Receive your data so that you can use it elsewhere (data portability).

If you wish to exercise any of the above rights, please send us an email at <privacy@challenge.gg>. You may also update your personal data in your profile on The Challenge via the settings. Finally, you have the right to lodge a complaint with a supervisory authority. If you do not know who your supervisory authority is, please contact us and we will tell you.

10\. How to contact us You can contact us with any questions you may have about the processing of your personal data or the use of cookies and similar technologies by us, or to exercise the above rights: Web: <http://www.challenge.gg>

Address: Company name: Challenge gg AB, Birgerjarlsgatan 20, 11434 Stockholm, Sweden.

11\. Version information: We last updated this notice on January 29, 2024. You can view it at [https://www.](https://www.sandbox.game/en/privacypolicy/)challenge.gg/privacylegal


# Associated challenges and risks

It is the responsibility of any purchaser of $CHALLENGE.GG to inform themselves of, and to observe and comply with, all applicable laws and regulations of any relevant jurisdiction. Prospective purchasers for any $CHALLENGE.GG shall be expected to consider the risk factors identified in this section. If any of the indicated risks were to materialize, then they could have a negative impact on the Issuer’s finances and operational performance which can hinder the ability of the Issuer to fulfil its obligations under this whitepaper.

The challenges and risks are identified by the board of administration of the Issuer as at the date of registration of this whitepaper. This does not exclude the possibility of there being other risk threats and the purchaser must be aware that the impact on the Issuer may be heightened due to a combination of several risks materializing simultaneously.

One of the main challenges in the project is the rate of adoption of the community of players to start play matches and games from original games, which will be a key point behind the demand generation of $CHALLENGE.GG. As such, we are focused in developing a strong, multi-platform product that can spread massively by offering alot of options to games and create contest that are fun and rewarding. We are therefore developing strong connection with game studios in different genres to provide the best product and invetory.  We believe the rate of adoption and learning curve will be steeper with more options for our community. The project success rate will be dependent upon the priority and preference of consumers and its ability to swiftly anticipate, identify and capitalise upon these priorities and preferences.

The Issuer operates in an emerging and disruptive industry that is under rapid and dynamic development. This includes, but is not limited to, the developments relating to the business itself, the underlying technology, and the regulatory and legal implications thereof. Specifically, in relation to public knowledge and understanding of emerging technologies, such distributed ledger technologies, smart contracts and other innovative technology arrangements, are still limited as at the date of registration of this whitepaper. The risks arising out of such may not be fully comprehended as of yet and new additional risks may arise in the future.

As the Issuer’s undertaking is reliant on the continuous and proper functioning of its technology infrastructure, the Issuer is subject to a variety of risks relating to the proper maintenance thereof. These risks include, but are not limited to, cyber-attacks, data theft or other unauthorised use of data, and other malicious interferences. Certain parts of the infrastructure may be outsourced to third parties. In such cases, the Issuer is reliant upon technology arrangements developed by such third parties for the running of its undertaking, and it is exposed to the risk of failures in such technology arrangements.


# Disclaimer

This White Paper is a dynamic document and may be updated or changed. It is not a binding commitment, promise, or guarantee by The Challenge or any mentioned individual or organization regarding the future availability or performance of services or tokens.

This document is not an offer to sell or a solicitation of an offer to buy any securities. It should not be considered as a part of any sale, subscription, purchase, or invitation to buy or subscribe for any securities. Nor should it be relied upon in any contract or commitment. The Challenge.gg disclaims any responsibility for loss or damage arising from reliance on this White Paper, including any errors, omissions, or inaccuracies.

This document is for informational purposes only, not a recommendation or financial advice. Investments in tokens, companies, or entities mentioned here carry risks, including volatility and liquidity risks, and may lead to the total loss of principal. Independent due diligence and professional advice are crucial before making any investment decisions.

The information provided is based on sources deemed reliable, but is presented “as is” without warranty, either expressed or implied. Market data is subject to change and is not guaranteed for accuracy or completeness. Graphs, charts, and visual aids in this document are informational and should not be the sole basis for investment decisions.

This document may contain forward-looking statements, which are speculative and based on assumptions. These statements are subject to risks and uncertainties, and actual results may differ significantly. We do not guarantee the accuracy of forward-looking statements. The Challenge is not responsible for any decision made based on this information.


