# EVMChainInterface\<ChainId>

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:104](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L104)

Main chain interface for interacting with EVM-compatible blockchains

## Type Parameters

| Type Parameter               | Default type |
| ---------------------------- | ------------ |
| `ChainId` *extends* `string` | `string`     |

## Implements

* [`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md)<[`EVMTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/type-aliases/EVMTx.md), [`SignedEVMTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/type-aliases/SignedEVMTx.md), [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md), `ChainId`, `Signer`>

## Constructors

### Constructor

```
new EVMChainInterface<ChainId>(

   chainId, 

   evmChainId, 

   provider, 

   config, 

   retryPolicy?, 

   evmFeeEstimator?, 

bitcoinNetwork?): EVMChainInterface<ChainId>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:133](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L133)

#### Parameters

| Parameter          | Type                                                                                                                       |
| ------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| `chainId`          | `ChainId`                                                                                                                  |
| `evmChainId`       | `number`                                                                                                                   |
| `provider`         | `JsonRpcApiProvider`                                                                                                       |
| `config`           | [`EVMConfiguration`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/type-aliases/EVMConfiguration.md) |
| `retryPolicy?`     | [`EVMRetryPolicy`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/type-aliases/EVMRetryPolicy.md)     |
| `evmFeeEstimator?` | [`EVMFees`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMFees.md)                        |
| `bitcoinNetwork?`  | [`BitcoinNetwork`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/enumerations/BitcoinNetwork.md)           |

#### Returns

`EVMChainInterface`<`ChainId`>

## Properties

### Blocks

```
Blocks: EVMBlocks;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:124](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L124)

***

### chainId

```
readonly chainId: ChainId;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:106](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L106)

Chain identifier string

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`chainId`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#chainid-1)

***

### Events

```
Events: EVMEvents;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:123](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L123)

***

### evmChainId

```
readonly evmChainId: number;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:108](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L108)

***

### Fees

```
Fees: EVMFees;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:119](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L119)

***

### provider

```
readonly provider: JsonRpcApiProvider;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:107](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L107)

***

### Signatures

```
Signatures: EVMSignatures;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:122](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L122)

***

### Tokens

```
Tokens: EVMTokens;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:120](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L120)

***

### Transactions

```
Transactions: EVMTransactions;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:121](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L121)

## Methods

### deserializeSignedTx()

```
deserializeSignedTx(txData): Promise<Transaction>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:304](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L304)

Deserializes a transaction from string

#### Parameters

| Parameter | Type     | Description                        |
| --------- | -------- | ---------------------------------- |
| `txData`  | `string` | Serialized transaction data string |

#### Returns

`Promise`<`Transaction`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`deserializeSignedTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#deserializesignedtx)

***

### deserializeTx()

```
deserializeTx(txData): Promise<TransactionRequest>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:290](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L290)

Deserializes a transaction from string

#### Parameters

| Parameter | Type     | Description                        |
| --------- | -------- | ---------------------------------- |
| `txData`  | `string` | Serialized transaction data string |

#### Returns

`Promise`<`TransactionRequest`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`deserializeTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#deserializetx)

***

### getBalance()

```
getBalance(signer, tokenAddress): Promise<bigint>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:167](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L167)

Returns the token balance of a specific address

#### Parameters

| Parameter      | Type     | Description                     |
| -------------- | -------- | ------------------------------- |
| `signer`       | `string` | Address to check the balance of |
| `tokenAddress` | `string` | Token                           |

#### Returns

`Promise`<`bigint`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`getBalance`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#getbalance)

***

### getFinalizedBlock()

```
getFinalizedBlock(): Promise<{

  blockHash: string;

  height: number;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:334](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L334)

Returns the latest known finalized block data (this is a block with 100% certainty of not getting re-org, i.e. a block already committed on L1)

#### Returns

`Promise`<{ `blockHash`: `string`; `height`: `number`; }>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`getFinalizedBlock`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#getfinalizedblock)

***

### getNativeCurrencyAddress()

```
getNativeCurrencyAddress(): string;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:175](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L175)

Returns the token address of the native currency of the chain

#### Returns

`string`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`getNativeCurrencyAddress`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#getnativecurrencyaddress)

***

### getTxId()

```
getTxId(signedTX): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:318](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L318)

Returns the transaction ID of the signed transaction

#### Parameters

| Parameter  | Type          | Description                                     |
| ---------- | ------------- | ----------------------------------------------- |
| `signedTX` | `Transaction` | Signed transaction to get the transaction ID of |

#### Returns

`Promise`<`string`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`getTxId`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#gettxid)

***

### getTxIdStatus()

```
getTxIdStatus(txId): Promise<"not_found" | "pending" | "success" | "reverted">;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:311](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L311)

Returns the status of the given transactionId (use getTxStatus whenever possible, it's more reliable)

#### Parameters

| Parameter | Type     | Description    |
| --------- | -------- | -------------- |
| `txId`    | `string` | Transaction ID |

#### Returns

`Promise`<`"not_found"` | `"pending"` | `"success"` | `"reverted"`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`getTxIdStatus`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#gettxidstatus)

***

### getTxStatus()

```
getTxStatus(tx): Promise<"not_found" | "pending" | "success" | "reverted">;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:327](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L327)

Returns the status of the given serialized transaction

#### Parameters

| Parameter | Type     | Description            |
| --------- | -------- | ---------------------- |
| `tx`      | `string` | Serialized transaction |

#### Returns

`Promise`<`"not_found"` | `"pending"` | `"success"` | `"reverted"`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`getTxStatus`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#gettxstatus)

***

### isValidAddress()

```
isValidAddress(address): boolean;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:189](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L189)

Checks if a given string is a valid wallet address

#### Parameters

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| `address` | `string` |             |

#### Returns

`boolean`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`isValidAddress`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#isvalidaddress)

***

### isValidToken()

```
isValidToken(tokenIdentifier): boolean;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:182](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L182)

Checks if a given string is a valid token identifier

#### Parameters

| Parameter         | Type     | Description |
| ----------------- | -------- | ----------- |
| `tokenIdentifier` | `string` |             |

#### Returns

`boolean`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`isValidToken`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#isvalidtoken)

***

### normalizeAddress()

```
normalizeAddress(address): string;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:196](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L196)

Normalizes a given address i.e. pads it to the specific size

#### Parameters

| Parameter | Type     | Description |
| --------- | -------- | ----------- |
| `address` | `string` |             |

#### Returns

`string`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`normalizeAddress`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#normalizeaddress)

***

### offBeforeTxReplace()

```
offBeforeTxReplace(callback): boolean;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:205](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L205)

Remove tx replace callback

#### Parameters

| Parameter  | Type                                                          | Description |
| ---------- | ------------------------------------------------------------- | ----------- |
| `callback` | (`oldTx`, `oldTxId`, `newTx`, `newTxId`) => `Promise`<`void`> |             |

#### Returns

`boolean`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`offBeforeTxReplace`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#offbeforetxreplace)

***

### offBeforeTxSigned()

```
offBeforeTxSigned(callback): boolean;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:223](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L223)

#### Parameters

| Parameter  | Type                        |
| ---------- | --------------------------- |
| `callback` | (`tx`) => `Promise`<`void`> |

#### Returns

`boolean`

#### Inherit Doc

***

### onBeforeTxReplace()

```
onBeforeTxReplace(callback): void;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:211](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L211)

Callback called when transaction is being replaced (used for EVM, when fee is bumped on an unconfirmed tx)

#### Parameters

| Parameter  | Type                                                          | Description |
| ---------- | ------------------------------------------------------------- | ----------- |
| `callback` | (`oldTx`, `oldTxId`, `newTx`, `newTxId`) => `Promise`<`void`> |             |

#### Returns

`void`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`onBeforeTxReplace`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#onbeforetxreplace)

***

### onBeforeTxSigned()

```
onBeforeTxSigned(callback): void;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:216](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L216)

#### Parameters

| Parameter  | Type                        |
| ---------- | --------------------------- |
| `callback` | (`tx`) => `Promise`<`void`> |

#### Returns

`void`

#### Inherit Doc

***

### prepareTxs()

```
prepareTxs(txs): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:275](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L275)

Prepares transaction for signing, by assigning a nonce, or a last valid blockhash

#### Parameters

| Parameter | Type                    | Description             |
| --------- | ----------------------- | ----------------------- |
| `txs`     | `TransactionRequest`\[] | Transactions to prepare |

#### Returns

`Promise`<`TransactionRequest`\[]>

#### Remarks

Ensure that all transactions are using the same signer, else this function might throw!

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`prepareTxs`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#preparetxs)

***

### randomAddress()

```
randomAddress(): string;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:230](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L230)

Returns a random valid wallet address

#### Returns

`string`

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`randomAddress`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#randomaddress)

***

### randomSigner()

```
randomSigner(): EVMSigner;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:237](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L237)

Returns randomly generated signer

#### Returns

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

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`randomSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#randomsigner)

***

### sendAndConfirm()

```
sendAndConfirm(

   signer, 

   txs, 

   waitForConfirmation?, 

   abortSignal?, 

   parallel?, 

   onBeforePublish?, 

useAccessLists?): Promise<string[]>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:247](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L247)

Signs, sends a batch of transaction and optionally waits for their confirmation

#### Parameters

| Parameter              | Type                                                                                                    | Description                                                                                                                                  |
| ---------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `signer`               | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md) | Signer to use for signing transactions                                                                                                       |
| `txs`                  | `TransactionRequest`\[]                                                                                 | Transactions to send                                                                                                                         |
| `waitForConfirmation?` | `boolean`                                                                                               | Whether to wait for transaction confirmation (if parallel is not specified, every transaction's confirmation except the last one is awaited) |
| `abortSignal?`         | `AbortSignal`                                                                                           | Abort signal                                                                                                                                 |
| `parallel?`            | `boolean`                                                                                               | Whether to send all transactions in parallel or one by one (always waiting for the previous TX to confirm)                                   |
| `onBeforePublish?`     | (`txId`, `rawTx`) => `Promise`<`void`>                                                                  | Callback called before a tx is broadcast                                                                                                     |
| `useAccessLists?`      | `boolean`                                                                                               | -                                                                                                                                            |

#### Returns

`Promise`<`string`\[]>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`sendAndConfirm`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#sendandconfirm)

***

### sendSignedAndConfirm()

```
sendSignedAndConfirm(

   signedTxs, 

   waitForConfirmation?, 

   abortSignal?, 

   parallel?, 

onBeforePublish?): Promise<string[]>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:262](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L262)

Sends already signed transactions and optionally waits for their confirmation

#### Parameters

| Parameter              | Type                                   | Description                                                                                                                                  |
| ---------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `signedTxs`            | `Transaction`\[]                       | Signed transactions to be sent                                                                                                               |
| `waitForConfirmation?` | `boolean`                              | Whether to wait for transaction confirmation (if parallel is not specified, every transaction's confirmation except the last one is awaited) |
| `abortSignal?`         | `AbortSignal`                          | Abort signal                                                                                                                                 |
| `parallel?`            | `boolean`                              | Whether to send all transactions in parallel or one by one (always waiting for the previous TX to confirm)                                   |
| `onBeforePublish?`     | (`txId`, `rawTx`) => `Promise`<`void`> | Callback called before a tx is broadcast                                                                                                     |

#### Returns

`Promise`<`string`\[]>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`sendSignedAndConfirm`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#sendsignedandconfirm)

***

### serializeSignedTx()

```
serializeSignedTx(tx): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:297](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L297)

Serializes a given transaction to a string

#### Parameters

| Parameter | Type          | Description              |
| --------- | ------------- | ------------------------ |
| `tx`      | `Transaction` | Transaction to serialize |

#### Returns

`Promise`<`string`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`serializeSignedTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#serializesignedtx)

***

### serializeTx()

```
serializeTx(tx): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:283](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L283)

Serializes a given transaction to a string

#### Parameters

| Parameter | Type                 | Description              |
| --------- | -------------------- | ------------------------ |
| `tx`      | `TransactionRequest` | Transaction to serialize |

#### Returns

`Promise`<`string`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`serializeTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#serializetx)

***

### transfer()

```
transfer(

   signer, 

   token, 

   amount, 

   dstAddress, 

txOptions?): Promise<string>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:352](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L352)

Transfers the specific token to a given recipient

#### Parameters

| Parameter    | Type                                                                                                    | Description                         |
| ------------ | ------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `signer`     | [`EVMSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMSigner.md) | Signer/owner of the tokens          |
| `token`      | `string`                                                                                                | Token to transfer                   |
| `amount`     | `bigint`                                                                                                | Amount of token to transfer         |
| `dstAddress` | `string`                                                                                                | Destination address of the transfer |
| `txOptions?` | `TransactionConfirmationOptions`                                                                        | Transaction options                 |

#### Returns

`Promise`<`string`>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`transfer`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#transfer)

***

### txsTransfer()

```
txsTransfer(

   signer, 

   token, 

   amount, 

   dstAddress, 

feeRate?): Promise<TransactionRequest[]>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:345](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L345)

Returns transactions for transferring a specific token to a given recipient

#### Parameters

| Parameter    | Type     | Description                                                                      |
| ------------ | -------- | -------------------------------------------------------------------------------- |
| `signer`     | `string` | Signer/owner of the tokens                                                       |
| `token`      | `string` | Token to transfer                                                                |
| `amount`     | `bigint` | Amount of token to transfer                                                      |
| `dstAddress` | `string` | Destination address of the transfer                                              |
| `feeRate?`   | `string` | Optional fee rate to use for the transaction (fetched on-demand if not provided) |

#### Returns

`Promise`<`TransactionRequest`\[]>

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`txsTransfer`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#txstransfer)

***

### verifyNetwork()

```
verifyNetwork(bitcoinNetwork): Promise<void>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:375](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L375)

Verifies whether the set network of this chain interface matches the passed bitcoin network (i.e. mainnet should use mainnet networks and testnets should use testnet networks)

#### Parameters

| Parameter        | Type                                                                                                             |
| ---------------- | ---------------------------------------------------------------------------------------------------------------- |
| `bitcoinNetwork` | [`BitcoinNetwork`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/enumerations/BitcoinNetwork.md) |

#### Returns

`Promise`<`void`>

#### Throws

When the underlying network doesn't match

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`verifyNetwork`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#verifynetwork)

***

### wrapSigner()

```
wrapSigner(signer): Promise<EVMSigner>;
```

Defined in: [atomiq-chain-evm/src/evm/chain/EVMChainInterface.ts:367](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/chain/EVMChainInterface.ts#L367)

Wraps a native chain signer object to an atomiq-understandable AbstractSigner

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `signer`  | `Signer` |

#### Returns

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

#### Implementation of

[`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md).[`wrapSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md#wrapsigner)
