Part One of Series: How to Create a Loyalty Points System Like Dream11's 'DreamCoins' Using

Learn how you can create a loyalty points system like Dream11's "DreamCoins" using This guide walks you through integrating to reward user actions, calculate points, and set up rewards, driving engagement and retention on your platform.

a month ago
8 min read

In today's competitive digital landscape, user engagement and retention are key factors in determining the success of any platform. One proven strategy to keep users motivated and encourage their participation is by implementing a loyalty points system, similar to Dream11's highly successful DreamCoins. A well-designed loyalty points system not only incentivizes users to interact with your platform more frequently but also fosters a sense of loyalty and commitment to your brand.

Fortunately, creating a loyalty points system like Dream11's DreamCoins is now easier than ever, thanks to the powerful promotion engine - By leveraging's features, you can seamlessly integrate a robust and efficient loyalty points system into your platform, allowing you to reward users for their actions and keep them engaged.

In this comprehensive guide, we will walk you through the step-by-step process of building a loyalty points system that mirrors the success of Dream11's DreamCoins.

Here we will be covering all the essential aspects of creating an effective loyalty program- from setting up your account to defining user actions, calculating points balances, and implementing a rewards system.

Whether you're a developer looking to enhance your platform's user engagement or a business owner seeking to boost customer retention, this article will provide you with the knowledge and tools necessary to create a loyalty points system that rivals the best in the industry. So, let's dive right in!

Use Case 1 : How to Earn DreamCoins on Dream11

Every Time Actions:

Action Coins Conditions/Notes
Paid Contests Joined Earn 1 for every ₹1 paid Earn DreamCoins based on the amount paid for contests.
Free Contests Joined Up to 3 per match Rewards vary based on match and contest type.

One-Time Actions:

Action Coins Conditions/Notes
Email Verification 5 One-time reward upon email verification.
Phonebook Sync 10 One-time reward for syncing phonebook.
Profile Picture Changed 10 One-time reward for the first change.
Team Name Changed 10 One-time reward for the first change.
Dream11 Friend Made 10 One-time reward for first follow + following.
PAN Verification 20 One-time reward upon PAN verification.
First Team Created 20 One-time reward for creating your first team.
Bank Verification 40 One-time reward upon bank account verification.
First Withdrawal 50 One-time reward for the first withdrawal.
First Deposit of ₹25 or more 100 One-time substantial reward for the first deposit.

Additional Notes:

  • DreamCoins balance is based on your latest level, while bonus DreamCoins are earned for first-time actions performed.
  • DreamCoins earned will be valid up to 1 year from the date of credit.
  • DreamCoins can be used to redeem exciting rewards on the platform.

Step 1: Set up your Rehook account and create a wallet in just a few clicks

To start building your loyalty points system like Dream11's DreamCoins, you will first create your account on rehook. Once logged in, go to the "Wallets" section and click "Create Wallet." Enter a unique "Wallet Name" like "DreamCoins" and a "Wallet Display Name" such as "Dream11 coin wallet DreamCoins."

In the "Reward Points Name" fields, enter "coin" for singular and "coins" for plural. Set the "Reward Point Currency Conversion" to "1 INR = 1 Reward Points." For expiration, choose "On" and enter "365" in the "days after being rewarded" field.

Click "Create Wallet" to complete the setup. Your DreamCoins wallet is now ready to define user actions and rewards within Rehook.

Rehook Wallet Creation Flow

Let's move on to the next step and focus on implementing one-time actions in your loyalty points system.

Step 2: Create an event for email verification

To set up the one-time action for email verification, navigate to the "Events" section in the Rehook dashboard. Click on the "Create Event" button to define a new user action (Image 1).

In the "Create an event" modal, enter a descriptive name for the event, such as "email_verification" . Under "Event Properties," add two properties:

  1. "email" of type "string"
  2. "verified" of type "boolean"

These properties will help you track the email address and verification status associated with the event.

Next, head to the "Campaigns" section in the Rehook dashboard and select "Action Based Reward Campaign". This type of campaign allows you to reward users for completing specific actions, such as email verification.

Click on the "Create" button next to "Action Based Reward Campaign" . In the campaign creation process, provide a name for your campaign, like "Email Verification".

Under the "Earning Rule" section, select the event you created earlier, "email_verification," as the trigger for the reward . Set the condition to reward users when the "verified" property equals "true".

Choose "Real-time actions" as the action type, so users are rewarded immediately upon completing the email verification.

In the "Rewards" section, select the "DreamCoins" wallet you created earlier. Choose "Flat reward" as the reward type and enter "5" as the number of DreamCoins users will receive for verifying their email address.

By following these steps, you have successfully created an event and a campaign to reward users with 5 DreamCoins for completing the one-time action of email verification.

Repeat this process for other one-time actions like phone number verification, profile picture upload, and bank account verification to create a comprehensive loyalty program that encourages user engagement and retention.

Step 3: Prepare the Request Body

  • The request body should be in JSON format, containing the event details and user information.
  • For the "email_verification" event, the request body should look like this:
  "event_name": "email_verification", 
  "source_id": "<user_id>",
  "metadata": {
    "email": "<email_id>",
    "verified": true
  • Replace <user_id> with the unique identifier for the user verifying their email.
  • Replace <email_id> with the actual email address of the user.

For example, if the user ID is "player_id_123" and the email address is "", the request body would be:

  "event_name": "email_verification",
  "source_id": "player_id_123",
  "metadata": {
    "email": "",
    "verified": true

This request body structure follows the format required by's API for invoking events. The event_name field specifies the event you want to trigger, in this case, "email_verification". The source_id field represents the unique identifier for the user associated with the event.

The metadata object contains any additional properties or data related to the event. For the "email_verification" event, we're including the user's email address and a boolean value indicating whether the email is verified or not.

By constructing the request body correctly, you ensure that can process the event accurately and apply the appropriate campaign rules or rewards based on the event details and user information provided.

Here's the Node.js code to send the API request to for the "email_verification" event:

const axios = require('axios');

const apiKey = '<your_api_key>';
const apiSecret = '<your_api_secret>';
const userId = '<user_id>';
const emailId = '<email_id>';

const requestBody = {
  event_name: 'email_verification',
  source_id: userId,
  metadata: {
    email: emailId,
    verified: true

const auth = `Basic ${Buffer.from(`${apiKey}:${apiSecret}`).toString('base64')}`;

  method: 'post',
  url: '',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': auth
  data: requestBody
.then(response => {
  console.log('Event triggered successfully!');
.catch(error => {

Make sure to replace the following placeholders with your actual values:

  • <your_api_key>: Your API Key
  • <your_api_secret>: Your API Secret
  • <user_id>: The unique identifier for the user verifying their email
  • <email_id>: The email address of the user

This code can be integrated into your Node.js application to trigger the "email_verification" event via's API. Upon successful execution, the user will be rewarded with DreamCoins or any other loyalty points based on the campaign rules you've defined in the dashboard.

Note: Make sure to install the axios library if it's not already installed in your project by running npm install axios before executing this code.


Building a loyalty points system akin to Dream11's DreamCoins with the help of presents a unique opportunity to engage and retain users by rewarding their participation and loyalty. Throughout this guide, we've explored the initial steps necessary to set up a system that not only rewards users but also fosters a community of engaged participants. From establishing your wallet to implementing one-time actions that encourage user interaction, each step has been designed to contribute towards a seamless and rewarding user experience.

We've seen how simple actions, such as email verification, can be leveraged to enhance user engagement through immediate rewards. By employing's robust platform, we can automate these rewards, ensuring that users are consistently recognized for their contributions to the platform. This automation not only simplifies the process of managing a loyalty program but also allows for scalability as your user base grows.

As we conclude Part One of our series, it's important to remember that the foundation of any successful loyalty points system lies in understanding your audience and tailoring the rewards to their preferences. The technical setup, while crucial, is only part of the equation. The real value comes from creating a program that resonates with your users, encouraging continued engagement, and building a loyal community around your brand.

In the upcoming parts of this series, we will delve deeper into optimizing your loyalty points system, analyzing user data to refine your rewards, and exploring strategies for scaling your program. By continuing to leverage the capabilities of, you'll be well on your way to creating a dynamic and engaging loyalty points system that rivals Dream11's DreamCoins.

Stay tuned for the next instalment, where we'll explore further how to maximize the impact of your loyalty program and ensure that your platform remains a preferred choice for your users. Together, let's create an ecosystem of rewards that encourages, recognizes, and values the participation of every user.

Take the first steps towards growth
Every user-interaction is a promotional opportunity. Unlock the power of personalized, high-impact promotions that boost growth, user engagement and retention - without any tech effort.