# Smart Contracts

## Overview

This integration comprises several on-chain components, each designed to serve a specific function within the raffle ecosystem:

### **RPS: The Raffle Engine**

The RPS Raffle contract is the heart of the raffle system. It serves multiple functions:

* **Ticket Generation**: Dynamically creates tickets for participants entering the raffle.
* **Raffle Fund Management**: Securely holds the funds accumulated during the raffle.
* **Raffle Information**: Maintains a comprehensive record of the raffle, including the details of each draw, participating tickets, and payouts.

### **RPSRouter: User-Focused Entry Point**

The RPSRouter acts as a streamlined entry point for end-users. This contract is stateless and has a dual-purpose architecture:

* **Protocol Integration**: Designed to interact with the client's native smart contract, thereby facilitating seamless engagement for users on your platform.
* **Raffle Interactions**: Simultaneously calls the RPS raffle contract to ensure that users can engage with your dapp and receive tickets, all in a single transaction.

{% hint style="info" %}
The functions detailed in this documentation serve as baseline examples. Our smart contracts can be customized to meet the unique requirements of each client. Therefore, the architecture and functions may vary in actual implementations.
{% endhint %}

