# Environment

Now that our installation is complete, let's configure the development environment for Scaffold ETH-2.

### 1. **Initialize a Local Blockchain**:

In the first terminal, run a local network:

```bash
yarn chain
```

This command starts a local Ethereum network using Hardhat or Foundry, depending on which one you selected in the CLI. The network runs on your local machine and can be used for testing and development. You can customize the network configuration in:

<Tabs stateKey="dev-tool">
  <Tab title="Hardhat">
    ```sh
    packages/hardhat/hardhat.config.ts
    ```
  </Tab>

  <Tab title="Foundry">
    ```sh
    packages/foundry/foundry.toml
    ```
  </Tab>
</Tabs>

### 2. **Deploy Your Smart Contract**:

In the second terminal, deploy the test contract:

```bash
yarn deploy
```

This command deploys a test smart contract to the local network. The contract can be modified to suit your needs and can be found in:

<Tabs stateKey="dev-tool">
  <Tab title="Hardhat">
    ```sh
    packages/hardhat/contracts
    ```
  </Tab>

  <Tab title="Foundry">
    ```sh
    packages/foundry/contracts
    ```
  </Tab>
</Tabs>

The `yarn deploy` command uses a deploy script to deploy the contract to the network. You can customize the deployment script located in:

<Tabs stateKey="dev-tool">
  <Tab title="Hardhat">
    ```sh
    packages/hardhat/deploy
    ```
  </Tab>

  <Tab title="Foundry">
    ```sh
    packages/foundry/script
    ```
  </Tab>
</Tabs>

### 3. **Launch your NextJS Application**:

In the third terminal, start your NextJS app:

```bash
yarn start
```

Visit your app on `http://localhost:3000`. You can interact with your smart contract using the contract component or the example ui in the frontend.

## What's Next:

<Tabs stateKey="dev-tool">
  <Tab title="Hardhat">
    * Edit your smart contract:
      * `YourContract.sol` in `packages/hardhat/contracts`
    * Edit your deployment scripts:
      * `packages/hardhat/deploy`
    * Edit your frontend homepage at `packages/nextjs/app/page.tsx`. For guidance on [routing](https://nextjs.org/docs/app/building-your-application/routing/defining-routes) and configuring [pages/layouts](https://nextjs.org/docs/app/building-your-application/routing/pages-and-layouts) checkout the Next.js documentation.
    * Edit the app config in `packages/nextjs/scaffold.config.ts`
    * Edit your smart contract test in:
      * `packages/hardhat/test` to run test use `yarn hardhat:test`
  </Tab>

  <Tab title="Foundry">
    * Edit your smart contract:
      * `YourContract.sol` in `packages/foundry/contracts`
    * Edit your deployment scripts:
      * `packages/foundry/script`
    * Edit your frontend homepage at `packages/nextjs/app/page.tsx`. For guidance on [routing](https://nextjs.org/docs/app/building-your-application/routing/defining-routes) and configuring [pages/layouts](https://nextjs.org/docs/app/building-your-application/routing/pages-and-layouts) checkout the Next.js documentation.
    * Edit the app config in `packages/nextjs/scaffold.config.ts`
    * Edit your smart contract test in:
      * `packages/foundry/test` to run test use `yarn foundry:test`
  </Tab>
</Tabs>
