<!-- source: https://secondlayer.tools/docs/api-reference#contract-abi-object -->

## The Contract ABI object

A Clarity contract interface, exactly as the Stacks node's `/v2/contracts/interface` returns it.

| Field | Type | Description |
| --- | --- | --- |
| `functions` | array of object | Every function: `name`, `access` (`public`, `read_only` or `private`), `args` and `outputs`. |
| `variables` | array of object | Data vars and constants: `name`, `type`, and `access` (`variable` or `constant`). |
| `maps` | array of object | Data maps: `name`, `key` type and `value` type. |
| `fungible_tokens` | array of object | Fungible tokens the contract defines, by `name`. |
| `non_fungible_tokens` | array of object | Non-fungible tokens the contract defines: `name` and `type`. |
| `epoch` | string | Stacks epoch the contract was deployed in, e.g. `Epoch2_05`. |
| `clarity_version` | string | Clarity version it was deployed with, e.g. `Clarity1`. |

```json
{
  "functions": [
    {
      "name": "check-is-owner",
      "access": "private",
      "args": [],
      "outputs": {
        "type": {
          "response": {
            "ok": "bool",
            "error": "uint128"
          }
        }
      }
    },
    {
      "name": "start-zeus",
      "access": "public",
      "args": [
        {
          "name": "dx",
          "type": "uint128"
        },
        {
          "name": "min-dy",
          "type": "uint128"
        },
        {
          "name": "offset",
          "type": "uint128"
        }
      ],
      "outputs": {
        "type": {
          "response": {
            "ok": "bool",
            "error": "uint128"
          }
        }
      }
    }
  ],
  "variables": [
    {
      "name": "ERR-NOT-AUTHORIZED",
      "type": {
        "response": {
          "ok": "none",
          "error": "uint128"
        }
      },
      "access": "constant"
    },
    {
      "name": "contract-owner",
      "type": "principal",
      "access": "variable"
    }
  ],
  "maps": [],
  "fungible_tokens": [],
  "non_fungible_tokens": [],
  "epoch": "Epoch2_05",
  "clarity_version": "Clarity1"
}
```
