> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# AbstractSigner

An **AbstractSigner** includes most of teh functionality required to get a [**Signer**](/sdk/content/interfaces/Signer) working as
expected, but requires a few Signer-specific methods be overridden.

## Extended by

* [`JsonRpcSigner`](/sdk/content/classes/JsonRpcSigner)
* [`VoidSigner`](/sdk/content/classes/VoidSigner)

## Type parameters

| Type parameter                                                         | Value                                                    |
| :--------------------------------------------------------------------- | :------------------------------------------------------- |
| `P` *extends* `null` \| [`Provider`](/sdk/content/interfaces/Provider) | `null` \| [`Provider`](/sdk/content/interfaces/Provider) |

## Implements

* [`Signer`](/sdk/content/interfaces/Signer)

## Constructors

### new AbstractSigner()

```ts theme={null}
new AbstractSigner<P>(provider?): AbstractSigner<P>
```

Creates a new Signer connected to `provider`.

#### Parameters

| Parameter   | Type |
| :---------- | :--- |
| `provider`? | `P`  |

#### Returns

[`AbstractSigner`](/sdk/content/classes/AbstractSigner)\<`P`>

#### Source

[signers/abstract-signer.ts:63](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/signers/abstract-signer.ts#L63)

## Properties

| Property   | Modifier   | Type | Description                               |
| :--------- | :--------- | :--- | :---------------------------------------- |
| `provider` | `readonly` | `P`  | The provider this signer is connected to. |

## Methods

### connect()

```ts theme={null}
abstract connect(provider): Signer
```

Returns the signer connected to `provider`.

This may throw, for example, a Signer connected over a Socket or to a specific instance of a node may not be
transferrable.

#### Parameters

| Parameter  | Type                                                     | Description                 |
| :--------- | :------------------------------------------------------- | :-------------------------- |
| `provider` | `null` \| [`Provider`](/sdk/content/interfaces/Provider) | The provider to connect to. |

#### Returns

[`Signer`](/sdk/content/interfaces/Signer)

The connected signer.

#### Implementation of

[`Signer`](/sdk/content/interfaces/Signer).[`connect`](/sdk/content/interfaces/Signer#connect)

#### Source

[signers/abstract-signer.ts:92](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/signers/abstract-signer.ts#L92)

***

### getAddress()

```ts theme={null}
abstract getAddress(): Promise<string>
```

Resolves to the Signer address.

#### Returns

`Promise`\<`string`>

#### Implementation of

[`Signer`](/sdk/content/interfaces/Signer).[`getAddress`](/sdk/content/interfaces/Signer#getaddress)

#### Source

[signers/abstract-signer.ts:70](https://github.com/dominant-strategies/quais.js/blob/c1c12d43f9d34c6baad2b0542bd6d0acd6fefcbf/src/signers/abstract-signer.ts#L70)
