---
# System prepended metadata

title: HATs Smart Contract Audit by Hexen

---

# HATs Smart Contract Audit by Hexen

## Commit to be audited:


`1272ef58df5d65fcc8d4cddbb23772cd4a6a5cf3`

in https://github.com/hats-finance/hats-contracts

## Scope

The scope of the audit are the following contracts in the repository
```
contracts
├── HATTimelockController.sol
├── HATVault.sol
├── HATVaultsRegistry.sol
├── RewardController.sol
├── interfaces
│   ├── IHATVault.sol
│   ├── IHATVaultsRegistry.sol
│   ├── IRewardController.sol
│   └── ISwapRouter.sol
```

With respect to the other contracts:
-  the `HATToken` contract have been reviewed serveral times and have not changed since, so they do not need your attention.
-  the `TokenLock` contracts have remained mostly unchanged, but we did add a `sweepToken` function that we would like you to look at


## Specific areas of attention

"Rug-pull" vectors. We tried to design the system so that no single party can empty the vault by itself. In addition, there should be:
- no way for governance (i.e. the owner of the registry) and vault.owner to collude and take all assets from the vault
- no way for vault.commitee and vault.owner to collide to take all vault assets

