# Inheriting TL Contracts

## Using Foundry

If you are using [Foundry](https://book.getfoundry.sh/), it is really simple to integrate TL contracts into your project. You just simply have to run the following, depending on which repo you want to integrate.

```bash
forge install Transient-Labs/tl-creator-contracts
forge install Transient-Labs/blocklist
forge install Transient-Labs/story-contract
forge install Transient Labs/tl-sol-tools
```

## Using Hardhat

If your project is using Hardhat, you can use the [Hardhat-Foundry plugin](https://hardhat.org/hardhat-runner/docs/advanced/hardhat-and-foundry) to integrate our contracts. This still requires Foundry to be installed though.

The one caveat is that we typically have some custom remappings that you may need. They are shown below. These can be added to the `remappings.txt` file as applicable and may need modification depending on your use case.

```
tl-story=<YOUR_PROJECT_ROOT>/lib/tl-creator-contracts/lib/story-contract/src/
tl-blocklist=<YOUR_PROJECT_ROOT>/lib/tl-creator-contracts/lib/blocklist/src/
```

## Using Brownie

Unfortunately [Brownie](https://eth-brownie.readthedocs.io/en/stable/) does not allow solidity files to be defined outside of a `contracts` folder for packages and thus our repositories can't be used in Brownie projects. Hopefully [ApeWorx](https://www.apeworx.io/) fixes this, as Brownie is sunsetting soon.
