# StarknetChainInterface

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:53](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L53)

Main chain interface for interacting with Starknet blockchain

## Implements

* [`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md)<[`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md), [`SignedStarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/SignedStarknetTx.md), [`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md), `"STARKNET"`, `Account`>

## Constructors

### Constructor

```
new StarknetChainInterface(

   chainId, 

   provider, 

   wsChannel?, 

   feeEstimator?, 

   options?, 

   bitcoinNetwork?): StarknetChainInterface;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:81](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L81)

#### Parameters

| Parameter         | Type                                                                                                                        |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `chainId`         | `StarknetChainId`                                                                                                           |
| `provider`        | `Provider`                                                                                                                  |
| `wsChannel?`      | `WebSocketChannel`                                                                                                          |
| `feeEstimator?`   | [`StarknetFees`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetFees.md)          |
| `options?`        | [`StarknetConfig`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetConfig.md) |
| `bitcoinNetwork?` | [`BitcoinNetwork`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/enumerations/BitcoinNetwork.md)            |

#### Returns

`StarknetChainInterface`

## Properties

### Accounts

```
readonly Accounts: StarknetAccounts;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:74](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L74)

***

### Blocks

```
readonly Blocks: StarknetBlocks;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:75](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L75)

***

### chainId

```
readonly chainId: "STARKNET" = "STARKNET";
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:55](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L55)

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)

***

### config

```
readonly config: StarknetConfig;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:77](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L77)

***

### Events

```
readonly Events: StarknetEvents;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:73](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L73)

***

### Fees

```
Fees: StarknetFees;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:69](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L69)

***

### Signatures

```
readonly Signatures: StarknetSignatures;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:72](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L72)

***

### starknetChainId

```
readonly starknetChainId: StarknetChainId;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:56](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L56)

***

### Tokens

```
readonly Tokens: StarknetTokens;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:70](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L70)

***

### Transactions

```
readonly Transactions: StarknetTransactions;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:71](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L71)

## Methods

### deserializeSignedTx()

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:251](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L251)

Deserializes a transaction from string

#### Parameters

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

#### Returns

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

#### 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<StarknetTx>;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:237](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L237)

Deserializes a transaction from string

#### Parameters

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

#### Returns

`Promise`<[`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.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-starknet/src/starknet/chain/StarknetChainInterface.ts:113](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L113)

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-starknet/src/starknet/chain/StarknetChainInterface.ts:279](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.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-starknet/src/starknet/chain/StarknetChainInterface.ts:121](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L121)

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-starknet/src/starknet/chain/StarknetChainInterface.ts:258](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L258)

Returns the transaction ID of the signed transaction

#### Parameters

| Parameter  | Type                                                                                                                | Description                                     |
| ---------- | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| `signedTX` | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md) | 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-starknet/src/starknet/chain/StarknetChainInterface.ts:265](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.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-starknet/src/starknet/chain/StarknetChainInterface.ts:272](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.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, lenient?): boolean;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:135](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L135)

Checks if a given string is a valid wallet address

#### Parameters

| Parameter  | Type      | Description                                                                                         |
| ---------- | --------- | --------------------------------------------------------------------------------------------------- |
| `address`  | `string`  |                                                                                                     |
| `lenient?` | `boolean` | Whether a lenient parsing should be used (i.e. don't strictly enforce the Starknet address lengths) |

#### 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-starknet/src/starknet/chain/StarknetChainInterface.ts:128](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L128)

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-starknet/src/starknet/chain/StarknetChainInterface.ts:142](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L142)

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-starknet/src/starknet/chain/StarknetChainInterface.ts:151](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L151)

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-starknet/src/starknet/chain/StarknetChainInterface.ts:170](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L170)

#### Parameters

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

#### Returns

`boolean`

#### Inherit Doc

***

### onBeforeTxReplace()

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:158](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L158)

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-starknet/src/starknet/chain/StarknetChainInterface.ts:163](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L163)

#### Parameters

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

#### Returns

`void`

#### Inherit Doc

***

### prepareTxs()

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:222](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L222)

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

#### Parameters

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

#### Returns

`Promise`<[`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.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-starknet/src/starknet/chain/StarknetChainInterface.ts:177](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L177)

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:184](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L184)

Returns randomly generated signer

#### Returns

[`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.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-starknet/src/starknet/chain/StarknetChainInterface.ts:195](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L195)

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

#### Parameters

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

   signedTxs, 

   waitForConfirmation?, 

   abortSignal?, 

   parallel?, 

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:209](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L209)

Sends already signed transactions and optionally waits for their confirmation

#### Parameters

| Parameter              | Type                                                                                                                   | Description                                                                                                                                  |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `signedTxs`            | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md)\[] | 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(signedTx): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:244](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L244)

Serializes a given transaction to a string

#### Parameters

| Parameter  | Type                                                                                                                | Description              |
| ---------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| `signedTx` | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md) | 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-starknet/src/starknet/chain/StarknetChainInterface.ts:230](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L230)

Serializes a given transaction to a string

#### Parameters

| Parameter | Type                                                                                                                | Description              |
| --------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| `tx`      | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.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-starknet/src/starknet/chain/StarknetChainInterface.ts:297](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L297)

Transfers the specific token to a given recipient

#### Parameters

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:290](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L290)

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`<[`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.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-starknet/src/starknet/chain/StarknetChainInterface.ts:320](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L320)

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

Defined in: [atomiq-chain-starknet/src/starknet/chain/StarknetChainInterface.ts:312](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/chain/StarknetChainInterface.ts#L312)

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

#### Parameters

| Parameter | Type      |
| --------- | --------- |
| `signer`  | `Account` |

#### Returns

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