Tokens API

When do this coin's locked tokens unlock, and whose are they?

A coin's unlock schedule: supply by allocation (team, investors, airdrop…), unlocked vs locked, the next unlock and every unlock event past and scheduled. Keyed by coin ticker.

GET/api/external/token-analysis/token-vesting/{symbol}

What it returns

A coin's supply split into its allocations (team, investors, airdrop, treasury…) with how much of each is unlocked and still locked, the next unlock, and every unlock event past and scheduled, oldest first, each with the tokens it releases and from which allocations. Some allocations are not followed (tracked: false): they appear with their size only, and never in unlocks, so unlocked + locked is the followed supply, not the total. Amounts are in tokens; percents are of total supply. symbol is the coin ticker, matched case-insensitively — not a token mint or contract address, and not scoped to any of this API's chains. An unknown ticker, or a coin with no schedule, answers 404.

Chains

This endpoint is not tied to a chain: it takes no chain in its request.

Request

Send your key in the x-dex-data-key header. Replace each <placeholder> with a real value.

curl -H "x-dex-data-key: $DEXDATA_API_KEY" \
  "https://api.dexdata.io/api/external/token-analysis/token-vesting/<symbol>"
Parameters
ParameterDescription
symbol

path · string · required

The coin ticker, e.g. "ARB" or "OP" — not a pair such as "ARBUSDT", and not a token mint or contract address. Case-insensitive.

Response fields

A JSON response. Every field is always present; null means the value could not be established, never zero.

Response fields of When do this coin's locked tokens unlock, and whose are they?
FieldTypeDescription
symbolstringThe ticker as the coin is listed, e.g. "ARB" for "arb".
namestring | nullThe coin name.
maxSupplynumber | nullMaximum supply, tokens.
totalSupplynumber | nullTotal supply, tokens.
circulatingSupplynumber | nullCirculating supply, tokens.
unlockednumber | nullTokens of the followed allocations unlocked so far.
lockednumber | nullTokens of the followed allocations still locked.
untrackednumber | nullTokens in allocations whose unlocks are not followed.
untrackedPercentnumber | nulluntracked as a percent of total supply.
listedAtnumber | nullWhen the coin was first listed. Unix seconds, 00:00 UTC.
vestingStartnumber | nullWhen the first allocation starts vesting. Unix seconds, 00:00 UTC.
vestingEndnumber | nullWhen the last allocation is fully vested. Unix seconds, 00:00 UTC.
nextUnlockobject | nullThe next scheduled unlock across all allocations; null when none is scheduled.
nextUnlock.datenumberUnix seconds, 00:00 UTC.
nextUnlock.amountnumber | nullTokens unlocked on that date.
allocationsobject[] | nullThe supply by allocation.
allocations[].namestringThe slice, e.g. "Team & Advisors", "Investors", "Airdrop".
allocations[].percentOfSupplynumber | nullThe slice as a percent of total supply: 26.94 means 26.94 %.
allocations[].amountnumber | nullThe slice size, tokens.
allocations[].trackedboolean | nullFalse when the unlocks of this slice are not followed; every field below is then null.
allocations[].unlockTypestring | null"linear" (a steady release) or "nonlinear" (lump unlocks).
allocations[].unlockednumber | nullTokens of the slice unlocked so far.
allocations[].lockednumber | nullTokens of the slice still locked.
allocations[].tgeUnlockednumber | nullTokens of the slice unlocked at the token generation event.
allocations[].tgeUnlockPercentnumber | nullPercent of the slice unlocked at the token generation event.
allocations[].vestingStartnumber | nullWhen the slice starts vesting. Unix seconds, 00:00 UTC.
allocations[].vestingEndnumber | nullWhen the slice is fully vested. Unix seconds, 00:00 UTC.
allocations[].nextUnlockobject | nullThe slice's next scheduled unlock; null when none is scheduled.
allocations[].nextUnlock.datenumberUnix seconds, 00:00 UTC.
allocations[].nextUnlock.amountnumber | nullTokens unlocked on that date.
allocations[].vestingDurationobject | nullHow long the slice vests.
allocations[].vestingDuration.valuenumber | nullHow many units.
allocations[].vestingDuration.unitstring | nullThe unit, e.g. "year", "month", "day".
allocations[].unlockFrequencyobject | nullHow often the slice unlocks.
allocations[].unlockFrequency.valuenumber | nullHow many units.
allocations[].unlockFrequency.unitstring | nullThe unit, e.g. "year", "month", "day".
unlocksobject[] | nullEvery unlock event, past and scheduled, oldest first.
unlocks[].datenumberUnix seconds, 00:00 UTC.
unlocks[].isTgeboolean | nullWhether this is the token generation event.
unlocks[].amountnumber | nullTokens unlocked AT this event — not a running total.
unlocks[].percentOfSupplynumber | nullThose tokens as a percent of total supply.
unlocks[].allocationsobject[]The slices this event unlocks from.
unlocks[].allocations[].namestring
unlocks[].allocations[].amountnumber | nullTokens unlocked from this slice at this event.
unlocks[].allocations[].percentOfSupplynumber | nullThose tokens as a percent of total supply.

Start building with DexData today

Sign in, create a key and make your first call in a minute. Free credits every month, and you only pay for calls that succeed.

Get a free API key