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

# Get Unlock Events

> The dated points where an asset's unlock schedule changes: cliffs and linear rate changes, past and projected.



## OpenAPI

````yaml api-reference/token-unlocks/openapi.json GET /token-unlocks/v1/assets/{assetId}/events
openapi: 3.0.0
info:
  title: Blockworks Token Unlocks API
  description: OpenAPI specification for the Blockworks Token Unlocks API.
  version: 1.0.0
servers:
  - url: https://api.blockworks.com
    description: Blockworks API
security:
  - apiKey: []
tags:
  - name: Assets
    description: Coverage, unlock events, and the two timeseries views.
  - name: Allocations
    description: Who holds what, and how much of it has unlocked.
paths:
  /token-unlocks/v1/assets/{assetId}/events:
    get:
      tags:
        - Assets
      summary: Get unlock events
      description: >-
        The discrete points where an asset's unlock schedule changes: cliffs
        that release a tranche on a date, and changes to the daily linear
        vesting rate. Use this to find the next material unlock rather than to
        chart supply over time.
      operationId: getEvents
      parameters:
        - name: assetId
          in: path
          description: Asset to look up. Accepts a slug (`solana`) or the asset UUID.
          schema:
            type: string
            example: solana
          required: true
        - name: startTime
          in: query
          description: RFC 3339 timestamp. Only events at or after this time are returned.
          schema:
            type: string
            format: date-time
            example: '2020-01-01T00:00:00Z'
        - name: endTime
          in: query
          description: >-
            RFC 3339 timestamp. Only events at or before this time are returned.
            Future dates are valid: the schedule is projected forward.
          schema:
            type: string
            format: date-time
            example: '2027-12-31T00:00:00Z'
        - name: unlockType
          in: query
          description: Return only cliff events or only linear rate changes. Omit for both.
          schema:
            type: string
            enum:
              - CLIFF
              - LINEAR
            example: CLIFF
      responses:
        '200':
          description: The asset's unlock events over the window.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    nullable: true
                    description: '`null` on success.'
                  data:
                    $ref: '#/components/schemas/Events'
                required:
                  - data
              example:
                error: null
                data:
                  asset:
                    id: b3d5d66c-26a2-404c-9325-91dc714a722b
                    name: Solana
                    slug: solana
                    symbol: SOL
                  unlockEvents:
                    - timestamp: '2020-04-07T00:00:00Z'
                      cliff:
                        amountNative: 8225000
                        amountUSD: 1553853121.763593
                        percentOfTotalAllocation: 0.017267440639892512
                        allocations:
                          - allocationRecipient: Coinlist Auction Sale
                            amountNative: 8200000
                            amountUSD: 1549130163.9466825
                            percentOfTotalAllocation: 0.017214956017886758
                          - allocationRecipient: Solana Foundation
                            amountNative: 25000
                            amountUSD: 4722957.816910617
                            percentOfTotalAllocation: 0.00005248462200575231
                      dailyLinearRateChange: null
                    - timestamp: '2020-05-07T00:00:00Z'
                      cliff:
                        amountNative: 8187500
                        amountUSD: 1546768685.038227
                        percentOfTotalAllocation: 0.017188713706883883
                        allocations:
                          - allocationRecipient: Community Reserve
                            amountNative: 8187500
                            amountUSD: 1546768685.038227
                            percentOfTotalAllocation: 0.017188713706883883
                      dailyLinearRateChange: null
                    - timestamp: '2020-06-07T00:00:00Z'
                      cliff:
                        amountNative: 8187500
                        amountUSD: 1546768685.038227
                        percentOfTotalAllocation: 0.017188713706883883
                        allocations:
                          - allocationRecipient: Community Reserve
                            amountNative: 8187500
                            amountUSD: 1546768685.038227
                            percentOfTotalAllocation: 0.017188713706883883
                      dailyLinearRateChange: null
                    - timestamp: '2020-07-07T00:00:00Z'
                      cliff:
                        amountNative: 8187500
                        amountUSD: 1546768685.038227
                        percentOfTotalAllocation: 0.017188713706883883
                        allocations:
                          - allocationRecipient: Community Reserve
                            amountNative: 8187500
                            amountUSD: 1546768685.038227
                            percentOfTotalAllocation: 0.017188713706883883
                      dailyLinearRateChange: null
        '400':
          description: >-
            Malformed request, for example an `interval` outside the allowed set
            or an unparseable timestamp.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Missing or invalid API key, or a key without token unlock access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Events:
      type: object
      description: An asset's unlock events over the requested window.
      properties:
        asset:
          $ref: '#/components/schemas/AssetBasic'
        unlockEvents:
          type: array
          description: Events in ascending timestamp order.
          items:
            $ref: '#/components/schemas/UnlockEvent'
      required:
        - asset
        - unlockEvents
    Error:
      type: object
      description: Failure envelope. `error` carries the message and `data` is `null`.
      properties:
        error:
          type: string
          description: Error message.
          example: invalid auth mechanism
        data:
          nullable: true
          description: Always `null` on failure.
      required:
        - data
    AssetBasic:
      type: object
      description: >-
        The asset an unlock payload belongs to. The `id` is the same asset UUID
        the Data API and Monitoring API use, so unlock data joins to the rest of
        the platform without a mapping table.
      properties:
        id:
          type: string
          format: uuid
          description: Asset UUID, shared across Blockworks APIs.
          example: b3d5d66c-26a2-404c-9325-91dc714a722b
        name:
          type: string
          description: Display name.
          example: Solana
        slug:
          type: string
          description: URL-safe identifier.
          example: solana
        symbol:
          type: string
          description: Ticker symbol.
          example: SOL
      required:
        - id
        - name
        - slug
        - symbol
    UnlockEvent:
      type: object
      description: >-
        A dated point where the unlock schedule changes. `cliff` is populated
        when a discrete tranche unlocks on the date; `dailyLinearRateChange` is
        populated when the ongoing linear vesting rate changes. Exactly one of
        the two carries the event, and the other is `null`.
      properties:
        timestamp:
          type: string
          format: date-time
          description: >-
            When the event occurs. Past and future dates are both returned; the
            schedule is projected forward.
          example: '2020-04-07T00:00:00Z'
        cliff:
          allOf:
            - $ref: '#/components/schemas/UnlockEventTranche'
          nullable: true
          description: >-
            The tranche released by a cliff. `null` on events that only change
            the linear rate. Matched by `unlockType=CLIFF`.
        dailyLinearRateChange:
          allOf:
            - $ref: '#/components/schemas/UnlockEventTranche'
          nullable: true
          description: >-
            The change in the amount vesting per day from this date forward.
            `null` on cliff-only events. Matched by `unlockType=LINEAR`.
      required:
        - timestamp
    UnlockEventTranche:
      type: object
      description: The tokens moved by an unlock event, in total and per recipient.
      properties:
        amountNative:
          type: number
          format: double
          description: Tokens released by the event, in native units.
        amountUSD:
          type: number
          format: double
          description: Value released by the event, in USD.
        percentOfTotalAllocation:
          type: number
          format: double
          description: >-
            Share of the asset's total allocation released by the event, as a
            decimal fraction from 0 to 1.
        allocations:
          type: array
          description: Per-recipient breakdown of the event.
          items:
            $ref: '#/components/schemas/UnlockEventAllocation'
      required:
        - amountNative
        - percentOfTotalAllocation
        - allocations
    UnlockEventAllocation:
      type: object
      description: One recipient's share of a single unlock event.
      properties:
        allocationRecipient:
          type: string
          description: Recipient bucket receiving these tokens.
          example: Coinlist Auction Sale
        amountNative:
          type: number
          format: double
          description: Tokens released to this recipient by the event, in native units.
        amountUSD:
          type: number
          format: double
          description: Value released to this recipient by the event, in USD.
        percentOfTotalAllocation:
          type: number
          format: double
          description: >-
            Share of the asset's total allocation this recipient's portion
            represents, as a decimal fraction from 0 to 1.
      required:
        - allocationRecipient
        - amountNative
        - percentOfTotalAllocation
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-Blockworks-API-Key

````