Smart Contracts
The architecture of the lottery smart contracts is designed to ensure transparency, security, and fairness. To ensure the complete integrity of the lottery system, the smart contracts are designed to be immutable and transparent.
The contracts are written using native Python and are deployed on Algorand, a blockchain platform that prioritizes scalability, security, and user experience. The application IDs for the lottery smart contracts are as follows:
- Fanbet Lottery ID: 2901647410
- Fanbet Discounter ID: 2881825331
System Architecture
The image below shows the high-level architecture of the lottery system and its components.
A brief description of the architecture components:
-
FanBet Lottery Contract: Manages the lottery process, including ticket sales, drawing, and prize distribution.
-
FanBet Discounter Contract: Handles discounts for eligible users.
-
Fanbet Player Contract: A smart contract is created for each user, that stores their tickets, and allows them to participate in the lottery.
-
Fanbet Admininstrator Account: Responsible for updating the lottery settings such as ticket prices, prize amounts, and drawing durations.
-
Fanbet Executor Account: Executes the lottery process, including submitting commits to the beacon, opening payouts and resetting for lottery to the next round. It is executed by an offchain cron job.