# Plugin | @account-kit/smart-contracts

> Overview of Plugin from @account-kit/smart-contracts

> For the complete documentation index, see [llms.txt](/docs/llms.txt).

{/* This file is auto-generated by TypeDoc. Do not edit manually. */}

```ts
type Plugin<TAbi> = object;
```

Defined in: [account-kit/smart-contracts/src/msca/plugins/types.ts:11](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/smart-contracts/src/msca/plugins/types.ts#L11)

## Type Parameters

<table>
  <thead>
    <tr>
      <th align="left">Type Parameter</th>
      <th align="left">Default type</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        `TAbi` *extends* [`Abi`](https://abitype.dev)
      </td>

      <td>
        [`Abi`](https://abitype.dev)
      </td>
    </tr>

  </tbody>
</table>

## Properties

<table>
  <thead>
    <tr>
      <th align="left">Property</th>
      <th align="left">Type</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <a id="getcontract" /> `getContract`
      </td>

      <td>
        \<`C`>(`client`, `address?`) => [`GetContractReturnType`](https://viem.sh)\<`TAbi`, [`PublicClient`](https://viem.sh), [`Address`](https://abitype.dev)>
      </td>
    </tr>

    <tr>
      <td>
        <a id="meta" /> `meta`
      </td>

      <td>
        `object`
      </td>
    </tr>

    <tr>
      <td>
        `meta.addresses`
      </td>

      <td>
        `Record`\<`number`, [`Address`](https://abitype.dev)>
      </td>
    </tr>

    <tr>
      <td>
        `meta.name`
      </td>

      <td>
        `string`
      </td>
    </tr>

    <tr>
      <td>
        `meta.version`
      </td>

      <td>
        `string`
      </td>
    </tr>

  </tbody>
</table>