> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flipsuite.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Quest

> Create quest in your community



## OpenAPI

````yaml POST /v1/community/quests
openapi: 3.1.0
info:
  version: 1.0.0
  title: Flipsuite API
servers:
  - url: https://api.flipsuite.xyz
security: []
paths:
  /v1/community/quests:
    post:
      description: Create quest in your community
      parameters:
        - in: header
          name: x-api-key
          description: Your community API key
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              example:
                name: Raffle Quest
                shortDescription: Quest intro
                fullDescription: Extra quest description and instructions
                recurrence: ONCE
                visibility: PUBLIC
                tasks: []
                rewards: []
              type: object
              properties:
                name:
                  description: Quest name.
                  type: string
                  maxLength: 48
                shortDescription:
                  description: Quest intro (plain text only).
                  type: string
                  maxLength: 256
                fullDescription:
                  description: Quest instructions (supports markdown).
                  type: string
                  maxLength: 4096
                bannerUrl:
                  description: Link to a banner image for the quest.
                  anyOf:
                    - type: string
                      format: uri
                    - type: 'null'
                recurrence:
                  description: Quest recurrence type.
                  type: string
                  enum:
                    - ONCE
                    - DAILY
                    - WEEKLY
                    - MONTHLY
                    - CUSTOM
                recurrenceInterval:
                  description: >-
                    Quest interval between rounds, or its duration for ONCE
                    recurrence type.
                  anyOf:
                    - type: number
                      minimum: 3600000
                      maximum: 31536000000
                    - type: 'null'
                visibility:
                  description: Quest visibility type.
                  type: string
                  enum:
                    - PRIVATE
                    - PUBLIC
                    - SHARED
                maxIterations:
                  description: Maximum number of quest rounds.
                  anyOf:
                    - type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    - type: 'null'
                maxIterationCompletions:
                  description: Maximum number of completions per quest round.
                  anyOf:
                    - type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    - type: 'null'
                maxTotalCompletions:
                  description: Maximum number of total quest completions.
                  anyOf:
                    - type: integer
                      minimum: 1
                      maximum: 9007199254740991
                    - type: 'null'
                status:
                  description: Status to create the quest with.
                  anyOf:
                    - default: ACTIVE
                      type: string
                      enum:
                        - DRAFT
                        - ACTIVE
                    - type: 'null'
                tasks:
                  description: Quest tasks and requirements.
                  maxItems: 32
                  type: array
                  items:
                    oneOf:
                      - title: API
                        type: object
                        properties:
                          type:
                            type: string
                            const: API
                          name:
                            description: Task name.
                            type: string
                            minLength: 1
                            maxLength: 48
                          description:
                            description: Task description.
                            type: string
                            minLength: 1
                            maxLength: 256
                          endpoint:
                            description: Endpoint to call when verifying the task.
                            type: string
                            format: uri
                          userIdMethods:
                            description: User identification methods.
                            minItems: 1
                            type: array
                            items:
                              type: string
                              enum:
                                - discord
                                - twitter
                                - wallets
                          walletChains:
                            description: Chains to get user wallets for.
                            anyOf:
                              - minItems: 1
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - Abstract
                                    - ApeChain
                                    - Arbitrum
                                    - Atto
                                    - Avalanche
                                    - Base
                                    - Berachain
                                    - Blast
                                    - BSC
                                    - CosmosHub
                                    - Cronos
                                    - Ethereum
                                    - Harmony
                                    - HyperCore
                                    - HyperEvm
                                    - Initia
                                    - Injective
                                    - Intergaze
                                    - Linea
                                    - Mitosis
                                    - Nano
                                    - Nibiru
                                    - Optimism
                                    - Osmosis
                                    - Plasma
                                    - Polygon
                                    - SEDA
                                    - Sei
                                    - SeiEvm
                                    - Solana
                                    - Somnia
                                    - Sonic
                                    - Stargaze
                                    - Terra
                                    - Unichain
                                    - Yominet
                                    - Zaar
                                    - zkCronos
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - name
                          - description
                          - endpoint
                          - userIdMethods
                      - title: Discord Account Age
                        type: object
                        properties:
                          type:
                            type: string
                            const: DISCORD_ACCOUNT_AGE
                          minAccountAgeDays:
                            description: Minimum account age in days.
                            type: number
                            minimum: 1
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - minAccountAgeDays
                      - title: Discord Server Roles
                        type: object
                        properties:
                          type:
                            type: string
                            const: DISCORD_SERVER_ROLES
                          serverId:
                            description: Server ID.
                            type: string
                            pattern: ^\d{16,}$
                          serverInviteLink:
                            description: Server invite link.
                            anyOf:
                              - type: string
                                pattern: https:\/\/discord\.gg\/\w+
                              - type: 'null'
                          roleIds:
                            description: IDs of Discord roles to check for.
                            minItems: 1
                            type: array
                            items:
                              type: string
                              pattern: ^\d{16,}$
                          operator:
                            description: Logical operator to use when checking roles.
                            type: string
                            enum:
                              - and
                              - or
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - serverId
                          - roleIds
                          - operator
                      - title: Discord Users
                        type: object
                        properties:
                          type:
                            type: string
                            const: DISCORD_USERS
                          userIds:
                            description: IDs of Discord users to check for.
                            minItems: 1
                            maxItems: 25
                            type: array
                            items:
                              type: string
                              pattern: ^\d{16,}$
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - userIds
                      - title: File Upload
                        type: object
                        properties:
                          type:
                            type: string
                            const: FILE_UPLOAD
                          label:
                            description: Input label.
                            type: string
                            minLength: 1
                            maxLength: 32
                          description:
                            description: Input description.
                            type: string
                            maxLength: 256
                          fileTypes:
                            description: Allowed file types.
                            minItems: 1
                            type: array
                            items:
                              type: string
                              enum:
                                - IMAGE
                                - VIDEO
                                - AUDIO
                                - PDF
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - label
                          - description
                          - fileTypes
                      - title: NFT Balance
                        type: object
                        properties:
                          type:
                            type: string
                            const: NFT_BALANCE
                          chain:
                            description: Chain key.
                            type: string
                            enum:
                              - Abstract
                              - ApeChain
                              - Arbitrum
                              - Atto
                              - Avalanche
                              - Base
                              - Berachain
                              - Blast
                              - BSC
                              - CosmosHub
                              - Cronos
                              - Ethereum
                              - Harmony
                              - HyperCore
                              - HyperEvm
                              - Initia
                              - Injective
                              - Intergaze
                              - Linea
                              - Mitosis
                              - Nano
                              - Nibiru
                              - Optimism
                              - Osmosis
                              - Plasma
                              - Polygon
                              - SEDA
                              - Sei
                              - SeiEvm
                              - Solana
                              - Somnia
                              - Sonic
                              - Stargaze
                              - Terra
                              - Unichain
                              - Yominet
                              - Zaar
                              - zkCronos
                          contractAddress:
                            description: >-
                              NFT contract address (verified creator address on
                              Solana).
                            type: string
                            maxLength: 128
                          collectionName:
                            description: NFT collection name.
                            type: string
                            minLength: 4
                            maxLength: 64
                          standard:
                            description: NFT collection standard.
                            type: string
                            enum:
                              - CW_721
                              - ERC-721
                              - ERC-1155
                              - METAPLEX
                              - METAPLEX_CNFT
                              - METAPLEX_CORE
                              - SG_BADGE
                              - UNKNOWN
                          minAmount:
                            description: Minimum required amount (inclusive).
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          maxAmount:
                            description: Maximum allowed amount (exclusive).
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          tokenIds:
                            description: Required NFT IDs.
                            anyOf:
                              - type: string
                                pattern: ^((\d+(-\d+)?)|(\w+))(,((\d+(-\d+)?)|(\w+)))*$
                              - type: 'null'
                          attributes:
                            description: Required NFT attributes.
                            anyOf:
                              - type: array
                                items:
                                  type: object
                                  properties:
                                    key:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                    - key
                                    - value
                              - type: 'null'
                          attributesOperator:
                            description: Attributes logical operator.
                            anyOf:
                              - type: string
                                enum:
                                  - and
                                  - or
                              - type: 'null'
                          includeFlipwallets:
                            description: >-
                              Whether to include Flipwallets during
                              verification.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          includeFlipwalletsExclusively:
                            description: Whether to include Flipwallets exclusively.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          includeStakingContracts:
                            description: >-
                              Whether to include staking contracts during
                              verification.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          includeStakingContractsExclusively:
                            description: Whether to include staking contracts exclusively.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - chain
                          - contractAddress
                          - collectionName
                          - standard
                      - title: Numeric Input
                        type: object
                        properties:
                          type:
                            type: string
                            const: NUMBER_INPUT
                          label:
                            description: Input label.
                            type: string
                            minLength: 1
                            maxLength: 32
                          description:
                            description: Input description.
                            type: string
                            maxLength: 256
                          isInteger:
                            description: Whether input value must be an integer.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          prefix:
                            description: Number prefix.
                            anyOf:
                              - type: string
                                maxLength: 16
                              - type: 'null'
                          suffix:
                            description: Number suffix.
                            anyOf:
                              - type: string
                                maxLength: 16
                              - type: 'null'
                          minValue:
                            description: Minimum allowed value.
                            anyOf:
                              - type: number
                              - type: 'null'
                          maxValue:
                            description: Maximum allowed value.
                            anyOf:
                              - type: number
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - label
                          - description
                      - title: Points Balance
                        type: object
                        properties:
                          type:
                            type: string
                            const: POINTS_BALANCE
                          pointSystemId:
                            description: Point system ID.
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          minAmount:
                            description: Minimum required amount (inclusive).
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          maxAmount:
                            description: Maximum allowed amount (exclusive).
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - pointSystemId
                      - title: Points Tip
                        type: object
                        properties:
                          type:
                            type: string
                            const: POINTS_TIP
                          pointSystemId:
                            description: Point system ID.
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          minAmount:
                            description: Minimum required tip amount.
                            type: number
                            minimum: 0
                          lookbackWindowDays:
                            description: Verification lookback window in days.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - pointSystemId
                          - minAmount
                      - title: Poll Input
                        type: object
                        properties:
                          type:
                            type: string
                            const: POLL_INPUT
                          label:
                            description: Poll label.
                            type: string
                            minLength: 1
                            maxLength: 64
                          description:
                            description: Poll description.
                            anyOf:
                              - type: string
                                maxLength: 256
                              - type: 'null'
                          options:
                            description: Poll options.
                            minItems: 2
                            maxItems: 25
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  pattern: >-
                                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                                label:
                                  description: Option label.
                                  type: string
                                  minLength: 1
                                  maxLength: 64
                                description:
                                  description: Option description.
                                  anyOf:
                                    - type: string
                                      maxLength: 256
                                    - type: 'null'
                              required:
                                - id
                                - label
                          minSelections:
                            description: Minimum allowed selections.
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                          maxSelections:
                            description: Maximum allowed selections.
                            type: integer
                            minimum: 1
                            maximum: 9007199254740991
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - label
                          - options
                          - minSelections
                          - maxSelections
                      - title: Token Swap
                        type: object
                        properties:
                          type:
                            type: string
                            const: TOKEN_SWAP
                          chain:
                            description: Chain key.
                            anyOf:
                              - type: string
                                enum:
                                  - Abstract
                                  - ApeChain
                                  - Arbitrum
                                  - Atto
                                  - Avalanche
                                  - Base
                                  - Berachain
                                  - Blast
                                  - BSC
                                  - CosmosHub
                                  - Cronos
                                  - Ethereum
                                  - Harmony
                                  - HyperCore
                                  - HyperEvm
                                  - Initia
                                  - Injective
                                  - Intergaze
                                  - Linea
                                  - Mitosis
                                  - Nano
                                  - Nibiru
                                  - Optimism
                                  - Osmosis
                                  - Plasma
                                  - Polygon
                                  - SEDA
                                  - Sei
                                  - SeiEvm
                                  - Solana
                                  - Somnia
                                  - Sonic
                                  - Stargaze
                                  - Terra
                                  - Unichain
                                  - Yominet
                                  - Zaar
                                  - zkCronos
                              - type: 'null'
                          tokenAddress:
                            description: Token address.
                            anyOf:
                              - type: string
                                maxLength: 128
                              - type: 'null'
                          minAmount:
                            description: Minimum required swap amount.
                            type: number
                            minimum: 0
                          amountUnit:
                            description: Amount unit.
                            type: string
                            enum:
                              - absolute
                              - dollar
                          allowedPlatforms:
                            description: Allowed swap platforms.
                            anyOf:
                              - maxItems: 10
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - COWSWAP
                                    - FLIPSUITE
                                    - GAS_ZIP
                                    - HYPERLIQUID
                                    - JUPITER
                                    - LI_FI
                                    - LIQUID_SWAP
                                    - OBSIDIAN
                                    - OKU_TRADE
                                    - ORBITER
                                    - RELAY
                                    - ROCKETX
                                    - SOLANA
                                    - SOMNEX
                                    - SKIP_GO
                                    - SQUID
                                    - STARGATE
                                    - SUSHI_SWAP
                                    - WOLFSWAP
                                    - VVS
                              - type: 'null'
                          lookbackWindowDays:
                            description: Verification lookback window in days.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - minAmount
                          - amountUnit
                      - title: Text Input
                        type: object
                        properties:
                          type:
                            type: string
                            const: TEXT_INPUT
                          label:
                            description: Input label.
                            type: string
                            minLength: 1
                            maxLength: 32
                          description:
                            description: Input description.
                            type: string
                            maxLength: 256
                          minLength:
                            description: Minimum response length.
                            anyOf:
                              - type: integer
                                minimum: 1
                                maximum: 9007199254740991
                              - type: 'null'
                          maxLength:
                            description: Maximum allowed response length.
                            anyOf:
                              - type: integer
                                minimum: 1
                                maximum: 9007199254740991
                              - type: 'null'
                          regex:
                            description: Regex to validate the response with.
                            anyOf:
                              - type: string
                                minLength: 1
                                maxLength: 256
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - label
                          - description
                      - title: Token Tip
                        type: object
                        properties:
                          type:
                            type: string
                            const: TOKEN_TIP
                          chain:
                            description: Chain key.
                            anyOf:
                              - type: string
                                enum:
                                  - Abstract
                                  - ApeChain
                                  - Arbitrum
                                  - Atto
                                  - Avalanche
                                  - Base
                                  - Berachain
                                  - Blast
                                  - BSC
                                  - CosmosHub
                                  - Cronos
                                  - Ethereum
                                  - Harmony
                                  - HyperCore
                                  - HyperEvm
                                  - Initia
                                  - Injective
                                  - Intergaze
                                  - Linea
                                  - Mitosis
                                  - Nano
                                  - Nibiru
                                  - Optimism
                                  - Osmosis
                                  - Plasma
                                  - Polygon
                                  - SEDA
                                  - Sei
                                  - SeiEvm
                                  - Solana
                                  - Somnia
                                  - Sonic
                                  - Stargaze
                                  - Terra
                                  - Unichain
                                  - Yominet
                                  - Zaar
                                  - zkCronos
                              - type: 'null'
                          tokenAddress:
                            description: Token address.
                            anyOf:
                              - type: string
                                maxLength: 128
                              - type: 'null'
                          minAmount:
                            description: Minimum required tip amount.
                            type: number
                            minimum: 0
                          amountUnit:
                            description: Amount unit.
                            type: string
                            enum:
                              - absolute
                              - dollar
                          lookbackWindowDays:
                            description: Verification lookback window in days.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          excludedActions:
                            description: >-
                              Action types that should not count toward
                              verification.
                            anyOf:
                              - maxItems: 2
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - tip
                                    - airdrop
                                    - raffle
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - minAmount
                          - amountUnit
                      - title: Token Balance
                        type: object
                        properties:
                          type:
                            type: string
                            const: TOKEN_BALANCE
                          chain:
                            description: Chain key.
                            type: string
                            enum:
                              - Abstract
                              - ApeChain
                              - Arbitrum
                              - Atto
                              - Avalanche
                              - Base
                              - Berachain
                              - Blast
                              - BSC
                              - CosmosHub
                              - Cronos
                              - Ethereum
                              - Harmony
                              - HyperCore
                              - HyperEvm
                              - Initia
                              - Injective
                              - Intergaze
                              - Linea
                              - Mitosis
                              - Nano
                              - Nibiru
                              - Optimism
                              - Osmosis
                              - Plasma
                              - Polygon
                              - SEDA
                              - Sei
                              - SeiEvm
                              - Solana
                              - Somnia
                              - Sonic
                              - Stargaze
                              - Terra
                              - Unichain
                              - Yominet
                              - Zaar
                              - zkCronos
                          tokenAddress:
                            description: Token address.
                            anyOf:
                              - type: string
                                maxLength: 128
                              - type: 'null'
                          minAmount:
                            description: Minimum required amount (inclusive).
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          maxAmount:
                            description: Maximum allowed amount (exclusive).
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          amountUnit:
                            description: Amount unit.
                            type: string
                            enum:
                              - absolute
                              - dollar
                          includeFlipwallets:
                            description: >-
                              Whether to include Flipwallets during
                              verification.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          includeFlipwalletsExclusively:
                            description: Whether to include Flipwallets exclusively.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          includeStakingContracts:
                            description: >-
                              Whether to include staking contracts during
                              verification.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          includeStakingContractsExclusively:
                            description: Whether to include staking contracts exclusively.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - chain
                          - amountUnit
                      - title: X Account Age
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_ACCOUNT_AGE
                          minAccountAgeDays:
                            description: Minimum account age in days.
                            type: number
                            minimum: 1
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - minAccountAgeDays
                      - title: Follow X Account
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_ACCOUNT_FOLLOW
                          accountHandles:
                            description: Account handles to follow.
                            minItems: 1
                            maxItems: 8
                            type: array
                            items:
                              type: string
                              minLength: 2
                              maxLength: 16
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - accountHandles
                      - title: X Account Followers
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_ACCOUNT_FOLLOWERS
                          minFollowers:
                            description: Minimum required followers (inclusive).
                            anyOf:
                              - type: number
                                minimum: 1
                              - type: 'null'
                          maxFollowers:
                            description: Maximum allowed followers (exclusive).
                            anyOf:
                              - type: number
                                minimum: 1
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                      - title: Subscribe X Account
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_ACCOUNT_SUBSCRIBE
                          accountHandles:
                            description: Account handles to subscribe.
                            minItems: 1
                            maxItems: 8
                            type: array
                            items:
                              type: string
                              minLength: 2
                              maxLength: 16
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - accountHandles
                      - title: Verified X Account
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_ACCOUNT_VERIFIED
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                      - title: X Post Interaction
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_POST_INTERACTION
                          postUrl:
                            description: Link to a post on X.
                            type: string
                            minLength: 1
                            pattern: >-
                              ^https:\/\/(?:twitter|x).com\/(\w+)\/status\/(\d+)(?:\?[^/]*)?$
                          isLikeRequired:
                            description: Whether the post must be liked.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          isBookmarkRequired:
                            description: Whether the post must be bookmarked.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          isRepostRequired:
                            description: Whether the post must be reposted.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          isCommentRequired:
                            description: Whether the post must be commented.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          minLength:
                            description: Minimum required comment length.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          requiredExactText:
                            description: Required exact comment text.
                            anyOf:
                              - type: string
                                maxLength: 256
                              - type: 'null'
                          requiredPhrases:
                            description: Phrases that needs to be included in the comment.
                            anyOf:
                              - maxItems: 16
                                type: array
                                items:
                                  type: string
                              - type: 'null'
                          isImageRequired:
                            description: Whether an image is required in the comment.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - postUrl
                      - title: Create X Post
                        type: object
                        properties:
                          type:
                            type: string
                            const: TWITTER_POST_CREATE
                          requiredPhrases:
                            description: Phrases that needs to be included in the post.
                            anyOf:
                              - maxItems: 16
                                type: array
                                items:
                                  type: string
                              - type: 'null'
                          minLikes:
                            description: Minimum number of likes the post must get.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          minReposts:
                            description: Minimum number of reposts the post must get.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          minReplies:
                            description: Minimum number of replies the post must get.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          minImpressions:
                            description: Minimum number of impressions the post must get.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          minLength:
                            description: Minimum required post length.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          isImageRequired:
                            description: Whether an image is required for the post.
                            anyOf:
                              - type: boolean
                              - type: 'null'
                          lookbackWindowDays:
                            description: Verification lookback window in days.
                            anyOf:
                              - type: number
                                minimum: 0
                              - type: 'null'
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                      - title: Wallet Input
                        type: object
                        properties:
                          type:
                            type: string
                            const: WALLET_INPUT
                          label:
                            description: Input label.
                            type: string
                            minLength: 1
                            maxLength: 32
                          description:
                            description: Input description.
                            type: string
                            maxLength: 256
                          chains:
                            description: Chains to restrict the wallet input to.
                            minItems: 1
                            type: array
                            items:
                              type: string
                              enum:
                                - Abstract
                                - ApeChain
                                - Arbitrum
                                - Atto
                                - Avalanche
                                - Base
                                - Berachain
                                - Blast
                                - BSC
                                - CosmosHub
                                - Cronos
                                - Ethereum
                                - Harmony
                                - HyperCore
                                - HyperEvm
                                - Initia
                                - Injective
                                - Intergaze
                                - Linea
                                - Mitosis
                                - Nano
                                - Nibiru
                                - Optimism
                                - Osmosis
                                - Plasma
                                - Polygon
                                - SEDA
                                - Sei
                                - SeiEvm
                                - Solana
                                - Somnia
                                - Sonic
                                - Stargaze
                                - Terra
                                - Unichain
                                - Yominet
                                - Zaar
                                - zkCronos
                          isOptional:
                            $ref: '#/components/schemas/__schema1'
                          isReviewRequired:
                            $ref: '#/components/schemas/__schema2'
                          skipsReview:
                            $ref: '#/components/schemas/__schema3'
                          rewardBoost:
                            $ref: '#/components/schemas/__schema4'
                          rewardBoostMode:
                            $ref: '#/components/schemas/__schema5'
                        required:
                          - type
                          - label
                          - description
                          - chains
                    type: object
                rewards:
                  description: Rewards that can be obtained by completing the quest.
                  maxItems: 4
                  type: array
                  items:
                    oneOf:
                      - title: Fixed
                        type: object
                        properties:
                          type:
                            type: string
                            const: FIXED
                          strategy:
                            $ref: '#/components/schemas/__schema6'
                            description: Distribution strategy for the reward.
                          item:
                            description: Points, Token, NFT, or Discord role to grant.
                            anyOf:
                              - $ref: '#/components/schemas/__schema7'
                              - $ref: '#/components/schemas/__schema8'
                              - $ref: '#/components/schemas/__schema10'
                              - $ref: '#/components/schemas/__schema11'
                        required:
                          - type
                          - strategy
                          - item
                      - title: Random
                        type: object
                        properties:
                          type:
                            type: string
                            const: RANDOM
                          strategy:
                            $ref: '#/components/schemas/__schema6'
                            description: Distribution strategy for the reward.
                          rewardPoolId:
                            description: ID of a reward pool to draw the rewards from.
                            type: string
                            minLength: 1
                        required:
                          - type
                          - strategy
                          - rewardPoolId
                      - title: Shared
                        type: object
                        properties:
                          type:
                            type: string
                            const: SHARED
                          strategy:
                            $ref: '#/components/schemas/__schema6'
                            description: Distribution strategy for the reward
                          item:
                            description: Points or token pool to share between winners.
                            anyOf:
                              - $ref: '#/components/schemas/__schema7'
                              - $ref: '#/components/schemas/__schema8'
                        required:
                          - type
                          - strategy
                          - item
                    type: object
              required:
                - name
                - shortDescription
                - fullDescription
                - recurrence
                - visibility
                - tasks
                - rewards
      responses:
        '200':
          description: Quest has been created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/__schema14'
components:
  schemas:
    __schema1:
      description: Whether task completion is optional.
      anyOf:
        - type: boolean
        - type: 'null'
    __schema2:
      description: Whether a manual review is required for this task.
      anyOf:
        - type: boolean
        - type: 'null'
    __schema3:
      description: >-
        When enabled, quest submission will be automatically approved if this
        task is completed.
      anyOf:
        - type: boolean
        - type: 'null'
    __schema4:
      description: Reward boost percentage.
      anyOf:
        - type: integer
          minimum: 1
          maximum: 10000
        - type: 'null'
    __schema5:
      description: Reward boost mode.
      anyOf:
        - type: string
          enum:
            - MAX
            - CUMULATIVE
            - GLOBAL
        - type: 'null'
    __schema6:
      anyOf:
        - title: EVERYONE
          description: Each person completing a quest will be eligible for the reward.
          type: object
          properties:
            type:
              type: string
              const: EVERYONE
          required:
            - type
        - title: FCFS
          description: >-
            Only first N people completing the quest will be eligible for the
            reward.
          type: object
          properties:
            type:
              type: string
              const: FCFS
            maxClaims:
              description: Number of people to reward.
              type: integer
              minimum: 1
              maximum: 9007199254740991
          required:
            - type
            - maxClaims
        - title: RAFFLE
          description: >-
            Out of all people completing the quest, only N random will be
            rewarded.
          type: object
          properties:
            type:
              type: string
              const: RAFFLE
            maxWinners:
              description: Number of winners to pick.
              type: integer
              minimum: 1
              maximum: 9007199254740991
          required:
            - type
            - maxWinners
    __schema7:
      title: Points
      type: object
      properties:
        type:
          type: string
          const: POINTS
        pointSystemId:
          description: Point system ID.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        amount:
          description: Points amount.
          type: number
          exclusiveMinimum: 0
      required:
        - type
        - pointSystemId
        - amount
    __schema8:
      title: Token
      type: object
      properties:
        type:
          type: string
          const: TOKEN
        chain:
          $ref: '#/components/schemas/__schema9'
        tokenAddress:
          description: >-
            Address of a token supported by Flipsuite. Leave blank for
            native/gas tokens (e.g. ETH on Base).
          anyOf:
            - type: string
              maxLength: 256
            - type: 'null'
        amount:
          description: Token amount.
          type: number
          exclusiveMinimum: 0
        amountUnit:
          description: Amount unit.
          anyOf:
            - type: string
              enum:
                - absolute
                - dollar
            - type: 'null'
      required:
        - type
        - chain
        - amount
    __schema10:
      title: NFT
      type: object
      properties:
        type:
          type: string
          const: NFT
        chain:
          $ref: '#/components/schemas/__schema9'
        tokenAddress:
          description: Token address of the NFT. Leave blank on Solana.
          anyOf:
            - type: string
              maxLength: 256
            - type: 'null'
        tokenId:
          description: ID of the NFT.
          type: string
          maxLength: 256
        amount:
          description: NFT amount (applicable only to ERC-1155 NFTs).
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: 'null'
      required:
        - type
        - chain
        - tokenId
    __schema11:
      title: Discord Role
      type: object
      properties:
        type:
          type: string
          const: ROLE
        roleId:
          description: ID of a Discord role to grant.
          type: string
          pattern: ^\d+$
        duration:
          description: >-
            Time in milliseconds after the role should be revoked. Cannot be
            longer than 3 years. Leaving this option unset will cause the role
            to be granted permanently.
          anyOf:
            - type: integer
              exclusiveMinimum: 0
              maximum: 93312000000
            - type: 'null'
      required:
        - type
        - roleId
    __schema14:
      example:
        id: 097d191c-644c-433b-8d8a-a6a1bda7f9df
        communityId: 90895e48-0db7-4e99-b63a-b4401753da62
        name: Raffle Quest
        shortDescription: Quest intro
        fullDescription: Extra quest description and instructions
        createdAt: 1776683462270
        startTime: 1776683462270
        endTime: 1776942662270
        status: ACTIVE
        recurrence: ONCE
        recurrenceInterval: 259200000
        visibility: PUBLIC
        iteration: 1
        iterationCompletions:
          - 23
        totalCompletionCount: 23
        tasks:
          - id: 9f3b1b72-c824-4da3-b091-c602bdb2e54b
            type: TWITTER_POST_INTERACTION
            postUrl: https://x.com/flipsuitexyz/status/2021683679102206339
            isLikeRequired: true
            isRepostRequired: true
            isCommentRequired: true
        rewards:
          - id: 6476d69e-b628-4b12-bc5f-7ed48e09a741
            type: FIXED
            strategy:
              type: RAFFLE
              maxWinners: 5
            item:
              type: TOKEN
              chain: Base
              tokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913'
              amount: 1
      type: object
      properties:
        id:
          description: Unique quest ID.
          type: string
        creatorId:
          description: ID of the user who created this quest.
          anyOf:
            - type: string
            - type: 'null'
        status:
          description: Quest status.
          type: string
          enum:
            - DRAFT
            - TEMPLATE
            - ACTIVE
            - PAUSED
            - REVIEW
            - ENDED
            - ARCHIVED
        name:
          description: Quest name.
          type: string
          maxLength: 48
        shortDescription:
          description: Quest intro (plain text only).
          type: string
          maxLength: 256
        fullDescription:
          description: Quest instructions (supports markdown).
          type: string
          maxLength: 4096
        bannerUrl:
          description: Link to a banner image for the quest.
          anyOf:
            - type: string
              format: uri
            - type: 'null'
        createdAt:
          description: Quest creation UNIX timestamp.
          type: number
        startTime:
          description: Quest start time UNIX timestamp.
          anyOf:
            - type: number
            - type: 'null'
        endTime:
          description: Quest end time UNIX timestamp.
          anyOf:
            - type: number
            - type: 'null'
        recurrence:
          description: Quest recurrence type.
          type: string
          enum:
            - ONCE
            - DAILY
            - WEEKLY
            - MONTHLY
            - CUSTOM
        recurrenceInterval:
          description: >-
            Quest interval between rounds, or its duration for ONCE recurrence
            type.
          anyOf:
            - type: number
              minimum: 3600000
              maximum: 31536000000
            - type: 'null'
        visibility:
          description: Quest visibility type.
          type: string
          enum:
            - PRIVATE
            - PUBLIC
            - SHARED
        iteration:
          description: Current quest round.
          type: integer
          minimum: 1
          maximum: 9007199254740991
        nextIterationAt:
          description: Next quest round start time UNIX timestamp.
          anyOf:
            - type: number
            - type: 'null'
        iterationCompletions:
          description: Quest completions per iteration.
          type: array
          items:
            type: number
        maxIterations:
          description: Maximum number of quest rounds.
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: 'null'
        maxIterationCompletions:
          description: Maximum number of completions per quest round.
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: 'null'
        maxTotalCompletions:
          description: Maximum number of total quest completions.
          anyOf:
            - type: integer
              minimum: 1
              maximum: 9007199254740991
            - type: 'null'
        totalCompletionCount:
          description: Total quest completions count.
          type: number
        tasks:
          description: Quest tasks and requirements.
          maxItems: 32
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  type:
                    type: string
                    const: API
                  name:
                    description: Task name.
                    type: string
                    minLength: 1
                    maxLength: 48
                  description:
                    description: Task description.
                    type: string
                    minLength: 1
                    maxLength: 256
                  endpoint:
                    description: Endpoint to call when verifying the task.
                    type: string
                    format: uri
                  userIdMethods:
                    description: User identification methods.
                    minItems: 1
                    type: array
                    items:
                      type: string
                      enum:
                        - discord
                        - twitter
                        - wallets
                  walletChains:
                    description: Chains to get user wallets for.
                    anyOf:
                      - minItems: 1
                        type: array
                        items:
                          type: string
                          enum:
                            - Abstract
                            - ApeChain
                            - Arbitrum
                            - Atto
                            - Avalanche
                            - Base
                            - Berachain
                            - Blast
                            - BSC
                            - CosmosHub
                            - Cronos
                            - Ethereum
                            - Harmony
                            - HyperCore
                            - HyperEvm
                            - Initia
                            - Injective
                            - Intergaze
                            - Linea
                            - Mitosis
                            - Nano
                            - Nibiru
                            - Optimism
                            - Osmosis
                            - Plasma
                            - Polygon
                            - SEDA
                            - Sei
                            - SeiEvm
                            - Solana
                            - Somnia
                            - Sonic
                            - Stargaze
                            - Terra
                            - Unichain
                            - Yominet
                            - Zaar
                            - zkCronos
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - name
                  - description
                  - endpoint
                  - userIdMethods
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: DISCORD_ACCOUNT_AGE
                  minAccountAgeDays:
                    description: Minimum account age in days.
                    type: number
                    minimum: 1
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - minAccountAgeDays
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: DISCORD_SERVER_ROLES
                  serverId:
                    description: Server ID.
                    type: string
                    pattern: ^\d{16,}$
                  serverInviteLink:
                    description: Server invite link.
                    anyOf:
                      - type: string
                        pattern: https:\/\/discord\.gg\/\w+
                      - type: 'null'
                  roleIds:
                    description: IDs of Discord roles to check for.
                    minItems: 1
                    type: array
                    items:
                      type: string
                      pattern: ^\d{16,}$
                  operator:
                    description: Logical operator to use when checking roles.
                    type: string
                    enum:
                      - and
                      - or
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - serverId
                  - roleIds
                  - operator
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: DISCORD_USERS
                  userIds:
                    description: IDs of Discord users to check for.
                    minItems: 1
                    maxItems: 25
                    type: array
                    items:
                      type: string
                      pattern: ^\d{16,}$
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - userIds
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: FILE_UPLOAD
                  label:
                    description: Input label.
                    type: string
                    minLength: 1
                    maxLength: 32
                  description:
                    description: Input description.
                    type: string
                    maxLength: 256
                  fileTypes:
                    description: Allowed file types.
                    minItems: 1
                    type: array
                    items:
                      type: string
                      enum:
                        - IMAGE
                        - VIDEO
                        - AUDIO
                        - PDF
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - label
                  - description
                  - fileTypes
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: NFT_BALANCE
                  chain:
                    description: Chain key.
                    type: string
                    enum:
                      - Abstract
                      - ApeChain
                      - Arbitrum
                      - Atto
                      - Avalanche
                      - Base
                      - Berachain
                      - Blast
                      - BSC
                      - CosmosHub
                      - Cronos
                      - Ethereum
                      - Harmony
                      - HyperCore
                      - HyperEvm
                      - Initia
                      - Injective
                      - Intergaze
                      - Linea
                      - Mitosis
                      - Nano
                      - Nibiru
                      - Optimism
                      - Osmosis
                      - Plasma
                      - Polygon
                      - SEDA
                      - Sei
                      - SeiEvm
                      - Solana
                      - Somnia
                      - Sonic
                      - Stargaze
                      - Terra
                      - Unichain
                      - Yominet
                      - Zaar
                      - zkCronos
                  contractAddress:
                    description: NFT contract address (verified creator address on Solana).
                    type: string
                    maxLength: 128
                  collectionName:
                    description: NFT collection name.
                    type: string
                    minLength: 4
                    maxLength: 64
                  standard:
                    description: NFT collection standard.
                    type: string
                    enum:
                      - CW_721
                      - ERC-721
                      - ERC-1155
                      - METAPLEX
                      - METAPLEX_CNFT
                      - METAPLEX_CORE
                      - SG_BADGE
                      - UNKNOWN
                  minAmount:
                    description: Minimum required amount (inclusive).
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  maxAmount:
                    description: Maximum allowed amount (exclusive).
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  tokenIds:
                    description: Required NFT IDs.
                    anyOf:
                      - type: string
                        pattern: ^((\d+(-\d+)?)|(\w+))(,((\d+(-\d+)?)|(\w+)))*$
                      - type: 'null'
                  attributes:
                    description: Required NFT attributes.
                    anyOf:
                      - type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            value:
                              type: string
                          required:
                            - key
                            - value
                          additionalProperties: false
                      - type: 'null'
                  attributesOperator:
                    description: Attributes logical operator.
                    anyOf:
                      - type: string
                        enum:
                          - and
                          - or
                      - type: 'null'
                  includeFlipwallets:
                    description: Whether to include Flipwallets during verification.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  includeFlipwalletsExclusively:
                    description: Whether to include Flipwallets exclusively.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  includeStakingContracts:
                    description: Whether to include staking contracts during verification.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  includeStakingContractsExclusively:
                    description: Whether to include staking contracts exclusively.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - chain
                  - contractAddress
                  - collectionName
                  - standard
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: NUMBER_INPUT
                  label:
                    description: Input label.
                    type: string
                    minLength: 1
                    maxLength: 32
                  description:
                    description: Input description.
                    type: string
                    maxLength: 256
                  isInteger:
                    description: Whether input value must be an integer.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  prefix:
                    description: Number prefix.
                    anyOf:
                      - type: string
                        maxLength: 16
                      - type: 'null'
                  suffix:
                    description: Number suffix.
                    anyOf:
                      - type: string
                        maxLength: 16
                      - type: 'null'
                  minValue:
                    description: Minimum allowed value.
                    anyOf:
                      - type: number
                      - type: 'null'
                  maxValue:
                    description: Maximum allowed value.
                    anyOf:
                      - type: number
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - label
                  - description
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: POINTS_BALANCE
                  pointSystemId:
                    description: Point system ID.
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  minAmount:
                    description: Minimum required amount (inclusive).
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  maxAmount:
                    description: Maximum allowed amount (exclusive).
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - pointSystemId
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: POINTS_TIP
                  pointSystemId:
                    description: Point system ID.
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  minAmount:
                    description: Minimum required tip amount.
                    type: number
                    minimum: 0
                  lookbackWindowDays:
                    description: Verification lookback window in days.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - pointSystemId
                  - minAmount
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: POLL_INPUT
                  label:
                    description: Poll label.
                    type: string
                    minLength: 1
                    maxLength: 64
                  description:
                    description: Poll description.
                    anyOf:
                      - type: string
                        maxLength: 256
                      - type: 'null'
                  options:
                    description: Poll options.
                    minItems: 2
                    maxItems: 25
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                        label:
                          description: Option label.
                          type: string
                          minLength: 1
                          maxLength: 64
                        description:
                          description: Option description.
                          anyOf:
                            - type: string
                              maxLength: 256
                            - type: 'null'
                      required:
                        - id
                        - label
                      additionalProperties: false
                  minSelections:
                    description: Minimum allowed selections.
                    type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  maxSelections:
                    description: Maximum allowed selections.
                    type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - label
                  - options
                  - minSelections
                  - maxSelections
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TOKEN_SWAP
                  chain:
                    description: Chain key.
                    anyOf:
                      - type: string
                        enum:
                          - Abstract
                          - ApeChain
                          - Arbitrum
                          - Atto
                          - Avalanche
                          - Base
                          - Berachain
                          - Blast
                          - BSC
                          - CosmosHub
                          - Cronos
                          - Ethereum
                          - Harmony
                          - HyperCore
                          - HyperEvm
                          - Initia
                          - Injective
                          - Intergaze
                          - Linea
                          - Mitosis
                          - Nano
                          - Nibiru
                          - Optimism
                          - Osmosis
                          - Plasma
                          - Polygon
                          - SEDA
                          - Sei
                          - SeiEvm
                          - Solana
                          - Somnia
                          - Sonic
                          - Stargaze
                          - Terra
                          - Unichain
                          - Yominet
                          - Zaar
                          - zkCronos
                      - type: 'null'
                  tokenAddress:
                    description: Token address.
                    anyOf:
                      - type: string
                        maxLength: 128
                      - type: 'null'
                  minAmount:
                    description: Minimum required swap amount.
                    type: number
                    minimum: 0
                  amountUnit:
                    description: Amount unit.
                    type: string
                    enum:
                      - absolute
                      - dollar
                  allowedPlatforms:
                    description: Allowed swap platforms.
                    anyOf:
                      - maxItems: 10
                        type: array
                        items:
                          type: string
                          enum:
                            - COWSWAP
                            - FLIPSUITE
                            - GAS_ZIP
                            - HYPERLIQUID
                            - JUPITER
                            - LI_FI
                            - LIQUID_SWAP
                            - OBSIDIAN
                            - OKU_TRADE
                            - ORBITER
                            - RELAY
                            - ROCKETX
                            - SOLANA
                            - SOMNEX
                            - SKIP_GO
                            - SQUID
                            - STARGATE
                            - SUSHI_SWAP
                            - WOLFSWAP
                            - VVS
                      - type: 'null'
                  lookbackWindowDays:
                    description: Verification lookback window in days.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - minAmount
                  - amountUnit
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TEXT_INPUT
                  label:
                    description: Input label.
                    type: string
                    minLength: 1
                    maxLength: 32
                  description:
                    description: Input description.
                    type: string
                    maxLength: 256
                  minLength:
                    description: Minimum response length.
                    anyOf:
                      - type: integer
                        minimum: 1
                        maximum: 9007199254740991
                      - type: 'null'
                  maxLength:
                    description: Maximum allowed response length.
                    anyOf:
                      - type: integer
                        minimum: 1
                        maximum: 9007199254740991
                      - type: 'null'
                  regex:
                    description: Regex to validate the response with.
                    anyOf:
                      - type: string
                        minLength: 1
                        maxLength: 256
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - label
                  - description
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TOKEN_TIP
                  chain:
                    description: Chain key.
                    anyOf:
                      - type: string
                        enum:
                          - Abstract
                          - ApeChain
                          - Arbitrum
                          - Atto
                          - Avalanche
                          - Base
                          - Berachain
                          - Blast
                          - BSC
                          - CosmosHub
                          - Cronos
                          - Ethereum
                          - Harmony
                          - HyperCore
                          - HyperEvm
                          - Initia
                          - Injective
                          - Intergaze
                          - Linea
                          - Mitosis
                          - Nano
                          - Nibiru
                          - Optimism
                          - Osmosis
                          - Plasma
                          - Polygon
                          - SEDA
                          - Sei
                          - SeiEvm
                          - Solana
                          - Somnia
                          - Sonic
                          - Stargaze
                          - Terra
                          - Unichain
                          - Yominet
                          - Zaar
                          - zkCronos
                      - type: 'null'
                  tokenAddress:
                    description: Token address.
                    anyOf:
                      - type: string
                        maxLength: 128
                      - type: 'null'
                  minAmount:
                    description: Minimum required tip amount.
                    type: number
                    minimum: 0
                  amountUnit:
                    description: Amount unit.
                    type: string
                    enum:
                      - absolute
                      - dollar
                  lookbackWindowDays:
                    description: Verification lookback window in days.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  excludedActions:
                    description: Action types that should not count toward verification.
                    anyOf:
                      - maxItems: 2
                        type: array
                        items:
                          type: string
                          enum:
                            - tip
                            - airdrop
                            - raffle
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - minAmount
                  - amountUnit
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TOKEN_BALANCE
                  chain:
                    description: Chain key.
                    type: string
                    enum:
                      - Abstract
                      - ApeChain
                      - Arbitrum
                      - Atto
                      - Avalanche
                      - Base
                      - Berachain
                      - Blast
                      - BSC
                      - CosmosHub
                      - Cronos
                      - Ethereum
                      - Harmony
                      - HyperCore
                      - HyperEvm
                      - Initia
                      - Injective
                      - Intergaze
                      - Linea
                      - Mitosis
                      - Nano
                      - Nibiru
                      - Optimism
                      - Osmosis
                      - Plasma
                      - Polygon
                      - SEDA
                      - Sei
                      - SeiEvm
                      - Solana
                      - Somnia
                      - Sonic
                      - Stargaze
                      - Terra
                      - Unichain
                      - Yominet
                      - Zaar
                      - zkCronos
                  tokenAddress:
                    description: Token address.
                    anyOf:
                      - type: string
                        maxLength: 128
                      - type: 'null'
                  minAmount:
                    description: Minimum required amount (inclusive).
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  maxAmount:
                    description: Maximum allowed amount (exclusive).
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  amountUnit:
                    description: Amount unit.
                    type: string
                    enum:
                      - absolute
                      - dollar
                  includeFlipwallets:
                    description: Whether to include Flipwallets during verification.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  includeFlipwalletsExclusively:
                    description: Whether to include Flipwallets exclusively.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  includeStakingContracts:
                    description: Whether to include staking contracts during verification.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  includeStakingContractsExclusively:
                    description: Whether to include staking contracts exclusively.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - chain
                  - amountUnit
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_ACCOUNT_AGE
                  minAccountAgeDays:
                    description: Minimum account age in days.
                    type: number
                    minimum: 1
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - minAccountAgeDays
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_ACCOUNT_FOLLOW
                  accountHandles:
                    description: Account handles to follow.
                    minItems: 1
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      minLength: 2
                      maxLength: 16
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - accountHandles
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_ACCOUNT_FOLLOWERS
                  minFollowers:
                    description: Minimum required followers (inclusive).
                    anyOf:
                      - type: number
                        minimum: 1
                      - type: 'null'
                  maxFollowers:
                    description: Maximum allowed followers (exclusive).
                    anyOf:
                      - type: number
                        minimum: 1
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_ACCOUNT_SUBSCRIBE
                  accountHandles:
                    description: Account handles to subscribe.
                    minItems: 1
                    maxItems: 8
                    type: array
                    items:
                      type: string
                      minLength: 2
                      maxLength: 16
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - accountHandles
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_ACCOUNT_VERIFIED
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_POST_INTERACTION
                  postUrl:
                    description: Link to a post on X.
                    type: string
                    minLength: 1
                    pattern: >-
                      ^https:\/\/(?:twitter|x).com\/(\w+)\/status\/(\d+)(?:\?[^/]*)?$
                  isLikeRequired:
                    description: Whether the post must be liked.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  isBookmarkRequired:
                    description: Whether the post must be bookmarked.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  isRepostRequired:
                    description: Whether the post must be reposted.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  isCommentRequired:
                    description: Whether the post must be commented.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  minLength:
                    description: Minimum required comment length.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  requiredExactText:
                    description: Required exact comment text.
                    anyOf:
                      - type: string
                        maxLength: 256
                      - type: 'null'
                  requiredPhrases:
                    description: Phrases that needs to be included in the comment.
                    anyOf:
                      - maxItems: 16
                        type: array
                        items:
                          type: string
                      - type: 'null'
                  isImageRequired:
                    description: Whether an image is required in the comment.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - postUrl
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: TWITTER_POST_CREATE
                  requiredPhrases:
                    description: Phrases that needs to be included in the post.
                    anyOf:
                      - maxItems: 16
                        type: array
                        items:
                          type: string
                      - type: 'null'
                  minLikes:
                    description: Minimum number of likes the post must get.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  minReposts:
                    description: Minimum number of reposts the post must get.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  minReplies:
                    description: Minimum number of replies the post must get.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  minImpressions:
                    description: Minimum number of impressions the post must get.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  minLength:
                    description: Minimum required post length.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  isImageRequired:
                    description: Whether an image is required for the post.
                    anyOf:
                      - type: boolean
                      - type: 'null'
                  lookbackWindowDays:
                    description: Verification lookback window in days.
                    anyOf:
                      - type: number
                        minimum: 0
                      - type: 'null'
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - id
                additionalProperties: false
              - type: object
                properties:
                  type:
                    type: string
                    const: WALLET_INPUT
                  label:
                    description: Input label.
                    type: string
                    minLength: 1
                    maxLength: 32
                  description:
                    description: Input description.
                    type: string
                    maxLength: 256
                  chains:
                    description: Chains to restrict the wallet input to.
                    minItems: 1
                    type: array
                    items:
                      type: string
                      enum:
                        - Abstract
                        - ApeChain
                        - Arbitrum
                        - Atto
                        - Avalanche
                        - Base
                        - Berachain
                        - Blast
                        - BSC
                        - CosmosHub
                        - Cronos
                        - Ethereum
                        - Harmony
                        - HyperCore
                        - HyperEvm
                        - Initia
                        - Injective
                        - Intergaze
                        - Linea
                        - Mitosis
                        - Nano
                        - Nibiru
                        - Optimism
                        - Osmosis
                        - Plasma
                        - Polygon
                        - SEDA
                        - Sei
                        - SeiEvm
                        - Solana
                        - Somnia
                        - Sonic
                        - Stargaze
                        - Terra
                        - Unichain
                        - Yominet
                        - Zaar
                        - zkCronos
                  id:
                    $ref: '#/components/schemas/__schema15'
                  isOptional:
                    $ref: '#/components/schemas/__schema16'
                  isReviewRequired:
                    $ref: '#/components/schemas/__schema17'
                  skipsReview:
                    $ref: '#/components/schemas/__schema18'
                  rewardBoost:
                    $ref: '#/components/schemas/__schema19'
                  rewardBoostMode:
                    $ref: '#/components/schemas/__schema20'
                required:
                  - type
                  - label
                  - description
                  - chains
                  - id
                additionalProperties: false
            type: object
        communityId:
          description: ID of the community this quest belongs to
          type: string
        rewards:
          description: Rewards that can be obtained by completing the quest.
          maxItems: 4
          type: array
          items:
            oneOf:
              - title: Fixed
                type: object
                properties:
                  id:
                    description: Unique reward ID.
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    const: FIXED
                  strategy:
                    $ref: '#/components/schemas/__schema21'
                    description: Distribution strategy for the reward.
                  item:
                    description: Points, Token, NFT, or Discord role to grant.
                    anyOf:
                      - $ref: '#/components/schemas/__schema22'
                      - $ref: '#/components/schemas/__schema23'
                      - title: NFT
                        type: object
                        properties:
                          type:
                            type: string
                            const: NFT
                          chain:
                            $ref: '#/components/schemas/__schema12'
                          tokenAddress:
                            description: Token address of the NFT. Leave blank on Solana.
                            anyOf:
                              - type: string
                                maxLength: 256
                              - type: 'null'
                          tokenId:
                            description: ID of the NFT.
                            type: string
                            maxLength: 256
                          amount:
                            description: NFT amount (applicable only to ERC-1155 NFTs).
                            anyOf:
                              - type: integer
                                minimum: 1
                                maximum: 9007199254740991
                              - type: 'null'
                        required:
                          - type
                          - chain
                          - tokenId
                        additionalProperties: false
                      - title: Discord Role
                        type: object
                        properties:
                          type:
                            type: string
                            const: ROLE
                          roleId:
                            description: ID of a Discord role to grant.
                            type: string
                            pattern: ^\d+$
                          duration:
                            description: >-
                              Time in milliseconds after the role should be
                              revoked. Cannot be longer than 3 years. Leaving
                              this option unset will cause the role to be
                              granted permanently.
                            anyOf:
                              - type: integer
                                exclusiveMinimum: 0
                                maximum: 93312000000
                              - type: 'null'
                        required:
                          - type
                          - roleId
                        additionalProperties: false
                required:
                  - id
                  - type
                  - strategy
                  - item
                additionalProperties: false
              - title: Random
                type: object
                properties:
                  id:
                    description: Unique reward ID.
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    const: RANDOM
                  strategy:
                    $ref: '#/components/schemas/__schema21'
                    description: Distribution strategy for the reward.
                  rewardPoolId:
                    description: ID of a reward pool to draw the rewards from.
                    type: string
                    minLength: 1
                required:
                  - id
                  - type
                  - strategy
                  - rewardPoolId
                additionalProperties: false
              - title: Shared
                type: object
                properties:
                  id:
                    description: Unique reward ID.
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  type:
                    type: string
                    const: SHARED
                  strategy:
                    $ref: '#/components/schemas/__schema21'
                    description: Distribution strategy for the reward
                  item:
                    description: Points or token pool to share between winners.
                    anyOf:
                      - $ref: '#/components/schemas/__schema22'
                      - $ref: '#/components/schemas/__schema23'
                required:
                  - id
                  - type
                  - strategy
                  - item
                additionalProperties: false
            type: object
      required:
        - id
        - status
        - name
        - shortDescription
        - fullDescription
        - createdAt
        - recurrence
        - visibility
        - iteration
        - iterationCompletions
        - totalCompletionCount
        - tasks
        - communityId
        - rewards
      additionalProperties: false
    __schema9:
      description: Unique chain identifier in Flipsuite
      type: string
      enum:
        - Abstract
        - ApeChain
        - Arbitrum
        - Atto
        - Avalanche
        - Base
        - Berachain
        - Blast
        - BSC
        - CosmosHub
        - Cronos
        - Ethereum
        - Harmony
        - HyperCore
        - HyperEvm
        - Initia
        - Injective
        - Intergaze
        - Linea
        - Mitosis
        - Nano
        - Nibiru
        - Optimism
        - Osmosis
        - Plasma
        - Polygon
        - SEDA
        - Sei
        - SeiEvm
        - Solana
        - Somnia
        - Sonic
        - Stargaze
        - Terra
        - Unichain
        - Yominet
        - Zaar
        - zkCronos
    __schema15:
      description: Unique task ID.
      type: string
      format: uuid
      pattern: >-
        ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
    __schema16:
      description: Whether task completion is optional.
      anyOf:
        - type: boolean
        - type: 'null'
    __schema17:
      description: Whether a manual review is required for this task.
      anyOf:
        - type: boolean
        - type: 'null'
    __schema18:
      description: >-
        When enabled, quest submission will be automatically approved if this
        task is completed.
      anyOf:
        - type: boolean
        - type: 'null'
    __schema19:
      description: Reward boost percentage.
      anyOf:
        - type: integer
          minimum: 1
          maximum: 10000
        - type: 'null'
    __schema20:
      description: Reward boost mode.
      anyOf:
        - type: string
          enum:
            - MAX
            - CUMULATIVE
            - GLOBAL
        - type: 'null'
    __schema21:
      anyOf:
        - title: EVERYONE
          description: Each person completing a quest will be eligible for the reward.
          type: object
          properties:
            type:
              type: string
              const: EVERYONE
          required:
            - type
          additionalProperties: false
        - title: FCFS
          description: >-
            Only first N people completing the quest will be eligible for the
            reward.
          type: object
          properties:
            type:
              type: string
              const: FCFS
            maxClaims:
              description: Number of people to reward.
              type: integer
              minimum: 1
              maximum: 9007199254740991
          required:
            - type
            - maxClaims
          additionalProperties: false
        - title: RAFFLE
          description: >-
            Out of all people completing the quest, only N random will be
            rewarded.
          type: object
          properties:
            type:
              type: string
              const: RAFFLE
            maxWinners:
              description: Number of winners to pick.
              type: integer
              minimum: 1
              maximum: 9007199254740991
          required:
            - type
            - maxWinners
          additionalProperties: false
    __schema22:
      title: Points
      type: object
      properties:
        type:
          type: string
          const: POINTS
        pointSystemId:
          description: Point system ID.
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        amount:
          description: Points amount.
          type: number
          exclusiveMinimum: 0
      required:
        - type
        - pointSystemId
        - amount
      additionalProperties: false
    __schema23:
      title: Token
      type: object
      properties:
        type:
          type: string
          const: TOKEN
        chain:
          $ref: '#/components/schemas/__schema12'
        tokenAddress:
          description: >-
            Address of a token supported by Flipsuite. Leave blank for
            native/gas tokens (e.g. ETH on Base).
          anyOf:
            - type: string
              maxLength: 256
            - type: 'null'
        amount:
          description: Token amount.
          type: number
          exclusiveMinimum: 0
        amountUnit:
          description: Amount unit.
          anyOf:
            - type: string
              enum:
                - absolute
                - dollar
            - type: 'null'
      required:
        - type
        - chain
        - amount
      additionalProperties: false
    __schema12:
      description: Unique chain identifier in Flipsuite
      type: string
      enum:
        - Abstract
        - ApeChain
        - Arbitrum
        - Atto
        - Avalanche
        - Base
        - Berachain
        - Blast
        - BSC
        - CosmosHub
        - Cronos
        - Ethereum
        - Harmony
        - HyperCore
        - HyperEvm
        - Initia
        - Injective
        - Intergaze
        - Linea
        - Mitosis
        - Nano
        - Nibiru
        - Optimism
        - Osmosis
        - Plasma
        - Polygon
        - SEDA
        - Sei
        - SeiEvm
        - Solana
        - Somnia
        - Sonic
        - Stargaze
        - Terra
        - Unichain
        - Yominet
        - Zaar
        - zkCronos

````