# SmartAccountAuthenticator | @aa-sdk/core

> Extends the  SmartAccountSigner interface with authentication.

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

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

Defined in: [aa-sdk/core/src/signer/types.ts:18](https://github.com/alchemyplatform/aa-sdk/blob/main/aa-sdk/core/src/signer/types.ts#L18)

Extends the SmartAccountSigner interface with authentication.

## Extends

- [`SmartAccountSigner`](SmartAccountSigner)\<`Inner`>

## Type Parameters

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

  <tbody>
    <tr>
      <td>
        `AuthParams`
      </td>

      <td>
        ‐
      </td>

      <td>
        the generic type of the authentication parameters
      </td>
    </tr>

    <tr>
      <td>
        `AuthDetails`
      </td>

      <td>
        ‐
      </td>

      <td>
        the generic type of the authentication details
      </td>
    </tr>

    <tr>
      <td>
        `Inner`
      </td>

      <td>
        `any`
      </td>

      <td>
        the generic type of the inner client that the signer wraps to provide functionality such as signing, etc.
      </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="authenticate" /> `authenticate`
      </td>

      <td>
        (`params`) => `Promise`\<`AuthDetails`>
      </td>
    </tr>

    <tr>
      <td>
        <a id="getaddress" /> `getAddress`
      </td>

      <td>
        () => `Promise`\<`` `0x${string}` ``>
      </td>
    </tr>

    <tr>
      <td>
        <a id="getauthdetails" /> `getAuthDetails`
      </td>

      <td>
        () => `Promise`\<`AuthDetails`>
      </td>
    </tr>

    <tr>
      <td>
        <a id="inner-1" /> `inner`
      </td>

      <td>
        `Inner`
      </td>
    </tr>

    <tr>
      <td>
        <a id="signauthorization" /> `signAuthorization?`
      </td>

      <td>
        (`unsignedAuthorization`) => `Promise`\<[`SignedAuthorization`](https://viem.sh)\<`number`>>
      </td>
    </tr>

    <tr>
      <td>
        <a id="signertype" /> `signerType`
      </td>

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

    <tr>
      <td>
        <a id="signmessage" /> `signMessage`
      </td>

      <td>
        (`message`) => `Promise`\<`` `0x${string}` ``>
      </td>
    </tr>

    <tr>
      <td>
        <a id="signtypeddata" /> `signTypedData`
      </td>

      <td>
        \<`TTypedData`, `TPrimaryType`>(`params`) => `Promise`\<`` `0x${string}` ``>
      </td>
    </tr>

  </tbody>
</table>