# ChainType\<ChainId, PreFetchData, PreFetchVerification, TXType, SignedTXType, Signer, NativeSigner, T, C, I, E, B, SpvWithdrawalData, SpvData, SpvContract>

```
type ChainType<ChainId, PreFetchData, PreFetchVerification, TXType, SignedTXType, Signer, NativeSigner, T, C, I, E, B, SpvWithdrawalData, SpvData, SpvContract> = object;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:15](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L15)

A comprehensive unified type struct for a given chain, contains all the type definitions of a given chain

## Type Parameters

| Type Parameter                                                                                                                                                                                            | Default type                                                                                                                                                                           |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ChainId` *extends* `string`                                                                                                                                                                              | `string`                                                                                                                                                                               |
| `PreFetchData`                                                                                                                                                                                            | `any`                                                                                                                                                                                  |
| `PreFetchVerification`                                                                                                                                                                                    | `any`                                                                                                                                                                                  |
| `TXType`                                                                                                                                                                                                  | `any`                                                                                                                                                                                  |
| `SignedTXType`                                                                                                                                                                                            | `any`                                                                                                                                                                                  |
| `Signer` *extends* [`AbstractSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/type-aliases/AbstractSigner.md)                                                                       | [`AbstractSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/type-aliases/AbstractSigner.md)                                                                       |
| `NativeSigner`                                                                                                                                                                                            | `any`                                                                                                                                                                                  |
| `T` *extends* [`SwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SwapData.md)                                                                                             | [`SwapData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SwapData.md)                                                                                        |
| `C` *extends* [`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md)<`T`, `TXType`, `PreFetchData`, `PreFetchVerification`, `Signer`, `ChainId`>      | [`SwapContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SwapContract.md)<`T`, `TXType`, `PreFetchData`, `PreFetchVerification`, `Signer`, `ChainId`> |
| `I` *extends* [`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md)<`TXType`, `SignedTXType`, `Signer`, `ChainId`, `NativeSigner`>               | [`ChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainInterface.md)<`TXType`, `SignedTXType`, `Signer`, `ChainId`, `NativeSigner`>          |
| `E` *extends* [`ChainEvents`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainEvents.md)<`T`>                                                                               | [`ChainEvents`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/ChainEvents.md)<`T`>                                                                          |
| `B` *extends* [`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md)<`any`, `TXType`, `any`, `Signer`>                                                        | [`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md)<`any`, `TXType`, `any`, `Signer`>                                                   |
| `SpvWithdrawalData` *extends* [`SpvWithdrawalTransactionData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvWithdrawalTransactionData.md)                                     | [`SpvWithdrawalTransactionData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvWithdrawalTransactionData.md)                                                |
| `SpvData` *extends* [`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md)<`SpvWithdrawalData`>                                                          | [`SpvVaultData`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/classes/SpvVaultData.md)<`SpvWithdrawalData`>                                                           |
| `SpvContract` *extends* [`SpvVaultContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SpvVaultContract.md)<`TXType`, `Signer`, `ChainId`, `SpvWithdrawalData`, `SpvData`> | [`SpvVaultContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/SpvVaultContract.md)<`TXType`, `Signer`, `ChainId`, `SpvWithdrawalData`, `SpvData`>      |

## Properties

### BtcRelay

```
BtcRelay: B;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:42](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L42)

***

### ChainId

```
ChainId: ChainId;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:32](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L32)

***

### ChainInterface

```
ChainInterface: I;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:38](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L38)

***

### Contract

```
Contract: C;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:40](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L40)

***

### Data

```
Data: T;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:39](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L39)

***

### Events

```
Events: E;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:41](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L41)

***

### NativeSigner

```
NativeSigner: NativeSigner;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:46](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L46)

***

### PreFetchData

```
PreFetchData: PreFetchData;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:33](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L33)

***

### PreFetchVerification

```
PreFetchVerification: PreFetchVerification;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:34](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L34)

***

### SignedTXType

```
SignedTXType: SignedTXType;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:36](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L36)

***

### Signer

```
Signer: Signer;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:37](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L37)

***

### SpvVaultContract

```
SpvVaultContract: SpvContract;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:44](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L44)

***

### SpvVaultData

```
SpvVaultData: SpvData;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:43](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L43)

***

### SpvVaultWithdrawalData

```
SpvVaultWithdrawalData: SpvWithdrawalData;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:45](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L45)

***

### TX

```
TX: TXType;
```

Defined in: [atomiq-base/src/chains/ChainType.ts:35](https://github.com/atomiqlabs/atomiq-base/blob/df344bedbab9ab3de863e3c2d9246e90bd861d04/src/chains/ChainType.ts#L35)
