# EVMBtcRelay\<B>

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:32](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L32)

EVM BTC Relay bitcoin light client contract representation.

## Extends

* `EVMContractBase`<`BtcRelayTypechain`>

## Type Parameters

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

## Implements

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

## Constructors

### Constructor

```
new EVMBtcRelay<B>(

   chainInterface, 

   bitcoinRpc, 

   bitcoinNetwork, 

   contractAddress, 

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

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:114](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L114)

#### Parameters

| Parameter                   | Type                                                                                                                           |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `chainInterface`            | [`EVMChainInterface`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMChainInterface.md)<`any`> |
| `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

`EVMBtcRelay`<`B`>

#### Overrides

```
EVMContractBase<BtcRelayTypechain>.constructor
```

## Properties

### \_bitcoinRpc

```
readonly _bitcoinRpc: BitcoinRpc<B>;
```

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

***

### chainId

```
readonly chainId: string;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:38](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L38)

***

### contract

```
readonly contract: BtcRelay;
```

Defined in: [atomiq-chain-evm/src/evm/contract/EVMContractBase.ts:33](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/contract/EVMContractBase.ts#L33)

#### Inherited from

```
EVMContractBase.contract
```

***

### maxForkHeadersPerTx

```
readonly maxForkHeadersPerTx: number = 50;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:111](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L111)

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 = 100;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:110](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L110)

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 = 100;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:112](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L112)

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)

***

### Chain

```
protected readonly Chain: EVMChainInterface<any>;
```

Defined in: [atomiq-chain-evm/src/evm/contract/EVMContractBase.ts:39](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/contract/EVMContractBase.ts#L39)

#### Inherited from

```
EVMContractBase.Chain
```

## Methods

### estimateSynchronizeFee()

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

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:435](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L435)

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-evm/src/evm/btcrelay/EVMBtcRelay.ts:457](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L457)

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-evm/src/evm/btcrelay/EVMBtcRelay.ts:472](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L472)

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-evm/src/evm/btcrelay/EVMBtcRelay.ts:465](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L465)

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-evm/src/evm/btcrelay/EVMBtcRelay.ts:267](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L267)

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: EVMBtcStoredHeader;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:333](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L333)

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

#### Returns

`Promise`<{ `resultBitcoinHeader`: `B`; `resultStoredHeader`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.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: EVMBtcStoredHeader;

  height: number;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:287](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L287)

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`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.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(commitmentHashStr, blockData): Promise<EVMBtcStoredHeader>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:314](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L314)

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

#### Parameters

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

#### Returns

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

  forkId: number;

  lastStoredHeader: EVMBtcStoredHeader;

  tx: TransactionRequest;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:401](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L401)

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` | [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.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`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md); `tx`: `TransactionRequest`; }>

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

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:479](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L479)

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`<`TransactionRequest`>

#### 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: EVMBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: EVMBtcStoredHeader;

  tx: TransactionRequest;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:374](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L374)

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` | [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md) | Latest committed and stored bitcoin blockheader in the BTC relay |
| `feeRate?`     | `string`                                                                                                                  | Optional fee rate for the transaction                            |

#### Returns

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

#### 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: EVMBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: EVMBtcStoredHeader;

  tx: TransactionRequest;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:383](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L383)

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` | [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.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`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md); `tx`: `TransactionRequest`; }>

#### 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: EVMBtcStoredHeader[];

  forkId: number;

  lastStoredHeader: EVMBtcStoredHeader;

  tx: TransactionRequest;

}>;
```

Defined in: [atomiq-chain-evm/src/evm/btcrelay/EVMBtcRelay.ts:418](https://github.com/atomiqlabs/atomiq-chain-evm/blob/98ca6f16fbfb37e521f8c27b4f942642fe00c2ee/src/evm/btcrelay/EVMBtcRelay.ts#L418)

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` | [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.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`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md)\[]; `forkId`: `number`; `lastStoredHeader`: [`EVMBtcStoredHeader`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-evm/src/classes/EVMBtcStoredHeader.md); `tx`: `TransactionRequest`; }>

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