> 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/introduction.md).

# Introduction

{% hint style="warning" %}
We are in the process of updating our developer docs. Stay tuned!
{% endhint %}

This page outlines the 3 main components of the SatLayer BVS platform:

* SatLayer Core Contracts
* BVS Service Contracts
* Off-Chain Operator Software

<figure><img src="https://956158124-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM4kTGNZNYF9sQa92jm8x%2Fuploads%2FS7og6og17FWuA8cVk6Pv%2FBVS%20Diagram.png?alt=media&amp;token=980a1ce1-08ab-45f5-8d3f-315f81f08735" alt=""><figcaption><p>Diagram to illustrate the relationship amongst the three key areas</p></figcaption></figure>

## [SatLayer Core Contracts](/bvs-developers-1/satlayer-core-contracts.md)

The **SatLayer Core Contracts** are CosmWasm contracts deployed on the Babylon Chain and maintained by SatLayer's core contributors. They provide the coordination structure between BVS applications, Operators, and Re-Stakers, as well as a Task Lifecycle. In total, there are **10 core contracts**, but the ones developers will primarily interact with are:

* **BVS Directory**: For registering the BVS's [TaskInterface](/bvs-developers-1/bvs-service-contracts.md#taskinterface-contract) contract.
* **State Bank**: Manages relevant data and state for a BVS task.
* **BVS Driver**: Oversees the full lifecycle of a BVS tasks.

The remaining contracts power functionalities including staking, delegating assets, and rewards distribution. While we won't delve into these in detail on this page, the complete list is:

* **Strategy Manager**: Manages the various assets accepted as collateral.
  * Strategy Base
  * Strategy Factory
  * Strategy Base TVL Limits
* **Delegation Manager**: Handles the delegation and withdrawal of staker assets to operators
* **Rewards Coordinator**: Manages the deposit and distribution of BVS token rewards
* **Slash Manager**: Oversees the reporting and execution of asset slashing

## [BVS Service Contracts](#bvs-service-contracts)

**BVS Developers** are responsible for developing and deploying their own BVS Service Contracts, which interact with the SatLayer Core Contracts outlined above. The two core responsibilities of the BVS Service Contracts are:

1. Submitting new tasks: Store relevant data in the State Bank then calling the BVS Driver.
2. Accepting task results: Validate results (signatures, sender, etc.) and emit an event to confirm result acceptance.

Developers have the flexibility to design any combination of contracts that ultimately invoke SatLayer's Core Contracts. The **`TaskInterface`** serves as a placeholder outlining the two final responsibilities. For example, a BVS can be triggered by Contract B, which in turn is triggered by Contract C. The only requirement is that the contract interfacing with SatLayer (the BVS Service Contract) must fulfill the above two responsibilities.

## [Off-Chain Operator Software](#off-chain-operator-software)

The **Off-Chain Operator Software** consists of a set of programs that listen for on-chain events and respond accordingly. At a minimum, it includes an off-chain compute process that listens for task creation events, performs the necessary computations, and submits the results back to the BVS contract.

It is recommended that BVS teams implement additional components, such as:

* **BVS Client** to enable easy service consumption.
* **Reward Calculator** to provide stakers and operators with insights into the rewards generated by the BVS.

SatLayer provides a series of off-chain libraries to assist in developing the off-chain software. This includes **ChainIO**—our library for accepting and sequencing on-chain events and querying/invoking contract functions—as well as strongly typed wrappers for easy access to all SatLayer Core Contracts, along with loggers that can accelerate the development of your Operator Software.
