> For the complete documentation index, see [llms.txt](https://docs.satlayer.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.satlayer.xyz/bvs-developers-1/bvs-service-contracts.md).

# BVS Service Contracts

SatLayer provides a straightforward interface, granting BVS developers maximum flexibility via BVS Service Contracts. Developers can architect contract logic without restriction, including side-chains, data availability layers, oracle networks, cross-chain bridges, and more.

The only requirement is to adhere to our `TaskInterface` as the entrypoint into SatLayer's Core Contracts.  This is where a BVS task start's it's lifecycle.

<figure><img src="https://956158124-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM4kTGNZNYF9sQa92jm8x%2Fuploads%2FLkoQfQQKI8WQlBBCSfpa%2FBVS%20Diagram.png?alt=media&amp;token=ddff6b9a-325f-44f3-abca-9a9c96cd8f38" alt=""><figcaption></figcaption></figure>

## TaskInterface Contract

`TaskInterface` is responsible for interfacing with the `StateBank` and `BVSDriver` contracts of SatLayer. It serves two essential functions:

1. **Create a New Task**: Invokes the `StateBank` and `BVSDriver` contracts to trigger the execution of the off-chain program.
2. **Accept and Validate Task Results**: Handles the validation of the results returned from the off-chain execution.

By implementing these two contract interfaces, you can synchronize data with the SatLayer core contracts, completing the full process. Additionally, you can add other methods to extend functionality as needed.

## Custom Contracts

Developers have the option to implement any number of custom contracts for more complex functionality and interactions.  This is purely up for BVS developers to decide. You can break down complex applications and flows into separate modules, and implement them across different contracts.&#x20;

The `TaskInterface` contract can then manage the final step of data synchronization and task submissions to the SatLayer platform.
