Skip to Content
API ReferenceDistribution Status

Distribution Status

Check whether a uniqueHash has been distributed on-chain. This is the reconciliation endpoint: use it whenever you are unsure if a distribution happened — after a TRANSACTION_STATUS_UNKNOWN error, a network timeout, or a response that never arrived — before retrying or adjusting balances.

Endpoint

GET /api/airdrop/status?uniqueHash=<hash>

Authentication

Required header:

  • Authorization: Bearer YOUR_BEARER_TOKEN

The bearer token also selects the network (testnet or mainnet) to query. No request signature is required — this endpoint is read-only.

Query Parameters

ParameterTypeRequiredDescription
uniqueHashstringYesThe SHA256 hash (64 hex characters) used in the original airdrop request

Response

Success (200 OK)

{ "success": true, "uniqueHash": "a1b2c3d4...", "processed": true, "network": "mainnet", "timestamp": "2025-11-18T12:00:00Z" }
FieldTypeDescription
processedbooleantrue if this hash has been recorded on-chain — the distribution happened and the funds moved
networkstringNetwork queried (derived from your bearer token)

The answer comes from the smart contract’s is_processed view — the on-chain source of truth. Every completed distribution permanently records its hash.

Reconciliation flow: processed: true → the distribution landed; mark it complete. processed: false → wait for any in-flight transaction to expire (~60 seconds after your original request), re-check, and if still false it is safe to resend the same airdrop request with the same uniqueHash. Never mint a new uniqueHash for a retry of the same payment.

Errors

  • 400 INVALID_HASH - Missing or malformed uniqueHash
  • 401 - Missing or invalid bearer token
  • 500 NETWORK_ERROR - The on-chain view could not be queried; retry

Code Example

async function isDistributed(apiKey: string, uniqueHash: string): Promise<boolean> { const response = await fetch( `https://YOUR_API_DOMAIN/api/airdrop/status?uniqueHash=${uniqueHash}`, { headers: { Authorization: `Bearer ${apiKey}` } } ); const data = await response.json(); if (!data.success) throw new Error(data.error.message); return data.processed; }
Last updated on