Fireblocks Smart Contracts API

Deploy contract templates, manage deployed contracts, execute read/write contract interactions, and broker dApp connections via WalletConnect. Powers the Fireblocks DeFi security suite — every contract call passes the workspace Policy Engine and is simulated before MPC signing.

OpenAPI Specification

fireblocks-contracts-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Smart Contracts 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: [email protected]
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/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);
  /tokenization/contracts:
    get:
      operationId: getDeployedContracts
      summary: List deployed contracts data
      description: 'Return a filtered lean representation of the deployed contracts data on all blockchains (paginated).

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - 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: contractAddress
        required: false
        in: query
        description: The contract's onchain address
        example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
        schema:
          type: string
      - name: baseAssetId
        description: The blockchain asset ID
        example: ETH
        required: false
        in: query
        schema:
          type: string
      - name: contractTemplateId
        required: false
        description: The contract template identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        in: query
        schema:
          type: string
      x-readme:
        code-samples:
        - language: javascript
          code: const deployedContracts = await fireblocks.getContractsByFilter(templateId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<DeployedContractsPaginatedResponse>> = fireblocks.deployedContracts.getDeployedContracts(deployedContractsApiGetDeployedContractsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<DeployedContractsPaginatedResponse>> response = fireblocks.deployedContracts().getDeployedContracts(pageCursor,
            pageSize, contractAddress, baseAssetId, contractTemplateId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor, page_size, contract_address,
            base_asset_id, contract_template_id);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: Deployed contracts fetched successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployedContractsPaginatedResponse'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Deployed Contracts
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<DeployedContractsPaginatedResponse>> = fireblocks.deployedContracts.getDeployedContracts(deployedContractsApiGetDeployedContractsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<DeployedContractsPaginatedResponse>> response = fireblocks.deployedContracts().getDeployedContracts(pageCursor,
          pageSize, contractAddress, baseAssetId, contractTemplateId);
      - lang: Python
        source: response = fireblocks.deployed_contracts.get_deployed_contracts(page_cursor, page_size, contract_address,
          base_asset_id, contract_template_id);
  /tokenization/contracts/{id}:
    get:
      operationId: getDeployedContractById
      summary: Return deployed contract data by id
      description: 'Return deployed contract data by id.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - name: id
        required: true
        in: path
        description: The deployed contract data identifier
        example: b70701f4-d7b1-4795-a8ee-b09cdb5b850d
        schema:
          type: string
      x-readme:
        code-samples:
        - language: javascript
          code: const deployedContracts = await fireblocks.getContractById(contractId);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<DeployedContractResponseDto>> = fireblocks.deployedContracts.getDeployedContractById(deployedContractsApiGetDeployedContractByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<DeployedContractResponseDto>> response = fireblocks.deployedContracts().getDeployedContractById(id);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployedContractResponseDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Deployed Contracts
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<DeployedContractResponseDto>> = fireblocks.deployedContracts.getDeployedContractById(deployedContractsApiGetDeployedContractByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<DeployedContractResponseDto>> response = fireblocks.deployedContracts().getDeployedContractById(id);
      - lang: Python
        source: response = fireblocks.deployed_contracts.get_deployed_contract_by_id(id);
  /tokenization/contracts/{assetId}/{contractAddress}:
    get:
      operationId: getDeployedContractByAddress
      summary: Return deployed contract data
      description: 'Return deployed contract data by blockchain native asset id and contract address.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - name: contractAddress
        required: true
        in: path
        description: The contract's onchain address
        example: '0xC2c4e1Db41F0bB97996D0eD0542D2170d146FB66'
        schema:
          type: string
      - name: assetId
        description: The blockchain base asset ID
        example: ETH
        required: true
        in: path
        schema:
          type: string
      x-readme:
        code-samples:
        - language: javascript
          code: const deployedContract = await fireblocks.getContractByAddress(baseAssetId, contractAddress);
          name: Fireblocks SDK Javascript example
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<DeployedContractResponseDto>> = fireblocks.deployedContracts.getDeployedContractByAddress(deployedContractsApiGetDeployedContractByAddressRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<DeployedContractResponseDto>> response = fireblocks.deployedContracts().getDeployedContractByAddress(contractAddress,
            assetId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address, asset_id);
          name: Fireblocks SDK Python example
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployedContractResponseDto'
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Deployed Contracts
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<DeployedContractResponseDto>> = fireblocks.deployedContracts.getDeployedContractByAddress(deployedContractsApiGetDeployedContractByAddressRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<DeployedContractResponseDto>> response = fireblocks.deployedContracts().getDeployedContractByAddress(contractAddress,
          assetId);
      - lang: Python
        source: response = fireblocks.deployed_contracts.get_deployed_contract_by_address(contract_address, asset_id);
  /tokenization/contracts/fetch_abi:
    post:
      operationId: fetchContractAbi
      summary: Fetch the contract ABI
      description: 'Fetch the ABI. If not found fetch the ABI from the block explorer.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FetchAbiRequestDto'
      responses:
        '200':
          description: Contract ABI found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractWithAbiDto'
        '404':
          description: Contract ABI not found
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Deployed Contracts
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ContractWithAbiDto>> = fireblocks.deployedContracts.fetchContractAbi(deployedContractsApiFetchContractAbiRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ContractWithAbiDto>> response = fireblocks.deployedContracts().fetchContractAbi(fetchAbiRequestDto,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<ContractWithAbiDto>> = fireblocks.deployedContracts.fetchContractAbi(deployedContractsApiFetchContractAbiRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<ContractWithAbiDto>> response = fireblocks.deployedContracts().fetchContractAbi(fetchAbiRequestDto,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.deployed_contracts.fetch_contract_abi(fetch_abi_request_dto, idempotency_key);
  /tokenization/contracts/abi:
    post:
      operationId: addContractABI
      summary: Save contract ABI
      description: 'Save contract ABI for the tenant.

        </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/AddAbiRequestDto'
      responses:
        '200':
          description: Contract ABI created (or updated) for the tenant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractWithAbiDto'
        '409':
          description: Contract ABI already exists.
        default:
          $ref: '#/components/responses/Error'
      tags:
      - Deployed Contracts
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<ContractWithAbiDto>> = fireblocks.deployedContracts.addContractABI(deployedContractsApiAddContractABIRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<ContractWithAbiDto>> response = fireblocks.deployedContracts().addContractABI(addAbiRequestDto,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.deployed_contracts.add_contract_a_b_i(add_abi_request_dto, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<Cont

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