> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Smart Contracts

> Add smart contracts to a Tenderly project to track all direct and internal transactions, run simulations, and set up alerts.

Learn how to add a smart contract to a project and keep track of its transactions in the Dashboard. When you add a contract, you'll see a list of all historical transactions (direct and internal) linked to that contract.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/contract-overview-page.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2764b407a37e12f01cae02c6cda6542c" alt="Transaction Overview" width="4608" height="2852" data-path="images/developer-explorer/contracts/contract-overview-page.webp" />

## How to add a contract to a project

1. Navigate to **Contracts** in the side menu.
2. Click **Add Contract**.
3. Enter the contract address, select its deployment network, assign a name, and click **Add Contract**.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/add-contract.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=9bca3edec101cf7375473a21f7f7f7e7" alt="Transaction Overview" width="3716" height="2434" data-path="images/developer-explorer/contracts/add-contract.webp" />

Try adding one of these contracts to your project to get started. Open the contract in Tenderly, click the **Add to Project** button and add it to an existing project. Learn [how to create projects in Tenderly here](/platform/account/projects/overview).

* [Uniswap Router](https://www.tdly.co/contract/1/0x1cf9cbe70a84137c696f98587a9b06f7fa2b71b4): `0x1cf9cbe70a84137c696f98587a9b06f7fa2b71b4`
* [veCurveVault proxy](https://www.tdly.co/contract/1/0xc5bddf9843308380375a611c18b50fb9341f502a): `0xc5bddf9843308380375a611c18b50fb9341f502a`

## Adding verified contracts from any network

The Dashboard's search functionality allows you to locate any verified contract deployed on any of the [102 supported networks](/platform/supported-networks).

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/search-contract.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=093ef39fd276229985e512f9889cda01" alt="Transaction Overview" width="3804" height="2522" data-path="images/developer-explorer/contracts/search-contract.webp" />

1. Paste the contract's address or name in the top menu search bar.
2. Select the contract from the search results.

To add the contract to a project, click **Add to Project** and choose your target project.

## Inspecting contract details

From the **Contracts** page, click on a contract to view its details such as:

* Source code, ABI, bytecode, creation code, and source map
* Transaction history and filtering options
* Simulated transaction history

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/inspect-contract.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=1594519d2ef89d82827b2beb2f47d2fc" alt="Inspecting a contract" width="3804" height="2522" data-path="images/developer-explorer/contracts/inspect-contract.webp" />

You can also simulate any of the contract's transactions with modified parameters. Click on the **Simulate Transaction** button to simulate a transaction. Check out this guide to learn how to simulate transactions:

<Card title="How to Simulate Transactions from the Dashboard" href="" />

## Adding tags to contracts

When working with multiple contracts, you need a way to keep them organized. This is where tags come in handy. You can add a tag to a contract by clicking the **Add Tag** link.

Tags also enable you to monitor multiple contracts or wallets grouped under a single tag using Alerts.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/tag-contract.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=5a2c4e39dd7903ab7a3895097778f7e2" alt="Tagging contracts" width="3804" height="2522" data-path="images/developer-explorer/contracts/tag-contract.webp" />

## Monitoring contracts with Alerts

You can set up Alerts to monitor activity on your contracts in real time. To create an Alert, click the **Create Alert** button from the contract overview page.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/contract-alert.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=f944d7e29d506337bf58c44555050e15" alt="Contract alert" width="4320" height="2522" data-path="images/developer-explorer/contracts/contract-alert.webp" />

With Alerts, you can monitor various events such as failed or successful transactions, function calls, emitted events, blocked callers, and more.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/alerts-page.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=2c5e58f84dc393966649e03b2eb02c64" alt="Alerting page" width="4320" height="2522" data-path="images/developer-explorer/contracts/alerts-page.webp" />

You can choose between 12+ trigger types, and receive notifications in places like Slack, and Telegram, or send the data to [Sentry](/monitoring/alerts/destinations/account-scoped#sentry-destination) and [PagerDuty](/monitoring/alerts/destinations/account-scoped#pagerduty-destination).

<Card title="How to Create and Manage Smart Contract Alerts" href="" />

## Proxy contracts

Tenderly detects [EIP-1967](https://eips.ethereum.org/EIPS/eip-1967) and [EIP-1167](https://eips.ethereum.org/EIPS/eip-1167) proxies automatically. When the contract's implementation changes, Tenderly picks this up automatically and displays the version history in the Dashboard.

To access the implementation history, click on the **clock icon**.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/contract-implementations.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=559b57b3d768267877b66ca361168259" alt="Contract implementation history" width="5344" height="3054" data-path="images/developer-explorer/contracts/contract-implementations.webp" />

### Non-standard proxy implementations

For non-standard solutions, you'll need to manually convert the contract to a proxy.

First, click on the **three-dot icon** on the top right of the contract's page and select **Convert to Proxy**

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/contract-proxy-button.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=b3cb3f7b0faea8f21292f7b2f5dfcf33" alt="Contract proxy button" width="4320" height="2522" data-path="images/developer-explorer/contracts/contract-proxy-button.webp" />

**Set the storage slot** containing the implementation address, or **pick a view function** that returns the implementation address.

<img src="https://mintcdn.com/tenderly/XsEZlaGXYskrtN68/images/developer-explorer/contracts/contract-proxy-modal.webp?fit=max&auto=format&n=XsEZlaGXYskrtN68&q=85&s=9fe588b291a1c5b647a51f0268d41510" alt="Contract proxy modal" width="4320" height="2522" data-path="images/developer-explorer/contracts/contract-proxy-modal.webp" />
