> For the complete documentation index, see [llms.txt](https://docs.venn.build/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.venn.build/venn-network/getting-started/protocols-and-developers/how-it-works.md).

# How It Works

## Overview

When you add protection to your smart contracts via the Firewall SDK, your smart contracts become **`VennFirewallConsumers`** *(i.e. they now consume security services from the Firewall)*.

This allows you to make use of the **`firewallProtected`** modifier on any external function that is exposed by your smart contracts:

```solidity
pragma solidity ^0.8;

import {VennFirewallConsumer} from "@ironblocks/firewall-consumer/contracts/consumers/VennFirewallConsumer.sol";

contract MyContract is VennFirewallConsumer {

    myMethod() external firewallProtected {
        ...
    }
}
```

## `firewallProtected` Modifier

Behind the scenes, this modifier will forward every call to the protected function to the Firewall, which makes sure that the call has been approved by Venn before allowing it to go through.

Once the approval is confirmed by the Firewall, normal execution continues as normal.
