---
title: "Save contract ABI"
method: POST
path: "/tokenization/contracts/abi"
tags: ["Deployed Contracts"]
---

# Save contract ABI

`POST /tokenization/contracts/abi`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/tokenization/contracts/abi`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/tokenization/contracts/abi/post.ts> (a function with typed inputs; its response is checked against the schema)

Save contract ABI for the tenant

## Headers

- `Idempotency-Key` string

## Request body

- AddAbiRequestDto
  - `contractAddress` string, required: The address of deployed contract
  - `baseAssetId` string, required: The blockchain base assetId
  - `abi` AbiFunction[], required: The ABI of the contract
    - `name` string: The name of the contract function as it appears in the ABI
    - `stateMutability` 'pure' | 'view' | 'nonpayable' | 'payable': The state mutability of the contract function as it appears in the ABI
    - `type` 'constructor' | 'function' | 'error' | 'event' | 'receive' | 'fallback', required: The type of the function
    - `inputs` Parameter[]: The parameters that this function/constructor posses
      - `name` string, required: The name of the parameter as it appears in the ABI
      - `description` string: A description of the parameter, fetched from the devdoc of this contract
      - `internalType` string: The internal type of the parameter as it appears in the ABI
      - `type` string, required: The type of the parameter as it appears in the ABI
      - `components` Parameter[]
    - `outputs` Parameter[]: The parameters that this 'read' function returns
      - `name` string, required: The name of the parameter as it appears in the ABI
      - `description` string: A description of the parameter, fetched from the devdoc of this contract
      - `internalType` string: The internal type of the parameter as it appears in the ABI
      - `type` string, required: The type of the parameter as it appears in the ABI
      - `components` Parameter[]
    - `description` string: The documentation of this function (if has any)
  - `name` string: The name of the contract

## Response `200`

Contract ABI created (or updated) for the tenant

- ContractWithAbiDto
  - `contractAddress` string, required: The address of the contract
  - `baseAssetId` string, required: The blockchain base assetId
  - `name` string, required: The name of the contract
  - `abi` AbiFunction[], required: The ABI of the contract
    - `name` string: The name of the contract function as it appears in the ABI
    - `stateMutability` 'pure' | 'view' | 'nonpayable' | 'payable': The state mutability of the contract function as it appears in the ABI
    - `type` 'constructor' | 'function' | 'error' | 'event' | 'receive' | 'fallback', required: The type of the function
    - `inputs` Parameter[]: The parameters that this function/constructor posses
      - `name` string, required: The name of the parameter as it appears in the ABI
      - `description` string: A description of the parameter, fetched from the devdoc of this contract
      - `internalType` string: The internal type of the parameter as it appears in the ABI
      - `type` string, required: The type of the parameter as it appears in the ABI
      - `components` Parameter[]
    - `outputs` Parameter[]: The parameters that this 'read' function returns
      - `name` string, required: The name of the parameter as it appears in the ABI
      - `description` string: A description of the parameter, fetched from the devdoc of this contract
      - `internalType` string: The internal type of the parameter as it appears in the ABI
      - `type` string, required: The type of the parameter as it appears in the ABI
      - `components` Parameter[]
    - `description` string: The documentation of this function (if has any)
  - `isProxy` boolean: Whether the contract is a proxy contract
  - `implementation` string: The implementation contract address
  - `isPublic` boolean, required: Whether the contract ABI is public

## Other responses

- `409`: Contract ABI already exists.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
