# StarknetBtcRelay\<B>

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:62](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L62)

Starknet BTC Relay bitcoin light client contract representation

## Extends

* `StarknetContractBase`<*typeof* `BtcRelayAbi`>

## Type Parameters

| Type Parameter           |
| ------------------------ |
| `B` *extends* `BtcBlock` |

## Implements

* [`BtcRelay`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BtcRelay.md)<[`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md), [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md), `B`, [`StarknetSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSigner.md)>

## Constructors

### Constructor

```
new StarknetBtcRelay<B>(

   chainInterface, 

   bitcoinRpc, 

   bitcoinNetwork, 

   contractAddress, 

contractDeploymentHeight?): StarknetBtcRelay<B>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:138](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L138)

#### Parameters

| Parameter                   | Type                                                                                                                                   |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `chainInterface`            | [`StarknetChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetChainInterface.md) |
| `bitcoinRpc`                | [`BitcoinRpc`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/interfaces/BitcoinRpc.md)<`B`>                            |
| `bitcoinNetwork`            | [`BitcoinNetwork`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/enumerations/BitcoinNetwork.md)                       |
| `contractAddress`           | `string`                                                                                                                               |
| `contractDeploymentHeight?` | `number`                                                                                                                               |

#### Returns

`StarknetBtcRelay`<`B`>

#### Overrides

```
StarknetContractBase<typeof BtcRelayAbi>.constructor
```

## Properties

### contract

```
readonly contract: TypedContractV2<T>;
```

Defined in: [atomiq-chain-starknet/src/starknet/contract/StarknetContractBase.ts:11](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/contract/StarknetContractBase.ts#L11)

#### Inherited from

[`StarknetSpvVaultContract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSpvVaultContract.md).[`contract`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetSpvVaultContract.md#contract)

***

### maxForkHeadersPerTx

```
readonly maxForkHeadersPerTx: number = 25;
```

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

Maximum amount of fork headers that fit in a single transactions

#### Implementation of

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

***

### maxHeadersPerTx

```
readonly maxHeadersPerTx: number = 40;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:134](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L134)

Maximum blockheaders that fit in a single transaction

#### Implementation of

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

***

### maxShortForkHeadersPerTx

```
readonly maxShortForkHeadersPerTx: number = 40;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:136](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L136)

Maximum amount of fork headers that can be submitted at once using the short fork method

#### Implementation of

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

## Methods

### estimateSynchronizeFee()

```
estimateSynchronizeFee(requiredBlockheight, feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:418](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L418)

Estimate required synchronization fee (worst case) to synchronize btc relay to the required blockheight

#### Parameters

| Parameter             | Type     | Description                                 |
| --------------------- | -------- | ------------------------------------------- |
| `requiredBlockheight` | `number` | Blockheight to which to synchronize         |
| `feeRate?`            | `string` | Optional fee rate to use for the estimation |

#### Returns

`Promise`<`bigint`>

#### Implementation of

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

***

### getFeePerBlock()

```
getFeePerBlock(feeRate?): Promise<bigint>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:437](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L437)

Returns required fee in native token to synchronize a single block to btc relay

#### Parameters

| Parameter  | Type     | Description                                 |
| ---------- | -------- | ------------------------------------------- |
| `feeRate?` | `string` | Optional fee rate to use for the estimation |

#### Returns

`Promise`<`bigint`>

#### Implementation of

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

***

### getForkFeeRate()

```
getForkFeeRate(signer, forkId): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:452](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L452)

Gets fee rate required for submitting blockheaders to the specific fork

#### Parameters

| Parameter | Type     | Description                                  |
| --------- | -------- | -------------------------------------------- |
| `signer`  | `string` | A signer's address to use for the estimation |
| `forkId`  | `number` | A fork ID to use for estimation              |

#### Returns

`Promise`<`string`>

#### Implementation of

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

***

### getMainFeeRate()

```
getMainFeeRate(signer): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:445](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L445)

Gets fee rate required for submitting blockheaders to the main chain

#### Parameters

| Parameter | Type     | Description                                  |
| --------- | -------- | -------------------------------------------- |
| `signer`  | `string` | A signer's address to use for the estimation |

#### Returns

`Promise`<`string`>

#### Implementation of

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

***

### getTipData()

```
getTipData(): Promise<{

  blockhash: string;

  blockheight: number;

  chainWork: Buffer;

  commitHash: string;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:250](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L250)

Returns data about current main chain tip stored in the btc relay

#### Returns

`Promise`<{ `blockhash`: `string`; `blockheight`: `number`; `chainWork`: `Buffer`; `commitHash`: `string`; }>

#### Implementation of

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

***

### retrieveLatestKnownBlockLog()

```
retrieveLatestKnownBlockLog(): Promise<{

  resultBitcoinHeader: B;

  resultStoredHeader: StarknetBtcStoredHeader;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:316](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L316)

Retrieves latest known bitcoin blockheader stored in the BTC Relay and also known to the bitcoin RPC

#### Returns

`Promise`<{ `resultBitcoinHeader`: `B`; `resultStoredHeader`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md); }>

#### Implementation of

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

***

### retrieveLogAndBlockheight()

```
retrieveLogAndBlockheight(blockData, requiredBlockheight?): Promise<{

  header: StarknetBtcStoredHeader;

  height: number;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:270](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L270)

Retrieves blockheader with a specific blockhash, returns null if `requiredBlockheight` is provided and btc relay contract is not synced up to the desired blockheight

#### Parameters

| Parameter              | Type                       | Description |
| ---------------------- | -------------------------- | ----------- |
| `blockData`            | { `blockhash`: `string`; } |             |
| `blockData.blockhash`  | `string`                   | -           |
| `requiredBlockheight?` | `number`                   |             |

#### Returns

`Promise`<{ `header`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md); `height`: `number`; }>

#### Implementation of

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

***

### retrieveLogByCommitHash()

```
retrieveLogByCommitHash(commitmentHash, blockData): Promise<StarknetBtcStoredHeader>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:297](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L297)

Retrieves stored bitcoin blockheader data by blockheader's commit hash and provided blockhash from `blockData`

#### Parameters

| Parameter             | Type                       | Description |
| --------------------- | -------------------------- | ----------- |
| `commitmentHash`      | `string`                   |             |
| `blockData`           | { `blockhash`: `string`; } |             |
| `blockData.blockhash` | `string`                   | -           |

#### Returns

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

#### Implementation of

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

***

### saveForkHeaders()

```
saveForkHeaders(

   signer, 

   forkHeaders, 

   storedHeader, 

   forkId, 

   tipWork, 

   feeRate?): Promise<{

  computedCommitedHeaders: StarknetBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: StarknetBtcStoredHeader;

  tx: StarknetTx;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:385](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L385)

Returns a transaction that continues submitting blockheaders to an existing long fork

#### Parameters

| Parameter      | Type                                                                                                                                     | Description                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                                 | A signer's address for the transaction                                       |
| `forkHeaders`  | `BtcBlock`\[]                                                                                                                            | New fork bitcoin blockheaders to submit                                      |
| `storedHeader` | [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md) | Committed and stored bitcoin blockheader in the BTC relay from which to fork |
| `forkId`       | `number`                                                                                                                                 | Fork ID to submit the blockheaders to                                        |
| `tipWork`      | `Buffer`                                                                                                                                 | Chainwork of the current BTC Relay main chain tip                            |
| `feeRate?`     | `string`                                                                                                                                 | Optional fee rate for the transaction                                        |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md); `tx`: [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md); }>

#### Implementation of

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

***

### saveInitialHeader()

```
saveInitialHeader(

   signer, 

   header, 

   epochStart, 

   pastBlocksTimestamps, 

feeRate?): Promise<StarknetTx>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:459](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L459)

Initializes the underlying BTC Relay contract

#### Parameters

| Parameter              | Type        | Description                                                        |
| ---------------------- | ----------- | ------------------------------------------------------------------ |
| `signer`               | `string`    | A signer's address to use for the transaction                      |
| `header`               | `B`         | Main chain blockheader to use as a genesis                         |
| `epochStart`           | `number`    | Timestamp of the first block in this difficulty epoch              |
| `pastBlocksTimestamps` | `number`\[] | Timestamps of the last 11 blockheaders, for median block time rule |
| `feeRate?`             | `string`    | Optional fee rate for the transaction                              |

#### Returns

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

#### Implementation of

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

***

### saveMainHeaders()

```
saveMainHeaders(

   signer, 

   mainHeaders, 

   storedHeader, 

   feeRate?): Promise<{

  computedCommitedHeaders: StarknetBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: StarknetBtcStoredHeader;

  tx: StarknetTx;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:358](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L358)

Returns a transaction that submits bitcoin blockheaders as a bitcoin main chain to the btc relay

#### Parameters

| Parameter      | Type                                                                                                                                     | Description                                                      |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                                 | A signer's address for the transaction                           |
| `mainHeaders`  | `BtcBlock`\[]                                                                                                                            | New bitcoin blockheaders to submit                               |
| `storedHeader` | [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md) | Latest committed and stored bitcoin blockheader in the BTC relay |
| `feeRate?`     | `string`                                                                                                                                 | Optional fee rate for the transaction                            |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md); `tx`: [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md); }>

#### Implementation of

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

***

### saveNewForkHeaders()

```
saveNewForkHeaders(

   signer, 

   forkHeaders, 

   storedHeader, 

   tipWork, 

   feeRate?): Promise<{

  computedCommitedHeaders: StarknetBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: StarknetBtcStoredHeader;

  tx: StarknetTx;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:367](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L367)

Returns a transaction that submits a new long fork and submits the first headers to it

#### Parameters

| Parameter      | Type                                                                                                                                     | Description                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                                 | A signer's address for the transaction                                       |
| `forkHeaders`  | `BtcBlock`\[]                                                                                                                            | New fork bitcoin blockheaders to submit                                      |
| `storedHeader` | [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md) | Committed and stored bitcoin blockheader in the BTC relay from which to fork |
| `tipWork`      | `Buffer`                                                                                                                                 | Chainwork of the current BTC Relay main chain tip                            |
| `feeRate?`     | `string`                                                                                                                                 | Optional fee rate for the transaction                                        |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md); `tx`: [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md); }>

#### Implementation of

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

***

### saveShortForkHeaders()

```
saveShortForkHeaders(

   signer, 

   forkHeaders, 

   storedHeader, 

   tipWork, 

   feeRate?): Promise<{

  computedCommitedHeaders: StarknetBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: StarknetBtcStoredHeader;

  tx: StarknetTx;

}>;
```

Defined in: [atomiq-chain-starknet/src/starknet/btcrelay/StarknetBtcRelay.ts:402](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/btcrelay/StarknetBtcRelay.ts#L402)

Returns a transaction that submits a short fork with the provided blockheaders

#### Parameters

| Parameter      | Type                                                                                                                                     | Description                                                                  |
| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| `signer`       | `string`                                                                                                                                 | A signer's address for the transaction                                       |
| `forkHeaders`  | `BtcBlock`\[]                                                                                                                            | New fork bitcoin blockheaders to submit                                      |
| `storedHeader` | [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md) | Committed and stored bitcoin blockheader in the BTC relay from which to fork |
| `tipWork`      | `Buffer`                                                                                                                                 | Chainwork of the current BTC Relay main chain tip                            |
| `feeRate?`     | `string`                                                                                                                                 | Optional fee rate for the transaction                                        |

#### Returns

`Promise`<{ `computedCommitedHeaders`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`StarknetBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBtcStoredHeader.md); `tx`: [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md); }>

#### Implementation of

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