> For the complete documentation index, see [llms.txt](https://docs.skylinebridge.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.skylinebridge.tech/bridge-components/batcher.md).

# Batcher

Batcher is an off-chain component of the validator, with a separate instance initiated for each chain involved in the bridging process. At appropriate intervals, it retrieves confirmed transactions that are ready to be executed on the destination chain. These transactions, fetched from the bridge's smart contract, are grouped into a single batch. A batch transaction is then created, which includes specific metadata. This metadata specifies the batch identifier and a transaction type that allows Oracle to recognize it as a batch execution transaction. If there are no confirmed transactions to process, the batch is skipped, and the Batcher will attempt again after a predefined time interval.

The validator signs the batch transaction using its signing keys. For UTXO chains one signature is generated using a key associated with the multisig bridging address that handles fund unlocking, while the other is associated with a multisig address responsible for paying network fees on the destination chain. For the EVM chains only a single signature is generated which later gets validated on the smart contract. Batcher submits the signed batch transaction to the bridge's smart contract. Once submitted, all bridging requests included in the batch are marked with the status *includedInBatch*.
