Skip to main content

Welcome to DropKit GraphQL API

DropKit provides a comprehensive GraphQL API for creating and managing drops (NFTs, tokens, digital collectibles) with built-in gating, payments, and event tracking.

GraphQL Endpoint

https://api.dropkit.co/graphql

Authentication

All GraphQL operations require bearer token authentication via the Authorization header:
Authorization: Bearer <api_key>
Rate limits and project-specific keys are configurable per tenant or creator.

GraphQL Basics

Making Queries

Send POST requests to the GraphQL endpoint with your query in the request body:
curl -X POST https://api.dropkit.co/graphql \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query GetMyDrops { myDrops { id title status claimCount } }"
  }'

Response Format

All GraphQL responses follow a standard format:
{
  "data": {
    "myDrops": [
      {
        "id": "drop_abc123",
        "title": "My NFT Collection",
        "status": "ACTIVE",
        "claimCount": 42
      }
    ]
  }
}

Error Handling

GraphQL errors are returned in the errors array:
{
  "errors": [
    {
      "message": "Drop not found",
      "locations": [{ "line": 2, "column": 3 }],
      "path": ["drop"]
    }
  ],
  "data": {
    "drop": null
  }
}

Core Features

🔍 Powerful Queries

Fetch exactly the data you need with GraphQL’s query system:
query GetDropDetails {
  drop(id: "drop_abc123") {
    id
    title
    claimedAmount
    maxAmount
    claimRate
    token {
      name
      symbol
      totalSupply
    }
    claims {
      id
      amount
      user {
        username
      }
    }
  }
}

⚙️ Token Creation

Create and deploy fungible tokens with mutations:
mutation CreateToken {
  createToken(
    input: {
      name: "My Token"
      symbol: "MTK"
      supply: 1000000
      description: "My custom token"
    }
  ) {
    id
    name
    symbol
    status
    address
  }
}

🎨 Drop Management

Create and manage all types of drops:
mutation CreateDrop {
  createDrop(
    input: {
      title: "My NFT Drop"
      type: TOKEN
      maxAmount: "100000"
      tokenAmount: "100"
      existingTokenId: "token_xyz789"
    }
  ) {
    id
    title
    status
    shortcode
  }
}

🛡️ Gating & Eligibility

Check eligibility and configure gating rules:
query CheckEligibility {
  checkGatingEligibility(
    input: { dropId: "drop_abc123", walletAddress: "0x123..." }
  ) {
    eligible
    reason
    missingRequirements
  }
}

💳 Payment Processing

Handle payments with intent-based flows:
mutation CreatePaymentIntent {
  createPaymentIntent(
    input: {
      dropId: "drop_abc123"
      walletAddress: "0x123..."
      paymentMethod: "sui"
      quantity: 2
    }
  ) {
    id
    intentId
    status
    amount
    paymentUrl
  }
}

📊 Real-time Data

Get live blockchain data with computed fields:
query LiveDropStats {
  drop(id: "drop_abc123") {
    claimedAmount # Live blockchain data
    maxAmount # Live blockchain data
    remainingBalance # Computed field
    tokenBalance # Live token balance
    claimRate # Computed percentage
    isActive # Live status
  }
}

Schema Explorer

Visit our Schema Explorer to browse the complete GraphQL schema interactively, including all available types, queries, and mutations.

Getting Started

  1. Get your API key from app.dropkit.co
  2. Explore the schema using our interactive schema explorer
  3. Try queries in your favorite GraphQL client or with curl
  4. Build your integration using the comprehensive type system
Ready to start? Check out our Quick Start Guide for step-by-step examples.