fireblocks Contract Templates API

The Contract Templates API from fireblocks — 5 operation(s) for contract templates.

OpenAPI Specification

fireblocks-contract-templates-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Blockchains and Assets Approval Requests Contract Templates 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.8.0
  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: []
tags:
- name: Contract Templates
paths:
  /tokenization/templates:
    get:
      operationId: getContractTemplates
      summary: List all contract templates
      description: 'Return minimal representation of all the contract templates available for the workspace.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - name: limit
        required: false
        in: query
        description: Items per page (max 100)
        schema:
          minimum: 1
          maximum: 100
          default: 100
          type: number
      - name: offset
        required: false
        in: query
        description: Paging offset
        schema:
          minimum: 0
          default: 0
          type: number
      - name: pageCursor
        required: false
        in: query
        description: Page cursor to get the next page
        example: MjAyMy0xMi0xMyAyMDozNjowOC4zMDI=:MTEwMA==
        schema:
          type: string
      - name: pageSize
        required: false
        in: query
        description: Number of items per page, requesting more then max will return max items
        example: 10
        schema:
          minimum: 1
          maximum: 100
          type: number
      - name: type
        required: false
        in: query
        description: The type of the contract templates you wish to retrieve. Can accept one type, more or none
        example: FUNGIBLE_TOKEN
        schema:
          type: string
          enum:
          - FUNGIBLE_TOKEN
          - NON_FUNGIBLE_TOKEN
          - TOKEN_UTILITY
      - name: initializationPhase
        required: false
        description: For standalone contracts use ON_DEPLOYMENT and for contracts that are behind proxies use POST_DEPLOYMENT
        in: query
        schema:
          enum:
          - ON_DEPLOYMENT
          - POST_DEPLOYMENT
          type: string
      x-readme:
        code-samples:
        - language: javascript
          code: const contractTemplates = await fireblocks.getContractTemplates();
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<TemplatesPaginatedResponse>> = fireblocks.contractTemplates.getContractTemplates(contractTemplatesApiGetContractTemplatesRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<TemplatesPaginatedResponse>> response = fireblocks.contractTemplates().getContractTemplates(limit, offset, pageCursor, pageSize, type, initializationPhase);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.get_contract_templates(limit, offset, page_cursor, page_size, type, initialization_phase);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: List of contract templates was returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplatesPaginatedResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<TemplatesPaginatedResponse>> = fireblocks.contractTemplates.getContractTemplates(contractTemplatesApiGetContractTemplatesRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<TemplatesPaginatedResponse>> response = fireblocks.contractTemplates().getContractTemplates(limit, offset, pageCursor, pageSize, type, initializationPhase);
      - lang: Python
        source: response = fireblocks.contract_templates.get_contract_templates(limit, offset, page_cursor, page_size, type, initialization_phase);
    post:
      operationId: uploadContractTemplate
      summary: Upload contract template
      description: 'Upload a new contract template. This contract template will be available for the workspace.

        </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor'
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractUploadRequest'
      x-readme:
        code-samples:
        - language: javascript
          code: const contractTemplate = await fireblocks.uploadContractTemplate(uploadRequest);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ContractTemplateDto>> = fireblocks.contractTemplates.uploadContractTemplate(contractTemplatesApiUploadContractTemplateRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ContractTemplateDto>> response = fireblocks.contractTemplates().uploadContractTemplate(contractUploadRequest, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.upload_contract_template(contract_upload_request, idempotency_key);
          name: Fireblocks SDK Python example
      responses:
        '201':
          description: Contract was uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractTemplateDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ContractTemplateDto>> = fireblocks.contractTemplates.uploadContractTemplate(contractTemplatesApiUploadContractTemplateRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ContractTemplateDto>> response = fireblocks.contractTemplates().uploadContractTemplate(contractUploadRequest, idempotencyKey);
      - lang: Python
        source: response = fireblocks.contract_templates.upload_contract_template(contract_upload_request, idempotency_key);
  /tokenization/templates/{contractTemplateId}:
    get:
      operationId: getContractTemplateById
      summary: Return contract template by id
      description: 'Return detailed information about the contract template.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - name: contractTemplateId
        required: true
        in: path
        description: The Contract Template identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        schema:
          type: string
      x-readme:
        code-samples:
        - language: javascript
          code: const contractTemplate = await fireblocks.getContractTemplate(contractId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ContractTemplateDto>> = fireblocks.contractTemplates.getContractTemplateById(contractTemplatesApiGetContractTemplateByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ContractTemplateDto>> response = fireblocks.contractTemplates().getContractTemplateById(contractTemplateId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: Contract template was returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractTemplateDto'
        '404':
          description: Could not find contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpContractDoesNotExistError'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ContractTemplateDto>> = fireblocks.contractTemplates.getContractTemplateById(contractTemplatesApiGetContractTemplateByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ContractTemplateDto>> response = fireblocks.contractTemplates().getContractTemplateById(contractTemplateId);
      - lang: Python
        source: response = fireblocks.contract_templates.get_contract_template_by_id(contract_template_id);
    delete:
      operationId: deleteContractTemplateById
      summary: Delete a contract template by id
      description: 'Delete a contract by id. allowed only for private contract templates. Notice: it is irreversible!

        </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, and Editor'
      parameters:
      - name: contractTemplateId
        required: true
        in: path
        description: The Contract Template identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        schema:
          type: string
      x-readme:
        code-samples:
        - language: javascript
          code: await fireblocks.getContractTemplate(contractId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<void>> = fireblocks.contractTemplates.deleteContractTemplateById(contractTemplatesApiDeleteContractTemplateByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<Void>> response = fireblocks.contractTemplates().deleteContractTemplateById(contractTemplateId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id);
          name: Fireblocks SDK Python example
      responses:
        '204':
          description: Contract was deleted successfully
        '404':
          description: Could not find contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpContractDoesNotExistError'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<void>> = fireblocks.contractTemplates.deleteContractTemplateById(contractTemplatesApiDeleteContractTemplateByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<Void>> response = fireblocks.contractTemplates().deleteContractTemplateById(contractTemplateId);
      - lang: Python
        source: response = fireblocks.contract_templates.delete_contract_template_by_id(contract_template_id);
  /tokenization/templates/{contractTemplateId}/constructor:
    get:
      operationId: getConstructorByContractTemplateId
      summary: Return contract template's constructor
      description: 'Return contract template''s constructor ABI.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - name: contractTemplateId
        required: true
        in: path
        description: The Contract Template identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        schema:
          type: string
      - name: withDocs
        required: false
        in: query
        description: true if you want to get the abi with its docs
        schema:
          default: false
          type: boolean
      x-readme:
        code-samples:
        - language: javascript
          code: const contractConstructorAbi = await fireblocks.getContractTemplateConstructor(contractId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<AbiFunction>> = fireblocks.contractTemplates.getConstructorByContractTemplateId(contractTemplatesApiGetConstructorByContractTemplateIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<AbiFunction>> response = fireblocks.contractTemplates().getConstructorByContractTemplateId(contractTemplateId, withDocs);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id, with_docs);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: Contract template's constructor ABI was returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AbiFunction'
        '404':
          description: Could not find contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpContractDoesNotExistError'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<AbiFunction>> = fireblocks.contractTemplates.getConstructorByContractTemplateId(contractTemplatesApiGetConstructorByContractTemplateIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<AbiFunction>> response = fireblocks.contractTemplates().getConstructorByContractTemplateId(contractTemplateId, withDocs);
      - lang: Python
        source: response = fireblocks.contract_templates.get_constructor_by_contract_template_id(contract_template_id, with_docs);
  /tokenization/templates/{contractTemplateId}/function:
    get:
      operationId: getFunctionAbiByContractTemplateId
      summary: Return contract template's function
      description: 'Return contract template`s function ABI by signature.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - name: contractTemplateId
        required: true
        in: path
        description: The Contract Template identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        schema:
          type: string
      - name: functionSignature
        description: The contract's function signature
        required: true
        example: initialize(string,string,address)
        in: query
        schema:
          type: string
      responses:
        '200':
          description: Contract template`s function ABI was returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AbiFunction'
        '404':
          description: Could not find contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpContractDoesNotExistError'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<AbiFunction>> = fireblocks.contractTemplates.getFunctionAbiByContractTemplateId(contractTemplatesApiGetFunctionAbiByContractTemplateIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<AbiFunction>> response = fireblocks.contractTemplates().getFunctionAbiByContractTemplateId(contractTemplateId, functionSignature);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id, function_signature);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<AbiFunction>> = fireblocks.contractTemplates.getFunctionAbiByContractTemplateId(contractTemplatesApiGetFunctionAbiByContractTemplateIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<AbiFunction>> response = fireblocks.contractTemplates().getFunctionAbiByContractTemplateId(contractTemplateId, functionSignature);
      - lang: Python
        source: response = fireblocks.contract_templates.get_function_abi_by_contract_template_id(contract_template_id, function_signature);
  /tokenization/templates/{contractTemplateId}/deploy:
    post:
      operationId: deployContract
      summary: Deploy contract
      description: 'Deploy a new contract by contract template id. If you wish to deploy a token (ERC20, ERC721 etc), and create asset please use `POST /tokenization`.

        </br>Endpoint Permission: Owner, Admin, Non-Signing Admin, Signer, Approver, and Editor, Viewer.'
      parameters:
      - name: contractTemplateId
        required: true
        in: path
        description: The Contract Template identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContractDeployRequest'
      x-readme:
        code-samples:
        - language: javascript
          code: const { txId } = await fireblocks.deployContract(contractId, contractDeployRequest);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ContractDeployResponse>> = fireblocks.contractTemplates.deployContract(contractTemplatesApiDeployContractRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ContractDeployResponse>> response = fireblocks.contractTemplates().deployContract(contractDeployRequest, contractTemplateId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.contract_templates.deploy_contract(contract_deploy_request, contract_template_id, idempotency_key);
          name: Fireblocks SDK Python example
      responses:
        '202':
          description: Contract was deployed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractDeployResponse'
        '404':
          description: Could not find contract.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpContractDoesNotExistError'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Contract Templates
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ContractDeployResponse>> = fireblocks.contractTemplates.deployContract(contractTemplatesApiDeployContractRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ContractDeployResponse>> response = fireblocks.contractTemplates().deployContract(contractDeployRequest, contractTemplateId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.contract_templates.deploy_contract(contract_deploy_request, contract_template_id, idempotency_key);
components:
  schemas:
    TemplatesPaginatedResponse:
      type: object
      properties:
        data:
          type: array
          description: The data of the current page
          items:
            $ref: '#/components/schemas/LeanContractDto'
        next:
          type: string
          description: The ID of the next page
          example: eJ0eXAiOiJKV1QiLCJhbGcOiJIUzI1NiJ9
          nullable: true
      required:
      - data
    ParameterWithValue:
      type: object
      properties:
        name:
          type: string
          example: Some Name
          description: The name of the parameter as it appears in the ABI
        description:
          type: string
          example: The name of the token
          description: A description of the parameter, fetched from the devdoc of this contract
        internalType:
          type: string
          example: string
          description: The  internal type of the parameter as it appears in the ABI
        type:
          type: string
          example: string
          description: The type of the parameter as it appears in the ABI
        components:
          type: array
          items:
            $ref: '#/components/schemas/Parameter'
        value:
          example: 'true'
          description: The value of the parameter. can also be ParameterWithValue
          type: string
        functionValue:
          description: The function value of this param (if has one). If this is set, the `value` shouldn`t be. Used for proxies
          allOf:
          - $ref: '#/components/schemas/LeanAbiFunction'
      required:
      - name
      - type
    VendorDto:
      type: object
      properties:
        id:
          type: string
          example: b70701f4-d7b1-4795-a8ee-b09cdb5b4453
          description: The unique identifier of the vendor of this contract template
        name:
          type: string
          example: Fireblocks
          description: The name of the vendor of this contract template
      required:
      - id
      - name
    ContractUploadRequest:
      type: object
      properties:
        name:
          type: string
          example: My Contract
          description: The name of the contract template
        description:
          type: string
          example: an ERC20 implementation
          description: A short description of the contract template
        longDescription:
          type: string
          example: "a full ERC20 implementation, containing the following:\n\n - mint\n - burn\n"
          description: "A full description of the contract template. May contain \n to break the lines"
        bytecode:
          type: string
          description: The compiled artifact of this smart contract. Used for deployment of this contract template
        sourcecode:
          type: string
          description: The source code of the contract. Optional.
        type:
          enum:
          - FUNGIBLE_TOKEN
          - NON_FUNGIBLE_TOKEN
          - TOKEN_UTILITY
          type: string
          example: FUNGIBLE_TOKEN
          description: The type of the contract template
        docs:
          example:
            details: This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.
            errors:
              ERC1967NonPayable():
              - details: An upgrade function sees `msg.value > 0` that may be lost.
            events:
              Upgraded(address):
                details: Emitted when the implementation is upgraded.
            kind: dev
            methods:
              constructor:
                details: 'Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it''s used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.'
            version: 1
          description: A `natspec` compliant documentation json. Can be retrieved from the output json after compilation
          allOf:
          - $ref: '#/components/schemas/ContractDoc'
        abi:
          type: array
          items:
            example:
            - inputs:
              - internalType: address
                name: implementation
                type: address
              - internalType: bytes
                name: _data
                type: bytes
              stateMutability: payable
              type: constructor
            description: The abi of the contract template. Necessary for displaying and for after deployment encoding
            type: array
            items:
              $ref: '#/components/schemas/AbiFunction'
        attributes:
          example:
            useCases:
            - Stablecoin
            - CBDC
            standards:
            - ERC-20
            - ERC-1400
            auditor:
              name: MyAuditor
              imageURL: https://my-images.com/my-image.jpg
              link: https://my-auditor.com/my-audit-report
          description: The attributes related to this contract template. It will be displayed in the tokenization page
          allOf:
          - $ref: '#/components/schemas/ContractAttributes'
      required:
      - name
      - description
      - bytecode
      - abi
    FunctionDoc:
      type: object
      properties:
        details:
          type: string
          description: A description of the function
        params:
          type: object
          additionalProperties:
            type: string
          description: A description of the function parameters
        returns:
          type: object
          additionalProperties:
            type: string
          description: A description of the function return values. only for read functions
    ContractDoc:
      type: object
      properties:
        details:
          type: string
          example: A token that can be minted and burned
          description: A description of the contract
        events:
          type: string
          example: 'Upgraded(address): {"details": "Emitted when the implementation is upgraded."}'
          description: A description of the contract`s events
        kind:
          type: string
          example: dev
          description: Is it devdoc or userdoc
        methods:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/FunctionDoc'
          example:
            constructor:
              details: Initializes the contract
          description: The description of the contract functions
        version:
          type: string
          example: '1'
          description: The version of the contract
      required:
      - kind
      - methods
      - version
    AbiFunction:
      type: object
      properties:
        name:
          type: string
          example: mint
          description: The name of the contract function as it appears in the ABI
        stateMutability:
          type: string
          example: pure
          enum:
          - pure
          - view
          - nonpayable
          - payable
          description: The state mutability of the contract function as it appears in the ABI
        type:
          type: string
          example: constructor
          description: The type if the function
          enum:
          - function
          - constructor
        inputs:
          description: The parameters that this function/constructor posses
          items:
            $ref: '#/components/schemas/Parameter'
          type: array
        outputs:
          description: The parameters that this 'read' function returns
          items:
            $ref: '#/components/schemas/Parameter'
          type: array
        description:
          type: string
          description: The documentation of this function (if has any)
      required:
      - type
      - inputs
    ContractDeployRequest:
      type: object
      properties:
        assetId:
          type: string
          example: ETH_TEST5
          description: The base asset identifier of the blockchain you want to deploy to
        vaultAccountId:
          type: string
          example: '0'
          description: The vault account id you wish to deploy from
        constructorParameters:
          description: The constructor parameters of this contract
          items:
            $ref: '#/components/schemas/ParameterWithValue'
          example:
          - internalType: string
            name: name_
            type: string
            value: TokenName
          - internalType: string
            name: symbol_
            type: string
            value: TokenSymbol
          type: array
      required:
      - assetId
      - vaultAccountId
    LeanContractDto:
      type: object
      properties:
        id:
          type: string
          example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
          description: The unique identifier of the contract template
        name:
          type: string
          example: My Contract
          description: The name of the contract template
        description:
          type: string
          example: an ERC20 implementation
          description: A short description of the contract template
        attributes:
          example:
            useCases:
            - Stablecoin
            - CBDC
            standards:
            - ERC-20
            - ERC-1400
            auditor:
              name: MyAuditor
              imageURL: https://my-images.com/my-image.jpg
              link: https://my-auditor.com/my-audit-report
          description: The attributes related to this contract template. It will be displayed in the tokenization page
          allOf:
          - $ref: '#/components/schemas/ContractAttributes'
        isPublic:
          type: boolean
          example: true
          description: Is this a contract that is viewable by all fireblocks's users or is it visible only for this workspace
        canDeploy:
          type: boolean
          example: true
          description: True if the workspace allowed to deploy this contract, false otherwise
        owner:
          type: string
          example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
          description: The workspace id of the owner of this contract template. If it's a private contract, only this workspace will be allowed to deploy it
        vendor:
          description: The details of the vendor of this contract template. Applicable only for public contract templates
          allOf:
          - $ref: '#/components/schemas/VendorDto'
        type:
          type: string
          enum:
          - FUNGIBLE_TOKEN
          - NON_FUNGIBLE_TOKEN
          - TOKEN_UTILITY
      required:
      - id
      - name
      - description
      - isPublic
    LeanAbiFunction:
      type: object
      properties:
        name:
          type: string
          example: initialize
          description: The function name
        inputs:
          description: The function inputs
          type: array
          items:
            $ref: '#/components/schemas/ParameterWithValue'
      required:
      - inputs
    ContractAttributes:
      type: object
      properties:
        useCases:
          type: array
          items:
            type: string
        standards:
          type: array
          items:
            type: string
        auditor:
          $ref: '#/components/schemas/AuditorData'
      required:
      - useCases
      - standards
      - auditor
    Parameter:
      type: object
      properties:
        name:
          type: string
          example: _name
          description: The name of the parameter as it appears in the ABI
        description:
          type: string
          example: The name of the token
          description: A description of the parameter, fetched from the devdoc of this contract
        internalType:
          type: string
          example: string
          

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/openapi/fireblocks-contract-templates-api-openapi.yml