Detailed Project Description (no more than 3-4 sentences):

We built a tournament management platform that uses ETH and ERC20 tokens to fund tournaments. Once the games are played and the winners are determined, the winners should receive the funds immediately.

Describe your tech stack (e.g., protocols, languages, API’s, etc.):

We're using Kotlin w/ Springboot to host the backend (With a Mongo database). All the offchain data is stored there as well as mirroring of the on chain data.

The frontend is calls out to the database with user information as well as utilizing Web3js to call a smart contract that is deployed for each tournament instance. We're utilizing Skale as a layer 2 solution for cheaper transaction fees.

User onboarding is done using Blocknative which allows us to receive the basic information about the user (public address) from there we allow the user to interact with the dapp until he or she wants to engage in a tournament (organize or register). The user must then provide extra metadata.

Once the winners of the tournament are selected by the organizer, a transaction is fired off to the smart contract with the winners' public addresses. The winners then should get their payouts.

For a tournament to run, we only use two transactions with the blockchain. 1. fund the contract 2. transfer the funds to the winner.
This helps keep the transaction fees even cheaper for our users!