> For the complete documentation index, see [llms.txt](https://whs3-doge5k.gitbook.io/smartcontract-security-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://whs3-doge5k.gitbook.io/smartcontract-security-docs/ethernaut/undefined.md).

# 들어가기 전에

더 손쉬운 Ethernaut 문제 풀이를 위한 환경 설정 방법

{% hint style="info" %}
Ethernaut의 문제 풀이에는 다양한 방법이 있습니다. 여러 방법을 시도해보세요!
{% endhint %}

## 💡 간단한 Tip

```bash
forge script --broadcast {contract path}:{contract name} --private-key {private key} --rpc-url {rpc url}
```

해당 코드는 컨트랙트를 배포하기 위한 코드이다.

위 명령어를 사용할 때마다 private key와 RPC URL을 직접 입력하는 것은 번거롭고 보안상 위험할 수 있다. 따라서 `.env` 파일에 해당 값을 환경 변수로 미리 설정해두면, 명령어를 간결하게 작성할 수 있을 뿐 아니라 민감한 정보를 노출할 위험도 줄일 수 있다.

### 환경변수 설정

```bash
vi .env  #.env 환경 변수 파일 생성

KEY={개인키 입력}
URL={RPC URL 입력}

source .env
```

1. .env 파일 생성
2. KEY, URL 변수에 각각 Metamask 개인키와 Alchemy RPC URL을 입력
3. 저장 후 source .env 입력(환경변수 적용)

```bash
forge create --broadcast {contract path}:{contract name} --private-key $KEY --rpc-url $URL
```

매번 bash를 실행할 때 source .env를 입력해야 하지만, 컨트랙트 배포를 포함한 트랜잭션 생성 명령어를 훨씬 간결하게 적을 수 있다.
