# AlchemyServerSigner | @account-kit/signer

> AlchemyServerSigner is a signer that can sign messages and typed data using an access key. It extends the SmartAccountSigner interface and uses the ServerSignerClient to sign requests. Primarily intended to be used server-side.

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

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

Defined in: [account-kit/signer/src/serverSigner.ts:31](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L31)

AlchemyServerSigner is a signer that can sign messages and typed data using an access key.
It extends the SmartAccountSigner interface and uses the ServerSignerClient to sign requests.
Primarily intended to be used server-side.

## Implements

- `SmartAccountSigner`

## Constructors

### Constructor

```ts
new AlchemyServerSigner(client): AlchemyServerSigner;
```

Defined in: [account-kit/signer/src/serverSigner.ts:40](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L40)

Creates an instance of AlchemyServerSigner.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `client`
      </td>

      <td>
        [`ServerSignerClient`](ServerSignerClient)
      </td>

      <td>
        The underlying signer client
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`AlchemyServerSigner`

## Properties

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

  <tbody>
    <tr>
      <td>
        <a id="inner" /> `inner`
      </td>

      <td>
        [`ServerSignerClient`](ServerSignerClient)
      </td>

      <td>
        `undefined`
      </td>
    </tr>

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

      <td>
        `string`
      </td>

      <td>
        `"alchemy-server-signer"`
      </td>
    </tr>

  </tbody>
</table>

## Methods

### getAddress()

```ts
getAddress(): Promise<`0x${string}`>;
```

Defined in: [account-kit/signer/src/serverSigner.ts:50](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L50)

Gets the address of the user from the signer client.

#### Returns

`Promise`\<`` `0x${string}` ``>

The address of the user

#### Throws

If the user cannot be retrieved from the signer client

#### Implementation of

```ts
SmartAccountSigner.getAddress;
```

---

### signAuthorization()

```ts
signAuthorization(unsignedAuthorization): Promise<SignedAuthorization<number>>;
```

Defined in: [account-kit/signer/src/serverSigner.ts:86](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L86)

Signs an authorization using the inner client.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `unsignedAuthorization`
      </td>

      <td>
        `AuthorizationRequest`\<`number`>
      </td>

      <td>
        The unsigned authorization to sign
      </td>
    </tr>

  </tbody>
</table>

#### Returns

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

The signed authorization

#### Implementation of

```ts
SmartAccountSigner.signAuthorization;
```

---

### signMessage()

```ts
signMessage(msg): Promise<`0x${string}`>;
```

Defined in: [account-kit/signer/src/serverSigner.ts:61](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L61)

Signs a message using the inner client.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `msg`
      </td>

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

      <td>
        The message to sign
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`` `0x${string}` ``>

The signed message

#### Implementation of

```ts
SmartAccountSigner.signMessage;
```

---

### signTypedData()

```ts
signTypedData<TTypedData, TPrimaryType>(params): Promise<`0x${string}`>;
```

Defined in: [account-kit/signer/src/serverSigner.ts:72](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L72)

Signs typed data using the inner client.

#### Type Parameters

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

  <tbody>
    <tr>
      <td>
        `TTypedData` *extends*
        | \{
        \[`key`: `string`]: readonly [`TypedDataParameter`](https://abitype.dev)\[];
        \[`key`: `` `string[${string}]` ``]: `undefined`;
        \[`key`: `` `function[${string}]` ``]: `undefined`;
        \[`key`: `` `address[${string}]` ``]: `undefined`;
        \[`key`: `` `bool[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes1[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes2[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes3[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes4[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes5[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes6[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes7[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes8[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes9[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes10[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes11[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes12[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes13[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes14[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes15[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes16[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes17[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes18[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes19[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes20[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes21[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes22[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes23[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes24[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes25[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes26[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes27[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes28[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes29[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes30[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes31[${string}]` ``]: `undefined`;
        \[`key`: `` `bytes32[${string}]` ``]: `undefined`;
        \[`key`: `` `int[${string}]` ``]: `undefined`;
        \[`key`: `` `int8[${string}]` ``]: `undefined`;
        \[`key`: `` `int16[${string}]` ``]: `undefined`;
        \[`key`: `` `int24[${string}]` ``]: `undefined`;
        \[`key`: `` `int32[${string}]` ``]: `undefined`;
        \[`key`: `` `int40[${string}]` ``]: `undefined`;
        \[`key`: `` `int48[${string}]` ``]: `undefined`;
        \[`key`: `` `int56[${string}]` ``]: `undefined`;
        \[`key`: `` `int64[${string}]` ``]: `undefined`;
        \[`key`: `` `int72[${string}]` ``]: `undefined`;
        \[`key`: `` `int80[${string}]` ``]: `undefined`;
        \[`key`: `` `int88[${string}]` ``]: `undefined`;
        \[`key`: `` `int96[${string}]` ``]: `undefined`;
        \[`key`: `` `int104[${string}]` ``]: `undefined`;
        \[`key`: `` `int112[${string}]` ``]: `undefined`;
        \[`key`: `` `int120[${string}]` ``]: `undefined`;
        \[`key`: `` `int128[${string}]` ``]: `undefined`;
        \[`key`: `` `int136[${string}]` ``]: `undefined`;
        \[`key`: `` `int144[${string}]` ``]: `undefined`;
        \[`key`: `` `int152[${string}]` ``]: `undefined`;
        \[`key`: `` `int160[${string}]` ``]: `undefined`;
        \[`key`: `` `int168[${string}]` ``]: `undefined`;
        \[`key`: `` `int176[${string}]` ``]: `undefined`;
        \[`key`: `` `int184[${string}]` ``]: `undefined`;
        \[`key`: `` `int192[${string}]` ``]: `undefined`;
        \[`key`: `` `int200[${string}]` ``]: `undefined`;
        \[`key`: `` `int208[${string}]` ``]: `undefined`;
        \[`key`: `` `int216[${string}]` ``]: `undefined`;
        \[`key`: `` `int224[${string}]` ``]: `undefined`;
        \[`key`: `` `int232[${string}]` ``]: `undefined`;
        \[`key`: `` `int240[${string}]` ``]: `undefined`;
        \[`key`: `` `int248[${string}]` ``]: `undefined`;
        \[`key`: `` `int256[${string}]` ``]: `undefined`;
        \[`key`: `` `uint[${string}]` ``]: `undefined`;
        \[`key`: `` `uint8[${string}]` ``]: `undefined`;
        \[`key`: `` `uint16[${string}]` ``]: `undefined`;
        \[`key`: `` `uint24[${string}]` ``]: `undefined`;
        \[`key`: `` `uint32[${string}]` ``]: `undefined`;
        \[`key`: `` `uint40[${string}]` ``]: `undefined`;
        \[`key`: `` `uint48[${string}]` ``]: `undefined`;
        \[`key`: `` `uint56[${string}]` ``]: `undefined`;
        \[`key`: `` `uint64[${string}]` ``]: `undefined`;
        \[`key`: `` `uint72[${string}]` ``]: `undefined`;
        \[`key`: `` `uint80[${string}]` ``]: `undefined`;
        \[`key`: `` `uint88[${string}]` ``]: `undefined`;
        \[`key`: `` `uint96[${string}]` ``]: `undefined`;
        \[`key`: `` `uint104[${string}]` ``]: `undefined`;
        \[`key`: `` `uint112[${string}]` ``]: `undefined`;
        \[`key`: `` `uint120[${string}]` ``]: `undefined`;
        \[`key`: `` `uint128[${string}]` ``]: `undefined`;
        \[`key`: `` `uint136[${string}]` ``]: `undefined`;
        \[`key`: `` `uint144[${string}]` ``]: `undefined`;
        \[`key`: `` `uint152[${string}]` ``]: `undefined`;
        \[`key`: `` `uint160[${string}]` ``]: `undefined`;
        \[`key`: `` `uint168[${string}]` ``]: `undefined`;
        \[`key`: `` `uint176[${string}]` ``]: `undefined`;
        \[`key`: `` `uint184[${string}]` ``]: `undefined`;
        \[`key`: `` `uint192[${string}]` ``]: `undefined`;
        \[`key`: `` `uint200[${string}]` ``]: `undefined`;
        \[`key`: `` `uint208[${string}]` ``]: `undefined`;
        \[`key`: `` `uint216[${string}]` ``]: `undefined`;
        \[`key`: `` `uint224[${string}]` ``]: `undefined`;
        \[`key`: `` `uint232[${string}]` ``]: `undefined`;
        \[`key`: `` `uint240[${string}]` ``]: `undefined`;
        \[`key`: `` `uint248[${string}]` ``]: `undefined`;
        \[`key`: `` `uint256[${string}]` ``]: `undefined`;
        `string?`: `undefined`;
        `address?`: `undefined`;
        `bool?`: `undefined`;
        `bytes?`: `undefined`;
        `bytes1?`: `undefined`;
        `bytes2?`: `undefined`;
        `bytes3?`: `undefined`;
        `bytes4?`: `undefined`;
        `bytes5?`: `undefined`;
        `bytes6?`: `undefined`;
        `bytes7?`: `undefined`;
        `bytes8?`: `undefined`;
        `bytes9?`: `undefined`;
        `bytes10?`: `undefined`;
        `bytes11?`: `undefined`;
        `bytes12?`: `undefined`;
        `bytes13?`: `undefined`;
        `bytes14?`: `undefined`;
        `bytes15?`: `undefined`;
        `bytes16?`: `undefined`;
        `bytes17?`: `undefined`;
        `bytes18?`: `undefined`;
        `bytes19?`: `undefined`;
        `bytes20?`: `undefined`;
        `bytes21?`: `undefined`;
        `bytes22?`: `undefined`;
        `bytes23?`: `undefined`;
        `bytes24?`: `undefined`;
        `bytes25?`: `undefined`;
        `bytes26?`: `undefined`;
        `bytes27?`: `undefined`;
        `bytes28?`: `undefined`;
        `bytes29?`: `undefined`;
        `bytes30?`: `undefined`;
        `bytes31?`: `undefined`;
        `bytes32?`: `undefined`;
        `int8?`: `undefined`;
        `int16?`: `undefined`;
        `int24?`: `undefined`;
        `int32?`: `undefined`;
        `int40?`: `undefined`;
        `int48?`: `undefined`;
        `int56?`: `undefined`;
        `int64?`: `undefined`;
        `int72?`: `undefined`;
        `int80?`: `undefined`;
        `int88?`: `undefined`;
        `int96?`: `undefined`;
        `int104?`: `undefined`;
        `int112?`: `undefined`;
        `int120?`: `undefined`;
        `int128?`: `undefined`;
        `int136?`: `undefined`;
        `int144?`: `undefined`;
        `int152?`: `undefined`;
        `int160?`: `undefined`;
        `int168?`: `undefined`;
        `int176?`: `undefined`;
        `int184?`: `undefined`;
        `int192?`: `undefined`;
        `int200?`: `undefined`;
        `int208?`: `undefined`;
        `int216?`: `undefined`;
        `int224?`: `undefined`;
        `int232?`: `undefined`;
        `int240?`: `undefined`;
        `int248?`: `undefined`;
        `int256?`: `undefined`;
        `uint8?`: `undefined`;
        `uint16?`: `undefined`;
        `uint24?`: `undefined`;
        `uint32?`: `undefined`;
        `uint40?`: `undefined`;
        `uint48?`: `undefined`;
        `uint56?`: `undefined`;
        `uint64?`: `undefined`;
        `uint72?`: `undefined`;
        `uint80?`: `undefined`;
        `uint88?`: `undefined`;
        `uint96?`: `undefined`;
        `uint104?`: `undefined`;
        `uint112?`: `undefined`;
        `uint120?`: `undefined`;
        `uint128?`: `undefined`;
        `uint136?`: `undefined`;
        `uint144?`: `undefined`;
        `uint152?`: `undefined`;
        `uint160?`: `undefined`;
        `uint168?`: `undefined`;
        `uint176?`: `undefined`;
        `uint184?`: `undefined`;
        `uint192?`: `undefined`;
        `uint200?`: `undefined`;
        `uint208?`: `undefined`;
        `uint216?`: `undefined`;
        `uint224?`: `undefined`;
        `uint232?`: `undefined`;
        `uint240?`: `undefined`;
        `uint248?`: `undefined`;
        `uint256?`: `undefined`;
        }
        | `Record`\<`string`, `unknown`>
      </td>

      <td>
        ‐
      </td>
    </tr>

    <tr>
      <td>
        `TPrimaryType` *extends* `string` | `number` | `symbol`
      </td>

      <td>
        keyof `TTypedData`
      </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>
        [`TypedDataDefinition`](https://viem.sh)\<`TTypedData`, `TPrimaryType`>
      </td>

      <td>
        The typed data to sign
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`` `0x${string}` ``>

The signed typed data

#### Implementation of

```ts
SmartAccountSigner.signTypedData;
```

---

### toSolanaSigner()

```ts
toSolanaSigner(): SolanaSigner;
```

Defined in: [account-kit/signer/src/serverSigner.ts:122](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/serverSigner.ts#L122)

Creates a new instance of `SolanaSigner` using the inner client.

#### Example

```ts
import { AlchemyServerSigner } from "@account-kit/signer";

const signer = await createServerSigner({
  auth: { accessKey },
  connection: {
    apiKey: "alchemy-api-key",
  },
});

const solanaSigner = signer.toSolanaSigner();
```

#### Returns

[`SolanaSigner`](SolanaSigner)

A new instance of `SolanaSigner`