# Quickstart

## Setting Up Your Project

First, given this example and most quickstart documentation will be relying on Forge, make sure you have the latest version of forge installed.

install

```bash
curl -L https://foundry.paradigm.xyz | bash
```

Now that you have forge installed, create and navigate to a new directory for your ERC7660 project and install ERC7660.

```bash
forge init
forge install benchmark-org/erc7660
```

## Creating Your ERC7660

An example contract that inherits ERC7660 has been provided below. This is just a minimal implementation for quick setup.

**ExampleERC7660.sol**

```solidity
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {ERC7660} from "erc7660/ERC7660.sol";

contract ExampleERC7660 is Ownable, ERC7660 {
  constructor(
    string memory name_,
    string memory symbol_,
    uint256 totalSupply_
  ) ERC7660(name_, symbol_, totalSupply_) {

      
  }

   function addPair(address _pair,bool flag) public onlyOwner {
       _addPair(_pair,flat);
    }
   //_routers
    function addRouter(address _router,bool flag) public onlyOwner {
       _addRouter(_router,flag);
    }

    function setDuration(uint256 _duration) public onlyOwner {
        _setDuration(_duration);
    }
}
```

That’s it, your all set up with your first ERC7660 contract!

### [​](https://benchmark.mintlify.app/quickstart#deploying)

## Deploying

To deploy, we’ll again use our current project and set up a simple script, provided below.

```solidity
contract Deploy is Script {
    string memory name = "ExampleBench";
    string memory symbol = "EXBench";
    uint256 totalSupply = 10000e18;

    modifier broadcast(address deployer) {
        vm.startBroadcast(deployer);
        _;
        vm.stopBroadcast();
    }

    function run() external override {
        deploy(<Your Deployer Address>);
    }

    function deploy(address deployer) public broadcast(deployer) {
        new ExampleERC7660(name, symbol, totalSupply, deployer);
    }
}
```

Now, you’ll need to run the script through the following command, having defined the deployer private key and rpc endpoint in your local environment.


---

# 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://benchmark-labs.gitbook.io/documentation/quickstart.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.
