Domino Docs
Go to Domino
  • Introduction
  • Concepts
  • Getting started
  • Quest Management
    • Creating your community on Domino
    • Launching your first quest
    • Creating custom quest tasks
  • Viewing quest claims (submissions)
  • Using custom rewards
  • Understanding the task verification automation
  • Restricting quest access to Discord role
  • Domino Portal
    • Setting up the portal
    • Customizing the portal
    • Managing portal quests
    • Creating leaderboards
  • Developer Resources
    • Authenticating users with the portal API
    • Embedding the portal in Telegram Mini Apps
  • Checking claim status
  • Getting quest modules
  • Claiming a quest
Powered by GitBook
On this page
  • Overview
  • How It Works
  • API Reference
  • Example Response
  • Example Usage

Getting quest modules

Overview

The modules endpoint allows you to fetch all available modules and their quests for a given community. When called with a user token, it provides additional information about the user's progress, including whether quests have been started, completed, or claimed.

Key features:

  • Fetch all modules for a community

  • Get quest details and requirements

  • Track user progress when authenticated

  • View quest rewards and completion status

How It Works

  1. The endpoint determines the community from the URL

  2. If a user token is provided, it includes the user's progress

  3. Returns modules containing quests with their completion status

  4. Each quest includes required accounts, wallets, and rewards

API Reference

GET /api/modules

Query Parameters

Parameter
Type
Required
Description

userId

String

No

Automatically included when request is authenticated

Response

The response includes an array of modules, each containing quest deployments with their details and user progress.

Response Properties

Property
Type
Description

data

Array

List of modules

data[].id

String

Unique identifier of the module

data[].name

String

Name of the module

data[].description

String

Description of the module

data[].deployments

Array

List of quests in the module

data[].deployments[].id

String

Unique identifier of the quest

data[].deployments[].title

String

Title of the quest

data[].deployments[].description

String

Description of the quest

data[].deployments[].tasks

Array

List of tasks in the quest

data[].deployments[].tasks[].id

String

Unique identifier of the task

data[].deployments[].tasks[].name

String

Name of the task

data[].deployments[].tasks[].type

String

Type of the task (e.g., 'custom')

data[].deployments[].tasks[].requiredWallets

Array

List of required wallet configurations

data[].deployments[].tasks[].requiredAccounts

Array

List of required account types

data[].deployments[].quest

Object

Quest configuration and rewards

data[].deployments[].isClaimed

Boolean

Whether the user has claimed the rewards

data[].deployments[].isStarted

Boolean

Whether the quest is available to claim

data[].deployments[].isEnded

Boolean

Whether the quest has ended

data[].deployments[].requiredQuests

Array

List of quests ids that must be completed first

Example Response

{
  "data": [
    {
      "id": "mod-123abc",
      "name": "Community Onboarding",
      "description": "Get started with our community",
      "deployments": [
        {
          "id": "quest-456def",
          "title": "Join Our Community",
          "description": "Connect with us on social media",
          "tasks": [
            {
              "id": "task-789ghi",
              "name": "Join Discord Server",
              "type": "custom",
              "config": {},
              "source": {
                "type": "TEMPLATE",
                "templateId": "template-abc123"
              },
              "description": "Join our Discord community",
              "requiredWallets": [],
              "requiredAccounts": ["discord"],
              "validationConfig": {
                "automationId": null,
                "automationInputs": {}
              }
            }
          ],
          "metadata": {},
          "quest": {
            "id": "quest-456def",
            "metadata": {
              "moduleId": "mod-123abc"
            },
            "rewards": {
              "pointsReward": 100,
              "leaderboardId": "leaderboard-xyz789"
            },
            "requiredAccounts": ["discord"],
            "requiredWallets": []
          },
          "isClaimed": false,
          "isStarted": true,
          "isEnded": false,
          "requiredQuests": []
        }
      ]
    }
  ]
}

Example Usage

// Fetch modules without authentication
const response = await fetch('https://your-community.domino.page/api/modules');
const modules = await response.json();

// Fetch modules with authentication to get progress
const authenticatedResponse = await fetch('https://your-community.domino.page/api/modules', {
  headers: {
    'x-api-key': 'user-api-token-here'
  }
});
const modulesWithProgress = await authenticatedResponse.json();
PreviousChecking claim statusNextClaiming a quest

Last updated 11 days ago