# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.transientlabs.xyz/integrations/inheriting-tl-contracts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
