# getSignerType | @account-kit/smart-contracts

> Overview of the getSignerType function 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
function getSignerType<TTransport, TChain>(params): Promise<SignerType>;
```

Defined in: [account-kit/smart-contracts/src/msca/plugins/multisig/utils/getSignerType.ts:51](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/smart-contracts/src/msca/plugins/multisig/utils/getSignerType.ts#L51)

Determines the type of signer (Externally Owned Account (EOA) or CONTRACT) based on the provided client, signature, and signer.

## Example

```ts
import { getSignerType } from "@account-kit/smart-contracts";
import { LocalAccountSigner } from "@aa-sdk/core";
import { createPublicClient, generatePrivateKey } from "viem";

const signer = LocalAccountSigner.privateKeyToAccountSigner(generatePrivateKey());
const client = createPublicClient(...);
const signature = signer.signMessage("Hello World");

const signerType = await getSignerType({ client, signature, signer }); // EOA
```

## Type Parameters

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

  <tbody>
    <tr>
      <td>
        `TTransport` *extends* [`Transport`](https://viem.sh)
      </td>

      <td>
        [`Transport`](https://viem.sh)
      </td>
    </tr>

    <tr>
      <td>
        `TChain` *extends* `undefined` | [`Chain`](https://viem.sh)
      </td>

      <td>
        `undefined` | [`Chain`](https://viem.sh)
      </td>
    </tr>

  </tbody>
</table>

## Parameters

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

  <tbody>
    <tr>
      <td>
        `params`
      </td>

      <td>
        `GetSignerTypeParams`\<`TTransport`, `TChain`>
      </td>

      <td>
        the parameters including the client, signature, and signer
      </td>
    </tr>

  </tbody>
</table>

## Returns

`Promise`\<`SignerType`>

A promise that resolves to the signer type, which is either "EOA" or "CONTRACT"