# EVMPersistentSigner

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMPersistentSigner.ts:25](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMPersistentSigner.ts#L25)

A robust EVM signer implementation with internal nonce management, automatic rebroadcasting and fee bumping. Uses Node.js `fs` to persist transaction data across restarts, so it is intended for backend runtimes.

## Extends

* [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md)

## Constructors

### Constructor

```
new EVMPersistentSigner(

   account, 

   address, 

   chainInterface, 

   directory, 

   minFeeIncreaseAbsolute?, 

   minFeeIncreasePpm?, 

   waitBeforeBumpMillis?): EVMPersistentSigner;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMPersistentSigner.ts:51](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMPersistentSigner.ts#L51)

#### Parameters

| Parameter                 | Type                                                                                                                    |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `account`                 | `Signer`                                                                                                                |
| `address`                 | `string`                                                                                                                |
| `chainInterface`          | [`EVMChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMChainInterface.md) |
| `directory`               | `string`                                                                                                                |
| `minFeeIncreaseAbsolute?` | `bigint`                                                                                                                |
| `minFeeIncreasePpm?`      | `bigint`                                                                                                                |
| `waitBeforeBumpMillis?`   | `number`                                                                                                                |

#### Returns

`EVMPersistentSigner`

#### Overrides

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`constructor`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#constructor)

## Properties

### account

```
account: Signer;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:34](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L34)

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`account`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#account)

***

### address

```
readonly address: string;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:35](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L35)

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`address`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#address)

***

### isManagingNoncesInternally

```
readonly isManagingNoncesInternally: boolean;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:36](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L36)

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`isManagingNoncesInternally`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#ismanagingnoncesinternally)

***

### type

```
type: "AtomiqAbstractSigner";
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:32](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L32)

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`type`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#type)

## Methods

### getAddress()

```
getAddress(): string;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:54](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L54)

#### Returns

`string`

#### Inherit Doc

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`getAddress`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#getaddress)

***

### getReproducibleEntropyMessage()

```
static getReproducibleEntropyMessage(appName): string;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:28](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L28)

Returns a static message, which should be signed by the EVM wallets to generate reproducible entropy. Works when wallets use signing with deterministic nonce, such that signature over the same message always yields the same signature (same entropy).

#### Parameters

| Parameter | Type     | Description                                                                            |
| --------- | -------- | -------------------------------------------------------------------------------------- |
| `appName` | `string` | Application name to differentiate reproducible entropy generated across different apps |

#### Returns

`string`

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`getReproducibleEntropyMessage`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#getreproducibleentropymessage)

***

### init()

```
init(): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMPersistentSigner.ts:259](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMPersistentSigner.ts#L259)

#### Returns

`Promise`<`void`>

#### Inherit Doc

***

### sendTransaction()

```
sendTransaction(transaction, onBeforePublish?): Promise<TransactionResponse>;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMPersistentSigner.ts:287](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMPersistentSigner.ts#L287)

#### Parameters

| Parameter          | Type                                   |
| ------------------ | -------------------------------------- |
| `transaction`      | `TransactionRequest`                   |
| `onBeforePublish?` | (`txId`, `rawTx`) => `Promise`<`void`> |

#### Returns

`Promise`<`TransactionResponse`>

#### Inherit Doc

#### Overrides

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`sendTransaction`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#sendtransaction)

***

### signTransaction()?

```
optional signTransaction(transaction): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMSigner.ts:61](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMSigner.ts#L61)

#### Parameters

| Parameter     | Type                 |
| ------------- | -------------------- |
| `transaction` | `TransactionRequest` |

#### Returns

`Promise`<`string`>

#### Inherit Doc

#### Inherited from

[`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md).[`signTransaction`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md#signtransaction)

***

### stop()

```
stop(): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/wallet/EVMPersistentSigner.ts:276](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/wallet/EVMPersistentSigner.ts#L276)

#### Returns

`Promise`<`void`>

#### Inherit Doc
