# SolanaChainInterface

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:51](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L51)

Main chain interface for interacting with Solana blockchain

## Implements

* [`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md)<[`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md), [`SignedSolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SignedSolanaTx.md), [`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.md), `"SOLANA"`, `Wallet`>

## Constructors

### Constructor

```
new SolanaChainInterface(

   connection, 

   retryPolicy?, 

   solanaFeeEstimator?): SolanaChainInterface;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:119](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L119)

#### Parameters

| Parameter             | Type                                                                                                                            |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `connection`          | `Connection`                                                                                                                    |
| `retryPolicy?`        | [`SolanaRetryPolicy`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaRetryPolicy.md) |
| `solanaFeeEstimator?` | [`SolanaFees`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaFees.md)                    |

#### Returns

`SolanaChainInterface`

## Properties

### Blocks

```
readonly Blocks: SolanaBlocks;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:88](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L88)

Block-related read module.

***

### chainId

```
readonly chainId: "SOLANA" = "SOLANA";
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:61](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L61)

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

```
readonly Events: SolanaEvents;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:112](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L112)

Event/log scanning module.

***

### Fees

```
Fees: SolanaFees;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:92](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L92)

Fee estimation and fee-rate module.

***

### Signatures

```
readonly Signatures: SolanaSignatures;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:108](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L108)

Signature utilities module.

***

### Slots

```
readonly Slots: SolanaSlots;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:96](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L96)

Slot-related read module.

***

### Tokens

```
readonly Tokens: SolanaTokens;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:100](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L100)

Token operations module.

***

### Transactions

```
readonly Transactions: SolanaTransactions;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:104](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L104)

Transaction send/confirm/serialization module.

## Methods

### deserializeSignedTx()

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

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:258](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L258)

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<SolanaTx>;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:244](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L244)

Deserializes a transaction from string

#### Parameters

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

#### Returns

`Promise`<[`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md)>

#### 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-solana/src/solana/chain/SolanaChainInterface.ts:139](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L139)

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-solana/src/solana/chain/SolanaChainInterface.ts:279](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L279)

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-solana/src/solana/chain/SolanaChainInterface.ts:170](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L170)

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)

***

### getTxIdStatus()

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

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:265](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L265)

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-solana/src/solana/chain/SolanaChainInterface.ts:272](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L272)

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-solana/src/solana/chain/SolanaChainInterface.ts:156](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L156)

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-solana/src/solana/chain/SolanaChainInterface.ts:337](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L337)

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-solana/src/solana/chain/SolanaChainInterface.ts:163](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L163)

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-solana/src/solana/chain/SolanaChainInterface.ts:293](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L293)

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-solana/src/solana/chain/SolanaChainInterface.ts:312](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L312)

#### Parameters

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

#### Returns

`boolean`

#### Inherit Doc

***

### offSendTransaction()

```
offSendTransaction(callback): boolean;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:330](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L330)

Unregisters a previously registered transaction sender override hook.

#### Parameters

| Parameter  | Type                                      | Description                    |
| ---------- | ----------------------------------------- | ------------------------------ |
| `callback` | (`tx`, `options?`) => `Promise`<`string`> | Previously registered callback |

#### Returns

`boolean`

***

### onBeforeTxReplace()

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

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:300](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L300)

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-solana/src/solana/chain/SolanaChainInterface.ts:305](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L305)

#### Parameters

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

#### Returns

`void`

#### Inherit Doc

***

### onSendTransaction()

```
onSendTransaction(callback): void;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:321](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L321)

Registers a low-level transaction sender override hook.

#### Parameters

| Parameter  | Type                                      | Description                                  |
| ---------- | ----------------------------------------- | -------------------------------------------- |
| `callback` | (`tx`, `options?`) => `Promise`<`string`> | Callback used for raw transaction publishing |

#### Returns

`void`

***

### prepareTxs()

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

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:229](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L229)

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

#### Parameters

| Parameter | Type                                                                                                             | Description             |
| --------- | ---------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `txs`     | [`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md)\[] | Transactions to prepare |

#### Returns

`Promise`<[`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md)\[]>

#### 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-solana/src/solana/chain/SolanaChainInterface.ts:349](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L349)

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(): SolanaSigner;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:356](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L356)

Returns randomly generated signer

#### Returns

[`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.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?): Promise<string[]>;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:202](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L202)

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

#### Parameters

| Parameter              | Type                                                                                                             | Description                                                                                                                                  |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `signer`               | [`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.md) | Signer to use for signing transactions                                                                                                       |
| `txs`                  | [`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md)\[] | 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                                                                                                     |

#### 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(

   txs, 

   waitForConfirmation?, 

   abortSignal?, 

   parallel?, 

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

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:216](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L216)

Sends already signed transactions and optionally waits for their confirmation

#### Parameters

| Parameter              | Type                                   | Description                                                                                                                                  |
| ---------------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `txs`                  | `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-solana/src/solana/chain/SolanaChainInterface.ts:251](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L251)

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-solana/src/solana/chain/SolanaChainInterface.ts:237](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L237)

Serializes a given transaction to a string

#### Parameters

| Parameter | Type                                                                                                          | Description              |
| --------- | ------------------------------------------------------------------------------------------------------------- | ------------------------ |
| `tx`      | [`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md) | 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-solana/src/solana/chain/SolanaChainInterface.ts:184](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L184)

Transfers the specific token to a given recipient

#### Parameters

| Parameter    | Type                                                                                                             | Description                         |
| ------------ | ---------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| `signer`     | [`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.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<SolanaTx[]>;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:177](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L177)

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`<[`SolanaTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/type-aliases/SolanaTx.md)\[]>

#### 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-solana/src/solana/chain/SolanaChainInterface.ts:369](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L369)

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<SolanaSigner>;
```

Defined in: [atomiq-chain-solana/src/solana/chain/SolanaChainInterface.ts:365](https://github.com/atomiqlabs/atomiq-chain-solana/blob/4094a4a5b53d0864511200476446f3034a3c7c10/src/solana/chain/SolanaChainInterface.ts#L365)

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

#### Parameters

| Parameter | Type     |
| --------- | -------- |
| `signer`  | `Wallet` |

#### Returns

`Promise`<[`SolanaSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-solana/src/classes/SolanaSigner.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)
