Documentation Index
Fetch the complete documentation index at: https://docs.dropkit.co/llms.txt
Use this file to discover all available pages before exploring further.
Create Your First Drop
Learn how to use DropKit’s GraphQL API to launch drops, process payments, and manage the entire customer experience.
Authentication Setup
To start using DropKit’s GraphQL API, you’ll need an API key:
- Sign up at app.dropkit.co
- Navigate to your dashboard
- Go to Settings > API Keys
- Generate a new API key and keep it secure
All GraphQL requests require authentication using Bearer tokens in the header:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "query { me { id username } }"}'
Create Your First Token
Before creating drops, you’ll need to create a token:
Create a fungible token that will be used in your drops:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation CreateToken($input: CreateTokenInput!) { createToken(input: $input) { id name symbol status address } }",
"variables": {
"input": {
"name": "My Creator Token",
"symbol": "MCT",
"supply": 1000000,
"description": "A token for my community"
}
}
}'
Response:{
"data": {
"createToken": {
"id": "token_abc123",
"name": "My Creator Token",
"symbol": "MCT",
"status": "PENDING",
"address": null
}
}
}
Launch Your First Drop
Create a token drop using your newly created token:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation CreateDrop($input: CreateDropInput!) { createDrop(input: $input) { id title shortcode status type claimType maxAmount tokenAmount token { name symbol } } }",
"variables": {
"input": {
"title": "Community Token Drop",
"description": "A drop for early supporters",
"type": "TOKEN",
"claimType": "REGULAR",
"maxAmount": "100000",
"tokenAmount": "100",
"existingTokenId": "token_abc123",
"estimatedValueUsd": 10.0
}
}
}'
Response:{
"data": {
"createDrop": {
"id": "drop_xyz789",
"title": "Community Token Drop",
"shortcode": "community-token-drop",
"status": "ACTIVE",
"type": "TOKEN",
"claimType": "REGULAR",
"maxAmount": "100000",
"tokenAmount": "100",
"token": {
"name": "My Creator Token",
"symbol": "MCT"
}
}
}
}
Create an NFT drop:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation CreateDrop($input: CreateDropInput!) { createDrop(input: $input) { id title shortcode type price supply } }",
"variables": {
"input": {
"title": "Genesis NFT Collection",
"description": "Limited edition NFT collection",
"type": "NFT",
"claimType": "REGULAR",
"maxAmount": "1000",
"tokenAmount": "1",
"existingTokenId": "token_nft123",
"price": 5.0,
"supply": 1000,
"imageUrl": "https://example.com/nft-collection.png"
}
}
}'
View Your Drops
Get all your drops: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 type claimedAmount maxAmount claimRate claimCount createdAt token { name symbol } } }"
}'
Response:{
"data": {
"myDrops": [
{
"id": "drop_xyz789",
"title": "Community Token Drop",
"status": "ACTIVE",
"type": "TOKEN",
"claimedAmount": "2500",
"maxAmount": "100000",
"claimRate": 2.5,
"claimCount": 25,
"createdAt": "2024-01-15T10:30:00Z",
"token": {
"name": "My Creator Token",
"symbol": "MCT"
}
}
]
}
}
Get detailed statistics for a specific drop:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query GetDropStats($id: ID!) { dropDashboardStats(id: $id) { totalClaims recentClaims claimRate totalAmount claimedAmount recentActivity { id type description timestamp } } }",
"variables": {
"id": "drop_xyz789"
}
}'
Process Payments
Handle purchases with multiple payment methods including crypto.
Process a purchase with payment intents:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation CreatePaymentIntent($input: CreatePaymentIntentInput!) { createPaymentIntent(input: $input) { id intentId status amount paymentUrl expiresAt } }",
"variables": {
"input": {
"dropId": "drop_xyz789",
"walletAddress": "0x123...",
"paymentMethod": "sui",
"quantity": 2
}
}
}'
Response:{
"data": {
"createPaymentIntent": {
"id": "pi_abc123",
"intentId": "pi_xyz789",
"status": "PENDING",
"amount": 10.0,
"paymentUrl": "https://pay.moral.capital/intents/pi_xyz789",
"expiresAt": "2024-01-15T11:30:00Z"
}
}
}
Confirm a payment after completion:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation ConfirmPayment($id: ID!, $txHash: String) { confirmPaymentIntent(id: $id, txHash: $txHash) { id status amount } }",
"variables": {
"id": "pi_abc123",
"txHash": "0x123abc..."
}
}'
Claiming Drops
Enable users to claim tokens or NFTs from your drops.
Process a token claim:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation ClaimTokens($input: ClaimDropInput!) { claimDrop(input: $input) { claim { id amount claimedAt user { username } } claimParams { amount nonce expiry signature } dropInfo { dropObjectId packageId coinType } } }",
"variables": {
"input": {
"dropId": "drop_xyz789",
"amount": "100",
"userAddress": "0x123..."
}
}
}'
For drops with random amounts:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation ClaimRandom($input: ClaimRandomDropInput!) { claimRandomDrop(input: $input) { success message claimedAmount claim { id amount } } }",
"variables": {
"input": {
"dropId": "drop_xyz789",
"userAddress": "0x123..."
}
}
}'
Access Control & Gating
Create eligibility requirements for your drops.
Verify if a wallet meets requirements:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query CheckEligibility($input: GatingCheckInput!) { checkGatingEligibility(input: $input) { eligible reason missingRequirements } }",
"variables": {
"input": {
"dropId": "drop_xyz789",
"walletAddress": "0x123..."
}
}
}'
Response:{
"data": {
"checkGatingEligibility": {
"eligible": true,
"reason": "All requirements met",
"missingRequirements": []
}
}
}
Get available gating templates:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query GetGatingTemplates { gatingTemplates { id name description category rules { key operator value description } } }"
}'
Track Activity
Monitor events and analytics across your drops.
Register webhooks for real-time notifications:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation RegisterWebhook($input: RegisterWebhookInput!) { registerWebhook(input: $input) { id webhookId url events secret isActive } }",
"variables": {
"input": {
"url": "https://your-app.com/webhooks/dropkit",
"events": ["drop.claimed", "payment.confirmed", "drop.completed"]
}
}
}'
Advanced Features
User Management
Get your user profile:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "query GetMyProfile { me { id username displayName bio avatar email createdAt } }"
}'
Update your profile information:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation UpdateProfile($input: UpdateProfileInput!) { updateProfile(input: $input) { id username displayName bio avatar } }",
"variables": {
"input": {
"displayName": "Creator Name",
"bio": "Building the future of digital collectibles",
"avatar": "https://example.com/avatar.png"
}
}
}'
File Management
Upload images and other files:curl -X POST https://api.dropkit.co/graphql \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation UploadFile($input: UploadFileInput!) { uploadFile(input: $input) { url filename size contentType } }",
"variables": {
"input": {
"file": "base64_encoded_file_content",
"filename": "drop-image.png",
"contentType": "image/png"
}
}
}'
Next Steps
Now that you’ve created your first drop, explore:
GraphQL Benefits
Powerful Queries
- Fetch exactly the data you need
- Get related data in a single request
- Real-time computed fields
Type Safety
- Strongly typed schema
- Built-in validation
- Auto-completion support
Flexibility
- Multiple operations in one request
- Aliases for complex queries
- Fragments for reusable selections
- Efficient data fetching
- Reduced over-fetching
- Optimized for mobile apps