Token Unlocks & Vesting Calendar (Crypto) avatar

Token Unlocks & Vesting Calendar (Crypto)

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Token Unlocks & Vesting Calendar (Crypto)

Token Unlocks & Vesting Calendar (Crypto)

Calendar of upcoming crypto token unlocks from DefiLlama emissions โ€” ~326 projects. Filter by days ahead, % of max supply, recipient (insiders/investors) and cliff/linear; sort by date or size. Flat CSV/Excel, no API key, no proxy.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Berkan Kaplan

Berkan Kaplan

Maintained by Community

Actor stats

0

Bookmarked

8

Total users

2

Monthly active users

a day ago

Last modified

Categories

Share

Token Unlocks & Vesting Calendar

Crypto Token Unlocks & Vesting Calendar (DefiLlama)

Which tokens unlock next โ€” and how big is the dump? Export a clean, schedulable calendar of upcoming crypto token unlocks across every project DefiLlama tracks (300+), ranked by date or by size, as flat JSON / CSV / Excel rows.

Token unlocks are one of the most-watched signals in crypto: when a large slice of supply vests to insiders or investors, it often means sell pressure. This Actor turns DefiLlama's free, no-key emissions data into a filterable feed so you can see what's unlocking this week / month, how much (as % of max supply), to whom (insiders / investors / community), and how (cliff vs linear).

  • ๐Ÿ“… Forward calendar โ€” every upcoming unlock event, soonest-first, with the exact ISO date and a daysUntil countdown
  • ๐Ÿ“Š The signal traders watch โ€” each event as a % of max supply, so you can spot the big dilution / sell-pressure moments
  • ๐ŸŽฏ Filter to what matters โ€” time window, minimum % of supply, recipient category, cliff vs linear, or a project watchlist
  • โšก Free source, zero external cost โ€” built on DefiLlama's public emissions data; no API key, no proxy โ€” a full scan runs in seconds

Deterministic and built for recurring feeds โ€” schedule it for a live "what unlocks this week" dataset piped into a sheet, bot or alert.

Quick start (API)

Get the 100 biggest unlocks in the next 30 days, largest first, in one call:

curl -X POST "https://api.apify.com/v2/acts/foxlabs~token-unlocks-calendar/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "daysAhead": 30, "minPctOfSupply": 0.5, "sortBy": "pctOfSupply", "maxResults": 100 }'

Prefer no code? Open the Input tab, set your filters, and click Start โ€” then download the results as JSON, CSV or Excel.

What you get

One flat row per upcoming unlock event:

FieldTypeDescription
ranknumberPosition in the returned, sorted calendar (1 = first)
projectstringProject name (e.g. Celestia)
slugstringDefiLlama project slug (e.g. celestia) โ€” reuse it in the projects filter
tokenstringDefiLlama token identifier, often a CoinGecko id (e.g. coingecko:celestia); may be empty
chainstringChain label from DefiLlama; empty when not mapped to a single chain
unlockDateIsostringUnlock timestamp, ISO 8601 (UTC)
daysUntilnumberWhole days from run time until the unlock
unlockTypestringcliff (one sudden release) or linear (gradual); may be empty
categorystringRecipient bucket from DefiLlama (e.g. insiders, farming, ecosystem, publicSale); may be empty
tokensUnlockednumberNumber of tokens released in this event
pctOfMaxSupplynumber | nullTokens as a percentage of max supply; null when DefiLlama has no max supply
descriptionstringHuman-readable DefiLlama note (e.g. "On 2026-07-05 531,250 of Team & Advisors tokens will be unlocked")
sourcestringAlways DefiLlama
generatedAtIsostringWhen the row was produced, ISO 8601 (UTC)

Sample output

{
"rank": 2,
"project": "Stader",
"slug": "stader",
"token": "coingecko:stader",
"chain": "",
"unlockDateIso": "2026-07-05T12:45:21.000Z",
"daysUntil": 0,
"unlockType": "cliff",
"category": "insiders",
"tokensUnlocked": 531250,
"pctOfMaxSupply": 0.443,
"description": "On 2026-07-05 531,250 of Team & Advisors tokens will be unlocked",
"source": "DefiLlama",
"generatedAtIso": "2026-07-05T09:00:00.000Z"
}

Illustrative โ€” a real DefiLlama record pulled during testing. rank, unlockDateIso and daysUntil shift on every run as the calendar rolls forward. chain is "" here because DefiLlama doesn't map this token to a single chain โ€” that's the register, not a miss.

Input & filters

  • Days ahead (daysAhead) โ€” include unlocks within this many days from now. 7 = this week, 30 = this month, 90 = this quarter. Range 1โ€“3650, default 90.
  • Min % of max supply (minPctOfSupply) โ€” keep only unlocks worth at least this % of max supply (the metric that signals real sell pressure). 0 = no filter.
  • Recipient category (category) โ€” keep one DefiLlama recipient bucket, e.g. insiders, farming, publicSale, privateSale, ecosystem, noncirculating. Empty = all.
  • Unlock type (unlockType) โ€” cliff (one big release), linear (gradual), or both.
  • Projects (projects) โ€” a watchlist of DefiLlama slugs (e.g. aptos, arbitrum, celestia). Empty = scan every tracked project.
  • Sort by (sortBy) โ€” date (soonest first, calendar order) or pctOfSupply (biggest unlock first).
  • Max results (maxResults) โ€” cap the number of rows, up to 100000.

Example inputs (copy & paste)

// 1) Big unlocks this month, biggest first
{ "daysAhead": 30, "minPctOfSupply": 0.5, "sortBy": "pctOfSupply", "maxResults": 500 }
// 2) Insider cliff unlocks this quarter (sudden insider releases)
{ "daysAhead": 90, "category": "insiders", "unlockType": "cliff", "sortBy": "pctOfSupply" }
// 3) Watchlist calendar for specific tokens, next 12 months
{ "projects": ["aptos", "arbitrum", "celestia"], "daysAhead": 365, "sortBy": "date" }
// 4) This week's unlocks, soonest first (newsletter feed)
{ "daysAhead": 7, "sortBy": "date", "maxResults": 500 }
// 5) Gradual (linear) emissions unlocking this quarter
{ "daysAhead": 90, "unlockType": "linear", "sortBy": "date" }
// 6) Private-sale unlocks over the next six months, biggest first
{ "daysAhead": 180, "category": "privateSale", "sortBy": "pctOfSupply" }
// 7) Market-wide major dilution next year (>= 1% of supply)
{ "daysAhead": 365, "minPctOfSupply": 1, "sortBy": "pctOfSupply", "maxResults": 1000 }
// 8) Public-sale unlocks this month, soonest first
{ "daysAhead": 30, "category": "publicSale", "sortBy": "date" }

Use cases

  • Trade & risk timing. Anticipate sell pressure: filter daysAhead: 30 + minPctOfSupply: 0.5 + sortBy: pctOfSupply to see the biggest upcoming dilution events and de-risk or hedge before the cliff.
  • Research & newsletters. Publishing a "token unlocks this week" segment? Schedule the Actor weekly with daysAhead: 7 for a ready-made, date-ordered list of what's unlocking, to whom, and how much.
  • Portfolio & watchlist alerts. Pass your holdings as projects, schedule daily, and wire a webhook into Slack / Telegram / a Sheet so you're pinged before your bags unlock.
  • Market-data dashboards. Feed a live "upcoming unlocks" table into a BI dashboard or Google Sheet โ€” flat rows with date, % of supply, tokens and recipient, no parsing required.
  • Screening & dilution ranking. Sort every tracked project by pctOfSupply to surface the largest upcoming supply increases across the market in one pass.
  • Data pipelines & backtesting. Snapshot the forward unlock calendar on a schedule to build a historical record of expected emissions for research or modelling.

Performance & throughput

Each run fetches DefiLlama's project list, then pulls every project's vesting schedule in parallel (concurrency 8) and filters locally in memory โ€” so tighter filters cost no extra time. There's no proxy, no API key and no rate limit to work around.

In a live test, a full scan of all 339 tracked projects completed in ~5 seconds (network-bound, zero fetch failures). Narrowing to a projects watchlist is faster still.

Large time windows produce a lot of rows โ€” a 365-day window over just 10 projects already yields ~600 events, most of them small linear drips. Use minPctOfSupply to keep the calendar focused on the unlocks that actually move markets. Throughput is otherwise bounded only by your Apify plan.

Integrations

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('foxlabs/token-unlocks-calendar').call({
daysAhead: 30, minPctOfSupply: 0.5, sortBy: 'pctOfSupply', maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("foxlabs/token-unlocks-calendar").call(run_input={
"daysAhead": 30, "minPctOfSupply": 0.5, "sortBy": "pctOfSupply", "maxResults": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["project"], item["unlockDateIso"], item["pctOfMaxSupply"])

Also works with Make / n8n / Zapier (Apify app โ†’ run this Actor, map the input), scheduled runs, webhooks, and the Apify MCP server so AI agents can pull the unlock calendar on demand.

Data quality

Every value comes straight from DefiLlama and is passed through as-is โ€” nothing is fabricated. Missing values are returned as "" or null, never guessed.

FieldAvailability
rank, project, slug, unlockDateIso, daysUntil, tokensUnlocked, source, generatedAtIsoAlways present
pctOfMaxSupplyPresent when DefiLlama has the token's max supply; otherwise null
token, chain, unlockType, category, descriptionPresent when DefiLlama provides it; otherwise ""

Only upcoming events are returned (anything already past is excluded), and every returned event has tokensUnlocked > 0. In a live full scan during testing, all tracked projects (339 on the test date) returned successfully with zero fetch failures.

Pricing

See the Pricing tab on this Actor's page for the current rate. There's an Apify free tier to evaluate the full feature set before you scale, and because the data source is free with no API key and no proxy, there are no third-party costs passed on to you.

FAQ

Where does the data come from? DefiLlama's public emissions datasets โ€” the same open data that powers its unlocks page for anonymous browsers. No key, no login.

How fresh is it? Every run pulls DefiLlama's current data live, so each dataset reflects the latest schedules at run time. Schedule the Actor to keep a rolling, up-to-date calendar.

What does pctOfMaxSupply mean, and why does it matter? It's the size of the unlock as a percentage of the token's max supply. A large % entering circulation is the classic dilution / sell-pressure signal traders watch โ€” that's why you can filter and sort by it.

What's the difference between cliff and linear? A cliff releases a chunk all at once (the sharpest price events); linear vests gradually over time. Filter with unlockType.

Can I watch specific tokens only? Yes โ€” list their DefiLlama slugs in projects (e.g. ["aptos", "arbitrum", "celestia"]). Leave it empty to scan everything.

Why is token sometimes coingecko:... and not a ticker? DefiLlama identifies tokens by their CoinGecko id; the Actor returns that identifier as-is rather than guessing a ticker symbol.

Why is chain or category sometimes empty? DefiLlama doesn't label every project with a single chain or every event with a recipient category. The Actor returns "" rather than inventing one.

Can I get past unlocks? No โ€” the calendar is forward-looking by design (upcoming events only). Widen daysAhead (up to 10 years) to see further ahead.

What export formats are available? JSON, CSV, Excel, or via the Apify API / integrations.

Is there a rate limit? No external key or limit โ€” throughput is bounded only by your Apify plan.

Troubleshooting

  • 0 results โ†’ your filters are too narrow. Increase daysAhead, lower minPctOfSupply, or clear category / unlockType.
  • A token I expect is missing โ†’ DefiLlama may not track its emissions, its next unlock may be beyond your daysAhead window, or it may already be fully unlocked.
  • pctOfMaxSupply is null โ†’ DefiLlama has no max-supply figure for that token. The event is still included (with tokensUnlocked); only the percentage is unknown.
  • Too many tiny rows โ†’ most are small linear drips. Raise minPctOfSupply (e.g. 0.5) and/or set unlockType: cliff to keep only the notable events.
  • Source & attribution. Data comes from DefiLlama's public emissions datasets; each row is labelled source: "DefiLlama". This Actor is a convenience wrapper that filters and flattens that data.
  • Not affiliated with DefiLlama. This Actor is independent and simply reads DefiLlama's public data.
  • Not financial advice. Unlock schedules are informational only, provided for research and analytics. Nothing here is trading, investment or financial advice โ€” do your own research.
  • Estimates can change. Vesting schedules and timestamps are DefiLlama's best available data and can be revised by projects; treat future dates as projections, not guarantees.
  • Pass-through accuracy. Values are only as accurate as DefiLlama's source data; the Actor never fabricates missing fields (they return "" or null).

Support

Questions, a field you'd like added, or a custom build? Open the Issues tab on this Actor, or email info@foxlabs.com.tr. We reply fast.

If this Actor saves you time, a โญ review really helps.

Changelog

0.2 โ€” 2026-07-05

  • Gold-standard docs overhaul: API quick-start, full field table + real sample, input/filter guide, example recipes, use cases, integrations (JS / Python / Make / MCP), measured throughput, data-quality notes, FAQ, troubleshooting, and legal/attribution notes.

0.1.1 โ€” 2026-07-05

  • Hardened output handling so an edge-case value can never trip dataset-schema validation.

0.1.0 โ€” 2026-06-04

  • Initial release: upcoming token-unlock calendar across the DefiLlama emissions data โ€” filter by days-ahead, % of max supply, recipient category and cliff/linear; sort by date or size; flat CSV/Excel rows, no API key or proxy.

Part of the foXLabs data platform โ€” public-data scrapers for company, contact, procurement, financial and AI-search intelligence. Browse the full suite and free how-to guides at data.foxlabs.com.tr.