> For the complete documentation index, see [llms.txt](https://docs.lossless.io/protocol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lossless.io/protocol/technical-reference/lossless-controller.md).

# Lossless Controller

**Lossless Controller** is the core contract of the Lossless protocol. Every lossless protected token calls this contract before every ***transfer***, ***transferFrom***, ***approve***, or any other function. The controller determines if the function can proceed and in cases where it cannot proceed this call reverts in turn reverting the ERC20 function call.&#x20;

The controller is an upgradable smart contract that's using an **upgradable transparent proxy pattern**.&#x20;

The controller does only a minimal amount of validation and the rest of the logic of lossless protocol lives on other smart contracts (see [Vault and Treasury Protection](/protocol/technical-reference/vault-and-treasury-protection.md)). In the [deployments section](/protocol/technical-reference/lossless-controller/deployments.md), you will find lossless controller addresses for different blockchains.
