Skip to main content

Drop Type

The Drop type represents a drop (NFT or token distribution) in the DropKit system.

Type Definition

Field Details

Core Identifiers

id: ID!

Unique identifier for the drop.
  • Type: Non-null ID
  • Example: "drop_abc123"

title: String

Display name for the drop.
  • Type: Optional string
  • Example: "Community Token Drop"

description: String

Optional description of the drop.
  • Type: Optional string
  • Example: "A drop for early supporters of our community"

shortcode: String

Unique shortcode used in claim URLs.
  • Type: Optional string (auto-generated if not provided)
  • Example: "community-drop"
  • URL: https://app.dropkit.co/claim/community-drop

Drop Configuration

type: DropType!

The type of drop being created.
  • Type: Non-null enum
  • Values: TOKEN | NFT
  • Example: TOKEN

claimType: ClaimType!

The claiming mechanism for this drop.
  • Type: Non-null enum
  • Values: REGULAR | STREAK | REFERRAL | OG | ELITE | NFT_DROP | TOKEN_DROP
  • Example: REGULAR

status: DropStatus!

Current status of the drop.
  • Type: Non-null enum
  • Values: DRAFT | ACTIVE | PAUSED | COMPLETED | DELETED
  • Example: ACTIVE

Amount Configuration

maxAmount: String!

Maximum total amount that can be claimed from this drop.
  • Type: Non-null string (to handle large numbers)
  • Format: Base units (e.g., for 9 decimal token, “1000000000” = 1 token)
  • Example: "100000000000000" (100,000 tokens with 9 decimals)

claimedAmount: String!

Currently claimed amount (live blockchain data).
  • Type: Non-null string
  • Source: Real-time blockchain queries
  • Example: "25000000000000" (25,000 tokens claimed)

tokenAmount: String

Amount per individual claim.
  • Type: Optional string
  • Special Values: "0" indicates random amounts
  • Example: "100000000000" (100 tokens per claim)

remainingBalance: String

Computed field showing remaining claimable amount.
  • Type: String (computed field)
  • Calculation: maxAmount - claimedAmount
  • Example: "75000000000000"

tokenBalance: String

Actual token balance remaining in the drop contract.
  • Type: String (live blockchain data)
  • Source: Direct contract balance query
  • Example: "75000000000000"

Pricing and Supply

price: Float

Price per item for paid drops.
  • Type: Optional float
  • Unit: Usually in USD or crypto equivalent
  • Example: 5.0

supply: Int

Total supply of items.
  • Type: Optional integer
  • Use Case: Primarily for NFT drops
  • Example: 1000

estimatedValueUsd: Float

Estimated USD value of the drop.
  • Type: Optional float
  • Example: 10.0

Status and Activity

isActive: Boolean!

Live blockchain status of the drop.
  • Type: Non-null boolean
  • Source: Real-time blockchain query
  • Example: true

claimDeadline: DateTime

Optional deadline for claims.
  • Type: Optional DateTime
  • Format: ISO 8601
  • Example: "2024-12-31T23:59:59Z"

Statistics (Computed)

claimCount: Int

Number of individual claims made.
  • Type: Integer (computed)
  • Source: Database count of claims
  • Example: 250

claimRate: Float

Percentage of the drop that has been claimed.
  • Type: Float (computed)
  • Calculation: (claimedAmount / maxAmount) * 100
  • Example: 25.0 (25% claimed)

Blockchain Deployment

dropObjectId: String

On-chain drop object identifier.
  • Type: Optional string
  • Format: Sui object ID
  • Example: "0x123abc..."

adminCapId: String

Admin capability object ID.
  • Type: Optional string
  • Example: "0x456def..."

deploymentTxHash: String

Transaction hash of the drop deployment.
  • Type: Optional string
  • Example: "0x789ghi..."

contractPackageId: String

Smart contract package ID.
  • Type: Optional string
  • Example: "0xabcjkl..."

coinType: String

Token type identifier for blockchain.
  • Type: Optional string
  • Format: package::module::Type
  • Example: "0xabc123::token::COMM"

Relationships

creator: User!

The user who created this drop.
  • Type: Non-null User
  • Fields: Can query all user fields
  • Example:

token: Token

The token associated with this drop.
  • Type: Optional Token
  • Resolved: By tokenAddress field
  • Example:

claims: [Claim!]!

All claims made on this drop.
  • Type: Non-null array of Claims
  • Supports: Pagination via arguments
  • Example:

gatingConfig: GatingConfig

Access control configuration for this drop.
  • Type: Optional GatingConfig
  • Purpose: Defines eligibility requirements
  • Example:

Enums

DropType

DropStatus

ClaimType

Common Queries

Basic Drop Information

Drop Statistics

Drop with Relations

Live Blockchain Data

Best Practices

1. Request Only Needed Fields

2. Use Fragments for Reusability

3. Handle Null Values

Real-time Features

The Drop type includes several fields that provide real-time blockchain data:
  • claimedAmount: Live amount claimed from blockchain
  • isActive: Live drop status from blockchain
  • remainingBalance: Computed from live data
  • tokenBalance: Live token balance in contract
  • claimRate: Computed from live claimed amount
These fields are resolved using cached blockchain queries to provide accurate, up-to-date information while maintaining performance.