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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/tokenization/deploy-layerzero-adapters",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Deploy LayerZero adapters

> Deploy LayerZero adapters for multichain token bridging functionality. This endpoint creates adapter contracts that enable cross-chain token transfers.



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml post /tokenization/multichain/bridge/layerzero
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /tokenization/multichain/bridge/layerzero:
    post:
      tags:
        - Tokenization
      summary: Deploy LayerZero adapters
      description: >-
        Deploy LayerZero adapters for multichain token bridging functionality.
        This endpoint creates adapter contracts that enable cross-chain token
        transfers.
      operationId: deployAndLinkAdapters
      parameters:
        - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeployLayerZeroAdaptersRequest'
      responses:
        '200':
          description: LayerZero adapters deployed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployLayerZeroAdaptersResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/OriginalTokenLinkNotFoundError'
        '409':
          $ref: '#/components/responses/TokenLinkPreparationError'
        '422':
          $ref: '#/components/responses/OriginalTokenLinkNotFungibleError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response:
            Promise<FireblocksResponse<DeployLayerZeroAdaptersResponse>> =
            fireblocks.tokenization.deployAndLinkAdapters(tokenizationApiDeployAndLinkAdaptersRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<List<AdapterProcessingResult>>>
            response =
            fireblocks.tokenization().deployAndLinkAdapters(deployLayerZeroAdaptersRequest,
            idempotencyKey);
        - lang: Python
          source: >-
            response =
            fireblocks.tokenization.deploy_and_link_adapters(deploy_layer_zero_adapters_request,
            idempotency_key);
components:
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: >-
        A unique identifier for the request. If the request is sent multiple
        times with the same idempotency key, the server will return the same
        response as the first request. The idempotency key is valid for 24
        hours.
      required: false
      schema:
        type: string
  schemas:
    DeployLayerZeroAdaptersRequest:
      type: object
      properties:
        vaultAccountId:
          type: string
          description: >-
            The id of the vault account that initiated the request to deploy
            adapter for the token
          example: '0'
        createParams:
          type: array
          items:
            $ref: '#/components/schemas/LayerZeroAdapterCreateParams'
          description: >-
            Array of creation parameters for LayerZero adapters, one per
            tokenLink.
          minItems: 1
        displayName:
          type: string
          description: The display name of the contract
          example: LayerZero Adapter
        useGasless:
          type: boolean
          description: Whether to use gasless deployment or not
          example: false
        feeLevel:
          enum:
            - LOW
            - MEDIUM
            - HIGH
          type: string
          description: >-
            Fee level for the write function transaction. interchangeable with
            the 'fee' field
          example: MEDIUM
        fee:
          type: string
          description: >-
            Max fee amount for the write function transaction. interchangeable
            with the 'feeLevel' field
          example: '2000'
        salt:
          type: string
          description: >-
            The salt to calculate the deterministic address. Must be a number
            between 0 and 2^256 -1, for it to fit in the bytes32 parameter
          example: '123456789'
      required:
        - vaultAccountId
        - createParams
    DeployLayerZeroAdaptersResponse:
      type: array
      items:
        $ref: '#/components/schemas/AdapterProcessingResult'
      description: Array of adapter processing results
    LayerZeroAdapterCreateParams:
      type: object
      properties:
        tokenLinkId:
          type: string
          description: The token link id of the base token to deploy the adapters for
          example: 123-432-1234-1234-123456789012
        delegateAddress:
          type: string
          description: Address that will receive `CONTRACT_ADMIN_ROLE`.
          example: '0xABCDEF123456789abcdef1234567890abcdef12345678'
        defaultAdminAddress:
          type: string
          description: >-
            Address that will receive `DEFAULT_ADMIN_ROLE` on the adapter
            contract.
          example: '0xABC123456789abcdef1234567890abcdef12345678'
        pauserAddress:
          type: string
          description: Address that will receive `PAUSER_ROLE`.
          example: '0xDEFABC123456789abcdef1234567890abcdef12345678'
      required:
        - tokenLinkId
        - delegateAddress
        - defaultAdminAddress
        - pauserAddress
    AdapterProcessingResult:
      type: object
      properties:
        inputTokenLinkId:
          type: string
          description: The input token link ID
        adapterLinkId:
          type: string
          description: The adapter link ID
      required:
        - inputTokenLinkId
        - adapterLinkId
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - INTERNAL
                - AUTHENTICATION
                - AUTHORIZATION
                - VALIDATION
                - NOT_FOUND
                - UNPROCESSABLE_ENTITY
                - FORBIDDEN
            message:
              type: string
          required:
            - type
            - message
      required:
        - error
  responses:
    BadRequestError:
      description: Bad request, invalid input data or parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: VALIDATION
              message: Invalid input data or parameters
    OriginalTokenLinkNotFoundError:
      description: Token link not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: NOT_FOUND
              message: The specified token link was not found
    TokenLinkPreparationError:
      description: Token link preparation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: UNPROCESSABLE_ENTITY
              message: An error occurred during token link preparation
    OriginalTokenLinkNotFungibleError:
      description: Token link is not fungible
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: UNPROCESSABLE_ENTITY
              message: The token link is not of fungible type
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              type: INTERNAL
              message: >-
                An unexpected error occurred during execution. Please try again
                later.

````