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

> Lock Cardano assets in a time-based vesting contract with configurable release schedules and beneficiary management.

# Lock assets



## OpenAPI

````yaml cardano/managed-contracts-api/openapi.json post /contracts/vesting/lock
openapi: 3.0.3
info:
  title: Cardano - Managed Contracts API
  description: https://docs.gomaestro.org/getting-started
  contact:
    name: Maestro
    email: info@gomaestro.org
    url: https://gomaestro.org/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.txt
  version: v1.9.0
servers:
  - url: https://mainnet.gomaestro-api.org/v1
    description: Cardano Mainnet
  - url: https://preprod.gomaestro-api.org/v1
    description: Cardano Preprod
  - url: https://preview.gomaestro-api.org/v1
    description: Cardano Preview
security:
  - api-key: []
paths:
  /contracts/vesting/lock:
    post:
      tags:
        - Vesting
      summary: Lock assets
      description: Lock assets into the vesting contract
      operationId: vesting_lock_assets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                sender:
                  type: string
                  description: Sender's bech32 address
                beneficiary:
                  type: string
                  description: Beneficiary's bech32 address
                asset_policy_id:
                  type: string
                  description: Asset policy ID of the asset to be locked
                asset_token_name:
                  type: string
                  description: Asset policy token name of the asset to be locked
                total_vesting_quantity:
                  type: number
                  description: Total amount of the asset to be locked
                vesting_period_start:
                  type: number
                  description: Vesting period start in UNIX time (seconds)
                vesting_period_end:
                  type: number
                  description: Vesting period end in UNIX time (seconds)
                first_unlock_possible_after:
                  type: number
                  description: Valid initial unlock period start in UNIX time (seconds)
                total_installments:
                  type: number
                  description: Number of vesting installments used to collect vested assets
              required:
                - sender
                - beneficiary
                - asset_policy_id
                - asset_token_name
                - total_vesting_quantity
                - vesting_period_start
                - vesting_period_end
                - first_unlock_possible_after
                - total_installments
            example:
              sender: addr_test1vqade9vdg4uj3gsc5zfmmyavfd5tpssyxn4m7c4slzlxddcmxc00w
              beneficiary: addr_test1vpvz8req5wn4serhfsg9ha9wg7rf7jsr5hels2llkacq5gcq4utja
              asset_policy_id: fb2b3a629a09014e28d0a54fc06499af12127c79b0bc1c39478da1dd
              asset_token_name: 7449534b59
              total_vesting_quantity: 1000000
              vesting_period_start: 1690304810
              vesting_period_end: 1690391304
              first_unlock_possible_after: 1690304810
              total_installments: 4
      responses:
        '202':
          description: Unsigned transaction created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  cbor_hex:
                    type: string
                  tx_hash:
                    type: string
        '400':
          description: Bad Request. Invalid request body provided.
components:
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: Project API Key

````