> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenomist.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Unlock events as of a date

> Cliff unlock events as they were known at a past date

Same shape as [Unlock Events v5](https://docs.tokenomist.ai/api-documents/unlock-events/v5.md), answered by the version you select with `asOf` or `versionId`. See [version selector](https://docs.tokenomist.ai/api-documents/point-in-time/overview.md#choose-a-version). Cliff events only, as in v5. Continuous releases are in [Daily emission as of a date](https://docs.tokenomist.ai/api-documents/point-in-time/daily-emission.md).

Differences from v5:

* `metadata.asOf` and `metadata.version` report which version answered.
* Events after `asOf` are returned too: they were the forecast at `asOf`. Compare `unlockDate` with `metadata.asOf` to tell them apart.
* `committedClaim` includes only claims with a timestamp on or before `asOf`, and has no USD `value`.
* USD fields (`cliffValue`, `referencePrice`, `valueToMarketCap`) and `referencePriceUpdatedTime` are not returned.
* `latestUpdateDate` is removed. Use `metadata.version` instead.

`start`, `end`, `standardAllocation`, `page` and `pageSize` work as in v5: an unlock at 00:00 UTC on the `end` date is included, and a page holds 20 dates by default. The plan window for `start` and `end` is counted from today, not from `asOf`.

## Example

```bash theme={null}
curl --fail-with-body -s \
  "https://api.tokenomist.ai/v5/point-in-time/unlock/events/eigenlayer?asOf=2025-01-01&start=2025-01-01&end=2026-01-01" \
  -H "x-api-key: YOUR_API_KEY"
```

EigenLayer's project version 4 (announced on 2024-10-04), first event in the range:

```json theme={null}
{
  "unlockDate": "2025-01-07T19:00:00Z",
  "tokenName": "EigenCloud (prev. EigenLayer)",
  "tokenSymbol": "EIGEN",
  "listedMethod": "INTERNAL",
  "dataSource": "Whitepaper",
  "cliffUnlocks": {
    "cliffAmount": 1287420,
    "allocationBreakdown": [
      {
        "unlockDate": "2025-01-07T19:00:00Z",
        "allocationName": "Future community initiatives",
        "standardAllocationName": "Community",
        "cliffAmount": 1287420,
        "unlockPrecision": "second",
        "committedClaim": null
      }
    ]
  }
}
```

To see how every version described the same events, call this endpoint once per `versionId` from [Token versions](https://docs.tokenomist.ai/api-documents/point-in-time/versions.md).


## OpenAPI

````yaml GET /v5/point-in-time/unlock/events/{tokenId}
openapi: 3.0.3
info:
  title: Tokenomist API
  description: >-
    Comprehensive time series data for crypto token unlocks, emissions,
    allocations, fundraising, burns, and buybacks.
  version: 1.0.0
servers:
  - url: https://api.tokenomist.ai
security:
  - apiKey: []
paths:
  /v5/point-in-time/unlock/events/{tokenId}:
    get:
      tags:
        - Point-in-Time History
      summary: Unlock events as of a date
      description: Cliff unlock events as they were known at `asOf`.
      operationId: getPointInTimeUnlockEventsV5
      parameters:
        - $ref: '#/components/parameters/HistoryTokenId'
        - $ref: '#/components/parameters/HistoryAsOf'
        - $ref: '#/components/parameters/HistoryVersionId'
        - name: start
          in: query
          required: false
          description: >-
            Start date (YYYY-MM-DD), as in v5. Must be inside your plan's
            window, which is counted from today, not from `asOf`.
          schema:
            type: string
            format: date
        - name: end
          in: query
          required: false
          description: >-
            End date (YYYY-MM-DD), as in v5: an unlock at 00:00 UTC that day is
            included. Can be later than `asOf`.
          schema:
            type: string
            format: date
        - $ref: '#/components/parameters/HistoryStandardAllocation'
        - $ref: '#/components/parameters/HistoryPage'
        - $ref: '#/components/parameters/HistoryPageSize'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  metadata:
                    $ref: '#/components/schemas/HistoryPaginatedMetadata'
                  status:
                    type: boolean
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/HistoryUnlockEvent'
        '400':
          $ref: '#/components/responses/HistoryError'
        '403':
          $ref: '#/components/responses/HistoryError'
        '404':
          $ref: '#/components/responses/HistoryError'
        '422':
          $ref: '#/components/responses/HistoryError'
        '429':
          $ref: '#/components/responses/HistoryError'
        '503':
          $ref: '#/components/responses/HistoryError'
components:
  parameters:
    HistoryTokenId:
      name: tokenId
      in: path
      required: true
      description: >-
        Token identifier (slug), as in Token List v5. A token not in that list
        answers 404 `TOKEN_NOT_FOUND`.
      schema:
        type: string
      example: eigenlayer
    HistoryAsOf:
      name: asOf
      in: query
      required: false
      description: >-
        Decision time T, as an RFC 3339 datetime or YYYY-MM-DD (00:00:00 UTC
        that day). Returns the project version in force at T. Defaults to now,
        which returns the current version. A future date returns 400
        `INVALID_AS_OF`. Cannot be combined with `versionId` (422
        `INVALID_PARAMETER`). Your plan sets how far back it can go.
      schema:
        type: string
      example: '2025-01-01'
    HistoryVersionId:
      name: versionId
      in: query
      required: false
      description: >-
        A project version `id` from the token versions endpoint, for example
        `eigenlayer-p-6703562619635290c11ad65a`. Returns that version, evaluated
        at its start or at the start of your plan's range, whichever is later.
        Cannot be combined with `asOf` (422 `INVALID_PARAMETER`).
      schema:
        type: string
    HistoryStandardAllocation:
      name: standardAllocation
      in: query
      required: false
      description: >-
        Comma-separated list of standard allocations to filter by. Allowed
        values: community, founderTeam, privateInvestors, publicInvestors,
        others, reserve. An unknown value or an empty item (for example a
        trailing comma): 422; an empty parameter is ignored. Aggregates
        (unlockAmount, totalCumulativeUnlockedAmount, cliffAmount,
        committedClaim) are recalculated from the kept allocations.
      schema:
        type: string
      example: community,founderTeam
    HistoryPage:
      name: page
      in: query
      required: false
      description: Page number (1-indexed). 0 or omitted means 1.
      schema:
        type: integer
        minimum: 0
    HistoryPageSize:
      name: pageSize
      in: query
      required: false
      description: Number of items per page. 0 or omitted means 20.
      schema:
        type: integer
        minimum: 0
  schemas:
    HistoryPaginatedMetadata:
      allOf:
        - $ref: '#/components/schemas/HistoryMetadata'
        - type: object
          properties:
            page:
              type: integer
              description: Current page number (1-indexed)
              example: 1
            pageSize:
              type: integer
              description: Number of items per page
              example: 20
            totalPages:
              type: integer
              description: Total number of pages available for the current query
              example: 2
            total:
              type: integer
              description: Total number of items across all pages
              example: 27
    HistoryUnlockEvent:
      type: object
      properties:
        unlockDate:
          type: string
          description: >-
            Unlock time. One entry per instant: the allocations unlocking at the
            same second are grouped.
          format: date-time
          example: '2024-10-15T19:00:00Z'
        tokenName:
          type: string
          description: Token name
          example: EigenCloud (prev. EigenLayer)
        tokenSymbol:
          type: string
          description: Token symbol
          example: EIGEN
        listedMethod:
          type: string
          enum:
            - INTERNAL
            - AI
            - EXTERNAL
            - ''
          description: >-
            How the data was listed: INTERNAL (Tokenomist research from official
            sources or on-chain data), AI (AI-listed) or EXTERNAL (submitted by
            the project). Empty for an unknown listing type.
          example: INTERNAL
        dataSource:
          type: string
          description: >-
            Where the schedule comes from: Whitepaper, Onchain, AI-Listing,
            Self-Listed or TokenUnlocks.
          example: Whitepaper
        cliffUnlocks:
          type: object
          description: >-
            The cliff unlock at this time, as known in the selected version (no
            USD fields).
          properties:
            cliffAmount:
              type: number
              description: Total unlock amount denominated in token
              example: 11218945.71
            allocationBreakdown:
              type: array
              description: One row per allocation unlocking at this time.
              items:
                $ref: '#/components/schemas/HistoryCliffAllocationBreakdown'
    HistoryMetadata:
      type: object
      properties:
        queryDate:
          type: string
          format: date-time
          description: Timestamp of the query
          example: '2026-10-29T06:24:37Z'
        asOf:
          type: string
          format: date-time
          description: The instant the response is evaluated at
          example: '2025-01-01T00:00:00Z'
        version:
          $ref: '#/components/schemas/HistoryAppliedVersion'
        credit:
          $ref: '#/components/schemas/Credit'
    HistoryCliffAllocationBreakdown:
      type: object
      properties:
        unlockDate:
          type: string
          description: Unlock time (the same instant as the event's unlockDate).
          format: date-time
          example: '2024-10-15T19:00:00Z'
        allocationName:
          type: string
          description: Allocation name
          example: Future community initiatives
        standardAllocationName:
          type: string
          description: >-
            One of Founder / Team, Private Investors, Public Investors,
            Community, Others or Reserve (filter keys founderTeam,
            privateInvestors, publicInvestors, community, others, reserve).
            Empty when the allocation has no standard category.
          example: Community
        cliffAmount:
          type: number
          description: Unlock amount denominated in token
          example: 11218945.71
        unlockPrecision:
          type: string
          description: Precision of the unlock date, for example second, hour, day, month
          example: second
        committedClaim:
          $ref: '#/components/schemas/HistoryClaim'
    HistoryError:
      type: object
      properties:
        metadata:
          type: object
          properties:
            queryDate:
              type: string
              format: date-time
              example: '2026-10-29T06:25:07Z'
            credit:
              $ref: '#/components/schemas/Credit'
        status:
          type: boolean
          example: false
        statusCode:
          type: integer
          example: 404
        errorCode:
          type: string
          enum:
            - INVALID_AS_OF
            - INVALID_PARAMETER
            - PLAN_NOT_ELIGIBLE
            - TOKEN_NOT_FOUND
            - NO_VERSION_AT_AS_OF
            - VERSION_NOT_FOUND
            - NOT_FOUND
            - SERVICE_UNAVAILABLE
            - INTERNAL_ERROR
          example: TOKEN_NOT_FOUND
        errorMessage:
          type: string
          example: Token not found
        earliestValidDate:
          type: string
          format: date-time
          description: >-
            With `NO_VERSION_AT_AS_OF`, or `PLAN_NOT_ELIGIBLE` for an `asOf` or
            `versionId` outside your plan's range: the first instant that
            selects a version. Send it back as `asOf`. Absent when no later
            version exists.
          example: '2023-10-29T00:00:00Z'
    HistoryAppliedVersion:
      type: object
      description: The project version that answered the request
      properties:
        id:
          type: string
          description: >-
            Permanent version id: `{tokenId}-p-{id}`. The prefix is Tokenomist's
            own token id, usually the path `tokenId` (not for every token, for
            example `galxe` versions start with `project-galaxy`). Store it as
            returned.
          example: eigenlayer-p-6703562619635290c11ad65a
        historyOrder:
          type: integer
          description: >-
            Position on the project timeline (1 = oldest). It can shift when an
            earlier version is added later, so use `id` as the key.
          example: 4
        validFrom:
          type: string
          format: date-time
          description: >-
            When the version came into force: its announcement date, else its
            first publish on Tokenomist
          example: '2024-10-04T04:52:36Z'
        validFromBasis:
          $ref: '#/components/schemas/HistoryValidFromBasis'
        validUntil:
          type: string
          format: date-time
          nullable: true
          description: >-
            The next project version's start. Null for the latest version. It
            can be before `validFrom` when the next version's announcement is
            dated earlier.
          example: null
        previousVersionId:
          type: string
          nullable: true
          description: The previous project version. Null for the first.
          example: eigenlayer-p-66fa656ce4a4901842303dd6
        status:
          type: string
          description: >-
            Relative to now, not asOf: current for the latest project version of
            a token that is live today, else previous. An asOf that selects a
            since-replaced version gets previous.
          enum:
            - current
            - previous
          example: current
    Credit:
      type: object
      description: >-
        Optional quota state for the calling account, returned on most
        authenticated responses (both success and error). Treat it as optional:
        it may be absent on unauthenticated requests, demo/playground responses,
        and briefly right after a monthly reset. `used` is near-real-time and
        may lag the true count by a request or two.
      properties:
        used:
          type: integer
          description: >-
            Successful requests (status below 400) made by your account, across
            all its keys, since the start of the month; errors use no credit.
            May lag by a request or two.
          example: 213
        limit:
          type: integer
          description: The plan's request quota for the window.
          example: 1000
        resetAt:
          type: string
          format: date-time
          description: 'When the quota resets: the 1st of next month, 00:00 UTC (RFC 3339).'
          example: '2026-08-01T00:00:00Z'
    HistoryClaim:
      type: object
      nullable: true
      description: >-
        Committed claim as of asOf, without its USD value. Null when there is no
        claim, it has no timestamp, or it was made after asOf. A day's claim
        sums only its allocations' claims made by asOf.
      properties:
        amount:
          type: number
          nullable: true
          description: Committed claim amount denominated in token
          example: 1234567.89
        timestamp:
          type: integer
          nullable: true
          description: >-
            Unix time in seconds of the claim (the latest when several are
            merged).
          example: 1735689600
    HistoryValidFromBasis:
      type: string
      description: >-
        How a project version's start date was established.
        `stated_in_document`: the vote or announcement states the time.
        `onchain`: a governance proposal's voting end on chain. `url`: the time
        encoded in the announcement's link. `archive_first_seen`: the first web
        archive capture (an upper bound). `first_published`: no dated
        announcement, so the start is the first publish on Tokenomist (public no
        later than then).
      enum:
        - stated_in_document
        - onchain
        - url
        - archive_first_seen
        - first_published
      example: stated_in_document
  responses:
    HistoryError:
      description: >-
        Error. `400 INVALID_AS_OF`: `asOf` is invalid or in the future. `400
        INVALID_PARAMETER`: another parameter is invalid. `403
        PLAN_NOT_ELIGIBLE`: your plan does not include the version selector on
        this endpoint, or `asOf` / `versionId` is outside your plan's range (a
        403 without `errorCode` means your plan does not include the endpoint).
        `404 TOKEN_NOT_FOUND`, `404 NO_VERSION_AT_AS_OF` (no project version in
        force at `asOf`), `404 VERSION_NOT_FOUND` (`versionId` does not belong
        to this token). `422 INVALID_PARAMETER`: `asOf` and `versionId`
        together, or `start` / `end` outside your plan's window. `429` (no
        `errorCode`): rate limit or monthly credit quota, as in v5. `503
        SERVICE_UNAVAILABLE`: retry shortly. Errors use no credit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HistoryError'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Tokenomist API key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.