# ServerSignerClient | @account-kit/signer

> ServerSignerClient is a client for signing messages using an access key. It extends the BaseSignerClient and uses the ApiKeyStamper for signing. 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/client/server.ts:34](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/server.ts#L34)

ServerSignerClient is a client for signing messages using an access key.
It extends the BaseSignerClient and uses the ApiKeyStamper for signing.
Primarily intended to be used server-side.

## Extends

- [`BaseSignerClient`](BaseSignerClient)\<`undefined`>

## Constructors

### Constructor

```ts
new ServerSignerClient(params): ServerSignerClient;
```

Defined in: [account-kit/signer/src/client/server.ts:43](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/server.ts#L43)

Creates an instance of ServerSignerClient.

#### 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>
        `ServerSignerClientParams`
      </td>

      <td>
        The parameters for the client, including the access key and connection configuration
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`ServerSignerClient`

#### Overrides

[`BaseSignerClient`](BaseSignerClient).[`constructor`](BaseSignerClient#constructor)

## Properties

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

  <tbody>
    <tr>
      <td>
        <a id="completeauthwithbundle" /> `completeAuthWithBundle`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="eventemitter" /> `eventEmitter`
      </td>

      <td>
        `EventEmitter`\<[`AlchemySignerClientEvents`](../type-aliases/AlchemySignerClientEvents)>
      </td>

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

    <tr>
      <td>
        <a id="exportwallet" /> `exportWallet`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="getoauthconfig" /> `getOauthConfig`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="getwebauthnattestation" /> `getWebAuthnAttestation`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="initemailauth" /> `initEmailAuth`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="initsessionstamper" /> `initSessionStamper`
      </td>

      <td>
        () => `never`
      </td>

      <td>
        Initializes the session stamper and returns its public key.
      </td>
    </tr>

    <tr>
      <td>
        <a id="initsmsauth" /> `initSmsAuth`
      </td>

      <td>
        () => `never`
      </td>

      <td>
        Unimplemented functions for server signer.
        Required to extend the BaseSignerClient class.
      </td>
    </tr>

    <tr>
      <td>
        <a id="initwebauthnstamper" /> `initWebauthnStamper`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="oauthconfig" /> `oauthConfig`
      </td>

      <td>
        `undefined` | [`OauthConfig`](../type-aliases/OauthConfig)
      </td>

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

    <tr>
      <td>
        <a id="oauthwithpopup" /> `oauthWithPopup`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="oauthwithredirect" /> `oauthWithRedirect`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="rootorg" /> `rootOrg`
      </td>

      <td>
        `string`
      </td>

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

    <tr>
      <td>
        <a id="submitjwt" /> `submitJwt`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="submitotpcode" /> `submitOtpCode`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="targetpublickey" /> `targetPublicKey`
      </td>

      <td>
        () => `never`
      </td>

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

    <tr>
      <td>
        <a id="turnkeyclient" /> `turnkeyClient`
      </td>

      <td>
        `TurnkeyClient`
      </td>

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

  </tbody>
</table>

## Accessors

### user

#### Get Signature

```ts
get protected user(): undefined | User;
```

Defined in: [account-kit/signer/src/client/base.ts:150](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L150)

##### Returns

`undefined` | [`User`](../type-aliases/User)

#### Set Signature

```ts
set protected user(user): void;
```

Defined in: [account-kit/signer/src/client/base.ts:154](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L154)

##### Parameters

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

  <tbody>
    <tr>
      <td>
        `user`
      </td>

      <td>
        `undefined` | [`User`](../type-aliases/User)
      </td>
    </tr>

  </tbody>
</table>

##### Returns

`void`

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`user`](BaseSignerClient#user)

## Methods

### addMfa()

```ts
addMfa(params): Promise<AddMfaResult>;
```

Defined in: [account-kit/signer/src/client/base.ts:1177](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1177)

Initiates the setup of a new MFA factor for the current user. Mfa will need to be verified before it is active.

#### 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>
        [`AddMfaParams`](../type-aliases/AddMfaParams)
      </td>

      <td>
        The parameters required to enable a new MFA factor
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<[`AddMfaResult`](../type-aliases/AddMfaResult)>

A promise that resolves to the factor setup information

#### Throws

If no user is authenticated

#### Throws

If an unsupported factor type is provided

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`addMfa`](BaseSignerClient#addmfa)

---

### addOauthProvider()

```ts
addOauthProvider(params): Promise<OauthProviderInfo>;
```

Defined in: [account-kit/signer/src/client/base.ts:619](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L619)

Adds an OAuth provider for the authenticated user using the provided parameters. Throws an error if the user is not authenticated.

#### 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>
        [`AddOauthProviderParams`](../type-aliases/AddOauthProviderParams)
      </td>

      <td>
        The parameters for adding an OAuth provider, including `providerName` and `oidcToken`.
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<[`OauthProviderInfo`](../type-aliases/OauthProviderInfo)>

A Promise that resolves when the OAuth provider is added.

#### Throws

Throws if the user is not authenticated.

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`addOauthProvider`](BaseSignerClient#addoauthprovider)

---

### addPasskey()

```ts
addPasskey(options): Promise<string[]>;
```

Defined in: [account-kit/signer/src/client/base.ts:512](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L512)

Handles the creation of authenticators using WebAuthn attestation and the provided options. Requires the user to be authenticated.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `options`
      </td>

      <td>
        `CredentialCreationOptions`
      </td>

      <td>
        The options used to create the WebAuthn attestation
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`string`\[]>

A promise that resolves to an array of authenticator IDs

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`addPasskey`](BaseSignerClient#addpasskey)

---

### authenticateWithAccessKey()

```ts
authenticateWithAccessKey(params): Promise<User>;
```

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

Authenticates the user with an access key.

#### 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>
        `any`
      </td>

      <td>
        The parameters for the authentication
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`User`>

A promise that resolves to the user

---

### createAccount()

```ts
createAccount(params): Promise<SignupResponse>;
```

Defined in: [account-kit/signer/src/client/server.ts:63](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/server.ts#L63)

Creates a new user with the given parameters.

#### 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>
        `CreateAccountParams`
      </td>

      <td>
        The parameters for creating the account
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`SignupResponse`>

A promise that resolves to the signup response

#### Overrides

[`BaseSignerClient`](BaseSignerClient).[`createAccount`](BaseSignerClient#createaccount)

---

### disconnect()

```ts
disconnect(): Promise<void>;
```

Defined in: [account-kit/signer/src/client/server.ts:53](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/server.ts#L53)

Unsets the user for the client

#### Returns

`Promise`\<`void`>

#### Overrides

[`BaseSignerClient`](BaseSignerClient).[`disconnect`](BaseSignerClient#disconnect)

---

### experimental_addToMultiOwner()

```ts
experimental_addToMultiOwner(orgId, members): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:1022](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1022)

This will add additional members to an existing multi-sig account

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `orgId`
      </td>

      <td>
        `string`
      </td>

      <td>
        orgId of the multi-sig to add members to
      </td>
    </tr>

    <tr>
      <td>
        `members`
      </td>

      <td>
        `` `0x${string}` ``\[]
      </td>

      <td>
        the addresses of the members to add
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`void`>

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`experimental_addToMultiOwner`](BaseSignerClient#experimental_addtomultiowner)

---

### experimental_createApiKey()

```ts
experimental_createApiKey(params): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:785](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L785)

Creates an API key that can take any action on behalf of the current user.
(Note that this method is currently experimental and is subject to change.)

#### 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>
        [`experimental_CreateApiKeyParams`](../type-aliases/experimental_CreateApiKeyParams)
      </td>

      <td>
        Parameters for creating the API key.
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`void`>

#### Throws

If there is no authenticated user or the API key creation fails.

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`experimental_createApiKey`](BaseSignerClient#experimental_createapikey)

---

### experimental_createMultiOwner()

```ts
experimental_createMultiOwner(additionalMembers): Promise<{
  evmSignerAddress: `0x${string}`;
  members: object[];
  orgId: string;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:1000](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1000)

This will create a multi-owner account with the current user and additional specified signers

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `additionalMembers`
      </td>

      <td>
        `` `0x${string}` ``\[]
      </td>

      <td>
        members to add, aside from the currently authenticated user
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`evmSignerAddress`: `` `0x${string}` ``;
`members`: `object`\[];
`orgId`: `string`;
}>

created multi-owner account

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`experimental_createMultiOwner`](BaseSignerClient#experimental_createmultiowner)

---

### experimental_deleteFromMultiOwner()

```ts
experimental_deleteFromMultiOwner(orgId, members): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:1060](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1060)

This will remove members from an existing multi-sig account

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `orgId`
      </td>

      <td>
        `string`
      </td>

      <td>
        orgId of the multi-sig to remove members from
      </td>
    </tr>

    <tr>
      <td>
        `members`
      </td>

      <td>
        `` `0x${string}` ``\[]
      </td>

      <td>
        the addresses of the members to remove
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`void`>

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`experimental_deleteFromMultiOwner`](BaseSignerClient#experimental_deletefrommultiowner)

---

### experimental_multiOwnerExportPrivateKeyEncrypted()

```ts
experimental_multiOwnerExportPrivateKeyEncrypted(opts): Promise<ExportPrivateKeyEncryptedResult>;
```

Defined in: [account-kit/signer/src/client/base.ts:1616](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1616)

Exports a private key for a given account in a multi-owner org

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `opts`
      </td>

      <td>
        `MultiOwnerExportPrivateKeyParams` & `object`
      </td>

      <td>
        the parameters for the export
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`ExportPrivateKeyEncryptedResult`>

the private key

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`experimental_multiOwnerExportPrivateKeyEncrypted`](BaseSignerClient#experimental_multiownerexportprivatekeyencrypted)

---

### experimental_multiOwnerSignRawMessage()

```ts
experimental_multiOwnerSignRawMessage(
   msg,
   orgId,
   orgAddress): Promise<`0x${string}`>;
```

Defined in: [account-kit/signer/src/client/base.ts:963](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L963)

This will sign on behalf of the multi-owner org, without doing any transformations on the message.
For SignMessage or SignTypedData, the caller should hash the message before calling this method and pass
that result here.

#### 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>
        `` `0x${string}` ``
      </td>

      <td>
        the hex representation of the bytes to sign
      </td>
    </tr>

    <tr>
      <td>
        `orgId`
      </td>

      <td>
        `string`
      </td>

      <td>
        orgId of the multi-owner org to sign on behalf of
      </td>
    </tr>

    <tr>
      <td>
        `orgAddress`
      </td>

      <td>
        `string`
      </td>

      <td>
        address of the multi-owner org to sign on behalf of
      </td>
    </tr>

  </tbody>
</table>

#### Returns

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

the signature over the raw hex

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`experimental_multiOwnerSignRawMessage`](BaseSignerClient#experimental_multiownersignrawmessage)

---

### exportPrivateKey()

```ts
exportPrivateKey(opts): Promise<string>;
```

Defined in: [account-kit/signer/src/client/base.ts:1580](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1580)

Exports a private key for a given account

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `opts`
      </td>

      <td>
        `ExportPrivateKeyParams`
      </td>

      <td>
        the parameters for the export
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`string`>

the private key

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`exportPrivateKey`](BaseSignerClient#exportprivatekey)

---

### exportPrivateKeyEncrypted()

```ts
exportPrivateKeyEncrypted(opts): Promise<ExportPrivateKeyEncryptedResult>;
```

Defined in: [account-kit/signer/src/client/base.ts:1522](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1522)

Exports a private key for a given account encrypted with the provided public key

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `opts`
      </td>

      <td>
        `ExportPrivateKeyParams` & `object`
      </td>

      <td>
        the parameters for the export
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`ExportPrivateKeyEncryptedResult`>

the private key

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`exportPrivateKeyEncrypted`](BaseSignerClient#exportprivatekeyencrypted)

---

### getMfaFactors()

```ts
getMfaFactors(): Promise<{
  multiFactors: MfaFactor[];
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:1145](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1145)

Retrieves the list of MFA factors configured for the current user.

#### Returns

`Promise`\<\{
`multiFactors`: [`MfaFactor`](../type-aliases/MfaFactor)\[];
}>

A promise that resolves to an array of configured MFA factors

#### Throws

If no user is authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`getMfaFactors`](BaseSignerClient#getmfafactors)

---

### getOauthNonce()

```ts
protected getOauthNonce(turnkeyPublicKey): string;
```

Defined in: [account-kit/signer/src/client/base.ts:1512](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1512)

Turnkey requires the nonce in the id token to be in this format.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `turnkeyPublicKey`
      </td>

      <td>
        `string`
      </td>

      <td>
        key from a Turnkey iframe
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`string`

nonce to be used in OIDC

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`getOauthNonce`](BaseSignerClient#getoauthnonce)

---

### getOauthProviderUrl()

```ts
protected getOauthProviderUrl(args): Promise<string>;
```

Defined in: [account-kit/signer/src/client/base.ts:1337](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1337)

Returns the authentication url for the selected OAuth Proivder

#### Example

```ts

cosnt oauthParams = {
 authProviderId: "google",
 isCustomProvider: false,
 auth0Connection: undefined,
 scope: undefined,
 claims: undefined,
 mode: "redirect",
 redirectUrl: "https://your-url-path/oauth-return",
 expirationSeconds: 3000
};

const turnkeyPublicKey = await this.initIframeStamper();
const oauthCallbackUrl = this.oauthCallbackUrl;
const oauthConfig = this.getOauthConfig() // Optional value for OauthConfig()
const usesRelativeUrl = true // Optional value to determine if we use a relative (or absolute) url for the `redirect_url`

const oauthProviderUrl = getOauthProviderUrl({
 oauthParams,
 turnkeyPublicKey,
 oauthCallbackUrl
})

```

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `args`
      </td>

      <td>
        [`GetOauthProviderUrlArgs`](../type-aliases/GetOauthProviderUrlArgs)
      </td>

      <td>
        Required. The Oauth provider's auth parameters
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`string`>

returns the Oauth provider's url

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`getOauthProviderUrl`](BaseSignerClient#getoauthproviderurl)

---

### getPasskeyStatus()

```ts
getPasskeyStatus(): Promise<{
  isPasskeyAdded: boolean;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:597](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L597)

Retrieves the status of the passkey for the current user. Requires the user to be authenticated.

#### Returns

`Promise`\<\{
`isPasskeyAdded`: `boolean`;
}>

A promise that resolves to an object containing the passkey status

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`getPasskeyStatus`](BaseSignerClient#getpasskeystatus)

---

### getUser()

```ts
getUser(): null | User;
```

Defined in: [account-kit/signer/src/client/base.ts:1095](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1095)

Returns the current user or null if no user is set.

#### Returns

`null` | [`User`](../type-aliases/User)

the current user object or null if no user is available

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`getUser`](BaseSignerClient#getuser)

---

### initOauth()

```ts
initOauth(): Promise<OauthConfig>;
```

Defined in: [account-kit/signer/src/client/base.ts:145](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L145)

Asynchronously fetches and sets the OAuth configuration.

#### Returns

`Promise`\<[`OauthConfig`](../type-aliases/OauthConfig)>

A promise that resolves to the OAuth configuration

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`initOauth`](BaseSignerClient#initoauth)

---

### initOtp()

```ts
initOtp(type, contact): Promise<{
  otpId: string;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:495](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L495)

Initiates an OTP (One-Time Password) verification process for a user contact.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `type`
      </td>

      <td>
        `"email"` | `"sms"`
      </td>

      <td>
        The type of OTP to send, either "email" or "sms"
      </td>
    </tr>

    <tr>
      <td>
        `contact`
      </td>

      <td>
        `string`
      </td>

      <td>
        The email address or phone number to send the OTP to
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`otpId`: `string`;
}>

A promise that resolves to an object containing the OTP ID

#### Throws

When no user is currently authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`initOtp`](BaseSignerClient#initotp)

---

### listAuthMethods()

```ts
listAuthMethods(): Promise<AuthMethods>;
```

Defined in: [account-kit/signer/src/client/base.ts:669](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L669)

Retrieves the list of authentication methods for the current user.

#### Returns

`Promise`\<[`AuthMethods`](../type-aliases/AuthMethods)>

A promise that resolves to the list of authentication methods

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`listAuthMethods`](BaseSignerClient#listauthmethods)

---

### lookupUserByAccessKey()

```ts
lookupUserByAccessKey(params): Promise<{
  orgId: null | string;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:838](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L838)

Looks up information based on an access key.

#### 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>
        `LookupUserByAccessKeyParams`
      </td>

      <td>
        The access key parameters
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`orgId`: `null` | `string`;
}>

The result of the lookup request

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`lookupUserByAccessKey`](BaseSignerClient#lookupuserbyaccesskey)

---

### lookupUserByEmail()

```ts
lookupUserByEmail(email): Promise<{
  orgId: null | string;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:818](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L818)

Looks up information based on an email address.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `email`
      </td>

      <td>
        `string`
      </td>

      <td>
        the email address to look up
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`orgId`: `null` | `string`;
}>

the result of the lookup request

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`lookupUserByEmail`](BaseSignerClient#lookupuserbyemail)

---

### lookupUserByPhone()

```ts
lookupUserByPhone(phone): Promise<{
  orgId: null | string;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:828](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L828)

Looks up information based on a phone number.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `phone`
      </td>

      <td>
        `string`
      </td>

      <td>
        the phone number to look up
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`orgId`: `null` | `string`;
}>

the result of the lookup request

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`lookupUserByPhone`](BaseSignerClient#lookupuserbyphone)

---

### lookupUserWithPasskey()

```ts
lookupUserWithPasskey(user?): Promise<User>;
```

Defined in: [account-kit/signer/src/client/base.ts:575](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L575)

Asynchronously handles the authentication process using WebAuthn Stamper. If a user is provided, sets the user and returns it. Otherwise, retrieves the current user and initializes the WebAuthn stamper.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `user?`
      </td>

      <td>
        [`User`](../type-aliases/User)
      </td>

      <td>
        `undefined`
      </td>

      <td>
        An optional user object to authenticate
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<[`User`](../type-aliases/User)>

A promise that resolves to the authenticated user object

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`lookupUserWithPasskey`](BaseSignerClient#lookupuserwithpasskey)

---

### on()

```ts
on<E>(event, listener): () => any;
```

Defined in: [account-kit/signer/src/client/base.ts:317](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L317)

Listen to events emitted by the client

#### Type Parameters

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

  <tbody>
    <tr>
      <td>
        `E` *extends* keyof [`AlchemySignerClientEvents`](../type-aliases/AlchemySignerClientEvents)
      </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>
        `event`
      </td>

      <td>
        `E`
      </td>

      <td>
        the event you want to listen to
      </td>
    </tr>

    <tr>
      <td>
        `listener`
      </td>

      <td>
        [`AlchemySignerClientEvents`](../type-aliases/AlchemySignerClientEvents)\[`E`]
      </td>

      <td>
        the callback function to execute when an event is fired
      </td>
    </tr>

  </tbody>
</table>

#### Returns

a function that will remove the listener when called

```ts
(): any;
```

##### Returns

`any`

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`on`](BaseSignerClient#on)

---

### pollActivityCompletion()

```ts
protected pollActivityCompletion<T>(
   activity,
   organizationId,
   resultKey): Promise<NonNullable<object[T]>>;
```

Defined in: [account-kit/signer/src/client/base.ts:1457](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1457)

#### Type Parameters

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

  <tbody>
    <tr>
      <td>
        `T` *extends*
        | `"createOrganizationResult"`
        | `"createAuthenticatorsResult"`
        | `"createUsersResult"`
        | `"createPrivateKeysResult"`
        | `"createInvitationsResult"`
        | `"acceptInvitationResult"`
        | `"signRawPayloadResult"`
        | `"createPolicyResult"`
        | `"disablePrivateKeyResult"`
        | `"deleteUsersResult"`
        | `"deleteAuthenticatorsResult"`
        | `"deleteInvitationResult"`
        | `"deleteOrganizationResult"`
        | `"deletePolicyResult"`
        | `"createUserTagResult"`
        | `"deleteUserTagsResult"`
        | `"signTransactionResult"`
        | `"deleteApiKeysResult"`
        | `"createApiKeysResult"`
        | `"createPrivateKeyTagResult"`
        | `"deletePrivateKeyTagsResult"`
        | `"setPaymentMethodResult"`
        | `"activateBillingTierResult"`
        | `"deletePaymentMethodResult"`
        | `"createApiOnlyUsersResult"`
        | `"updateRootQuorumResult"`
        | `"updateUserTagResult"`
        | `"updatePrivateKeyTagResult"`
        | `"createSubOrganizationResult"`
        | `"updateAllowedOriginsResult"`
        | `"createPrivateKeysResultV2"`
        | `"updateUserResult"`
        | `"updatePolicyResult"`
        | `"createSubOrganizationResultV3"`
        | `"createWalletResult"`
        | `"createWalletAccountsResult"`
        | `"initUserEmailRecoveryResult"`
        | `"recoverUserResult"`
        | `"setOrganizationFeatureResult"`
        | `"removeOrganizationFeatureResult"`
        | `"exportPrivateKeyResult"`
        | `"exportWalletResult"`
        | `"createSubOrganizationResultV4"`
        | `"emailAuthResult"`
        | `"exportWalletAccountResult"`
        | `"initImportWalletResult"`
        | `"importWalletResult"`
        | `"initImportPrivateKeyResult"`
        | `"importPrivateKeyResult"`
        | `"createPoliciesResult"`
        | `"signRawPayloadsResult"`
        | `"createReadOnlySessionResult"`
        | `"createOauthProvidersResult"`
        | `"deleteOauthProvidersResult"`
        | `"createSubOrganizationResultV5"`
        | `"oauthResult"`
        | `"createReadWriteSessionResult"`
        | `"createSubOrganizationResultV6"`
        | `"deletePrivateKeysResult"`
        | `"deleteWalletsResult"`
        | `"createReadWriteSessionResultV2"`
        | `"deleteSubOrganizationResult"`
        | `"initOtpAuthResult"`
        | `"otpAuthResult"`
        | `"createSubOrganizationResultV7"`
        | `"updateWalletResult"`
        | `"updatePolicyResultV2"`
        | `"initOtpAuthResultV2"`
        | `"initOtpResult"`
        | `"verifyOtpResult"`
        | `"otpLoginResult"`
        | `"stampLoginResult"`
        | `"oauthLoginResult"`
        | `"updateUserNameResult"`
        | `"updateUserEmailResult"`
        | `"updateUserPhoneNumberResult"`
        | `"initFiatOnRampResult"`
        | `"createSmartContractInterfaceResult"`
        | `"deleteSmartContractInterfaceResult"`
        | `"enableAuthProxyResult"`
        | `"disableAuthProxyResult"`
        | `"updateAuthProxyConfigResult"`
        | `"createOauth2CredentialResult"`
        | `"updateOauth2CredentialResult"`
        | `"deleteOauth2CredentialResult"`
        | `"oauth2AuthenticateResult"`
      </td>
    </tr>
  </tbody>
</table>

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `activity`
      </td>

      <td>
        `Object`
      </td>
    </tr>

    <tr>
      <td>
        `organizationId`
      </td>

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

    <tr>
      <td>
        `resultKey`
      </td>

      <td>
        `T`
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`NonNullable`\<`object`\[`T`]>>

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`pollActivityCompletion`](BaseSignerClient#pollactivitycompletion)

---

### removeEmail()

```ts
removeEmail(): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:385](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L385)

Removes the email for the authenticated user, disallowing them from login with that email.

#### Returns

`Promise`\<`void`>

A promise that resolves when the email is removed

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`removeEmail`](BaseSignerClient#removeemail)

---

### removeMfa()

```ts
removeMfa(params): Promise<{
  multiFactors: MfaFactor[];
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:1247](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1247)

Removes existing MFA factors by ID.

#### 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>
        [`RemoveMfaParams`](../type-aliases/RemoveMfaParams)
      </td>

      <td>
        The parameters specifying which factors to disable
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`multiFactors`: [`MfaFactor`](../type-aliases/MfaFactor)\[];
}>

A promise that resolves to the updated list of MFA factors

#### Throws

If no user is authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`removeMfa`](BaseSignerClient#removemfa)

---

### removeOauthProvider()

```ts
removeOauthProvider(providerId): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:647](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L647)

Deletes a specified OAuth provider for the authenticated user.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `providerId`
      </td>

      <td>
        `string`
      </td>

      <td>
        The ID of the provider to be deleted
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`void`>

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`removeOauthProvider`](BaseSignerClient#removeoauthprovider)

---

### removePasskey()

```ts
removePasskey(authenticatorId): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:554](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L554)

Removes a passkey authenticator from the user's account.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `authenticatorId`
      </td>

      <td>
        `string`
      </td>

      <td>
        The ID of the authenticator to remove.
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`void`>

A promise that resolves when the authenticator is removed.

#### Throws

If the user is not authenticated.

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`removePasskey`](BaseSignerClient#removepasskey)

---

### removePhoneNumber()

```ts
removePhoneNumber(): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:454](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L454)

Removes the phone number for the authenticated user, disallowing them from login with that phone number.

#### Returns

`Promise`\<`void`>

A promise that resolves when the phone number is removed

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`removePhoneNumber`](BaseSignerClient#removephonenumber)

---

### request()

```ts
request<R>(route, body): Promise<SignerResponse<R>>;
```

Defined in: [account-kit/signer/src/client/base.ts:1107](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1107)

Sends a POST request to the given signer route with the specified body and returns the response.
Not intended to be used directly, use the specific methods instead on the client instead.

#### Type Parameters

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

  <tbody>
    <tr>
      <td>
        `R` *extends*
        | `"/v1/signup"`
        | `"/v1/whoami"`
        | `"/v1/auth"`
        | `"/v1/lookup"`
        | `"/v1/init-otp"`
        | `"/v1/verify-otp"`
        | `"/v1/sign-payload"`
        | `"/v1/update-email-auth"`
        | `"/v1/update-phone-auth"`
        | `"/v1/add-oauth-provider"`
        | `"/v1/remove-oauth-provider"`
        | `"/v1/list-auth-methods"`
        | `"/v1/prepare-oauth"`
        | `"/v1/otp"`
        | `"/v1/auth-list-multi-factors"`
        | `"/v1/auth-delete-multi-factors"`
        | `"/v1/auth-request-multi-factor"`
        | `"/v1/auth-verify-multi-factor"`
        | `"/v1/auth-jwt"`
        | `"/v1/signer-config"`
        | `"/v1/auth-validate-multi-factors"`
        | `"/v1/multi-owner-create"`
        | `"/v1/multi-owner-prepare-add"`
        | `"/v1/multi-owner-add"`
        | `"/v1/multi-owner-update-root-quorum"`
        | `"/v1/multi-owner-sign-raw-payload"`
        | `"/v1/multi-owner-prepare-delete"`
        | `"/v1/multi-owner-delete"`
        | `"/v1/track-key-export"`
      </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>
        `route`
      </td>

      <td>
        `R`
      </td>

      <td>
        The route to which the request should be sent
      </td>
    </tr>

    <tr>
      <td>
        `body`
      </td>

      <td>
        [`SignerBody`](../type-aliases/SignerBody)\<`R`>
      </td>

      <td>
        The request body containing the data to be sent
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<[`SignerResponse`](../type-aliases/SignerResponse)\<`R`>>

A promise that resolves to the response from the signer

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`request`](BaseSignerClient#request)

---

### setEmail()

Implementation for setEmail method with optional OTP verification.

#### Param

An OTP object containing the OTP ID & OTP code (or an email address for legacy usage)

#### Call Signature

```ts
setEmail(email): Promise<string>;
```

Defined in: [account-kit/signer/src/client/base.ts:339](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L339)

Sets the email for the authenticated user, allowing them to login with that
email.

##### Deprecated

You must contact Alchemy to enable this feature for your team,
as there are important security considerations. In particular, you must not
call this without first validating that the user owns this email account.
Recommended to use the email verification flow instead.

##### Parameters

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

  <tbody>
    <tr>
      <td>
        `email`
      </td>

      <td>
        `string`
      </td>

      <td>
        The email to set for the user
      </td>
    </tr>

  </tbody>
</table>

##### Returns

`Promise`\<`string`>

A promise that resolves to the updated email

##### Throws

If the user is not authenticated

##### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`setEmail`](BaseSignerClient#setemail)

#### Call Signature

```ts
setEmail(otp): Promise<string>;
```

Defined in: [account-kit/signer/src/client/base.ts:349](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L349)

Sets the email for the authenticated user, allowing them to login with that
email. Must be called after calling `initOtp` with the email.

##### Parameters

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

  <tbody>
    <tr>
      <td>
        `otp`
      </td>

      <td>
        [`VerificationOtp`](../type-aliases/VerificationOtp)
      </td>

      <td>
        The OTP verification object including the OTP ID and OTP code
      </td>
    </tr>

  </tbody>
</table>

##### Returns

`Promise`\<`string`>

A promise that resolves to the updated email

##### Throws

If the user is not authenticated

##### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`setEmail`](BaseSignerClient#setemail)

---

### setPhoneNumber()

```ts
setPhoneNumber(otp): Promise<void>;
```

Defined in: [account-kit/signer/src/client/base.ts:439](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L439)

Updates the phone number for the authenticated user, allowing them to login with that
phone number. Must be called after calling `initOtp` with the phone number.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `otp`
      </td>

      <td>
        [`VerificationOtp`](../type-aliases/VerificationOtp)
      </td>

      <td>
        The OTP object including the OTP ID and OTP code
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<`void`>

A promise that resolves when the phone number is set

#### Throws

If the user is not authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`setPhoneNumber`](BaseSignerClient#setphonenumber)

---

### setStamper()

```ts
protected setStamper(stamper): void;
```

Defined in: [account-kit/signer/src/client/base.ts:169](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L169)

Sets the stamper of the TurnkeyClient.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `stamper`
      </td>

      <td>
        `TStamper`
      </td>

      <td>
        the stamper function to set for the TurnkeyClient
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`void`

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`setStamper`](BaseSignerClient#setstamper)

---

### signRawMessage()

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

Defined in: [account-kit/signer/src/client/base.ts:855](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L855)

This will sign a message with the user's private key, without doing any transformations on the message.
For SignMessage or SignTypedData, the caller should hash the message before calling this method and pass
that result here.

#### Parameters

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

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

      <td>
        `` `0x${string}` ``
      </td>

      <td>
        `undefined`
      </td>

      <td>
        the hex representation of the bytes to sign
      </td>
    </tr>

    <tr>
      <td>
        `mode`
      </td>

      <td>
        `"SOLANA"` | `"ETHEREUM"`
      </td>

      <td>
        `"ETHEREUM"`
      </td>

      <td>
        specify if signing should happen for solana or ethereum
      </td>
    </tr>

  </tbody>
</table>

#### Returns

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

the signature over the raw hex

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`signRawMessage`](BaseSignerClient#signrawmessage)

---

### stampGetOrganization()

```ts
stampGetOrganization(): Promise<TSignedRequest>;
```

Defined in: [account-kit/signer/src/client/base.ts:763](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L763)

Generates a stamped getOrganization request for the current user.

#### Returns

`Promise`\<`TSignedRequest`>

a promise that resolves to the "getOrganization" information for the logged in user

#### Throws

if no user is authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`stampGetOrganization`](BaseSignerClient#stampgetorganization)

---

### stampWhoami()

```ts
stampWhoami(): Promise<TSignedRequest>;
```

Defined in: [account-kit/signer/src/client/base.ts:747](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L747)

Generates a stamped whoami request for the current user. This request can then be used to call /signer/v1/whoami to get the user information.
This is useful if you want to get the user information in a different context like a server. You can pass the stamped request to the server
and then call our API to get the user information. Using this stamp is the most trusted way to get the user information since a stamp can only
belong to the user who created it.

#### Returns

`Promise`\<`TSignedRequest`>

a promise that resolves to the "whoami" information for the logged in user

#### Throws

if no organization ID is provided

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`stampWhoami`](BaseSignerClient#stampwhoami)

---

### validateMultiFactors()

```ts
validateMultiFactors(params): Promise<{
  bundle: string;
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:1279](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1279)

Validates multiple MFA factors using the provided encrypted payload and MFA codes.

#### 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>
        [`ValidateMultiFactorsParams`](../type-aliases/ValidateMultiFactorsParams)
      </td>

      <td>
        The validation parameters
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`bundle`: `string`;
}>

A promise that resolves to an object containing the credential bundle

#### Throws

If no credential bundle is returned from the server

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`validateMultiFactors`](BaseSignerClient#validatemultifactors)

---

### verifyMfa()

```ts
verifyMfa(params): Promise<{
  multiFactors: MfaFactor[];
}>;
```

Defined in: [account-kit/signer/src/client/base.ts:1214](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L1214)

Verifies a newly created MFA factor to complete the setup process.

#### 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>
        [`VerifyMfaParams`](../type-aliases/VerifyMfaParams)
      </td>

      <td>
        The parameters required to verify the MFA factor
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<\{
`multiFactors`: [`MfaFactor`](../type-aliases/MfaFactor)\[];
}>

A promise that resolves to the updated list of MFA factors

#### Throws

If no user is authenticated

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`verifyMfa`](BaseSignerClient#verifymfa)

---

### whoami()

```ts
whoami(
   orgId?,
   idToken?,
   accessToken?): Promise<User>;
```

Defined in: [account-kit/signer/src/client/base.ts:687](https://github.com/alchemyplatform/aa-sdk/blob/main/account-kit/signer/src/client/base.ts#L687)

Retrieves the current user or fetches the user information if not already available.

#### Parameters

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

  <tbody>
    <tr>
      <td>
        `orgId?`
      </td>

      <td>
        `string`
      </td>

      <td>
        optional organization ID, defaults to the user's organization ID
      </td>
    </tr>

    <tr>
      <td>
        `idToken?`
      </td>

      <td>
        `string`
      </td>

      <td>
        an OIDC ID token containing additional user information
      </td>
    </tr>

    <tr>
      <td>
        `accessToken?`
      </td>

      <td>
        `string`
      </td>

      <td>
        an access token which if provided will be added to the user
      </td>
    </tr>

  </tbody>
</table>

#### Returns

`Promise`\<[`User`](../type-aliases/User)>

A promise that resolves to the user object

#### Throws

if no organization ID is provided when there is no current user

#### Inherited from

[`BaseSignerClient`](BaseSignerClient).[`whoami`](BaseSignerClient#whoami)