사전 요구사항
- Foundry 설치 (
forge,cast,anvil이 PATH에서 사용 가능해야 함) - 개인 키를 소유한 지갑 (새 테스트 키도 괜찮습니다 — 실제 자금이 있는 키는 절대 테스트넷에서 사용하지 마세요)
- 테스트넷 RPC 및 수도꼭지에 접근할 수 있는 인터넷 연결
1. 새 Foundry 프로젝트 생성
다음 명령어로 새 프로젝트를 생성합니다:src/ 디렉토리에 샘플 Counter.sol 컨트랙트와 테스트 파일을 생성합니다. 이 컨트랙트를 그대로 배포합니다 — 목표는 새 Solidity 코드를 작성하는 것이 아니라 실제로 체인에 올리는 것입니다.
2. 배포할 컨트랙트 확인
src/Counter.sol을 열어보세요. 두 개의 함수가 있습니다:number는 체인에 저장되는 공개 상태 변수입니다. increment()와 setNumber()는 이를 변경하는 두 가지 방법입니다. number를 읽는 것은 가스가 들지 않습니다 — 무료 eth_call입니다.
3. Stable 테스트넷 구성
프로젝트 루트에 네트워크 자격증명을 저장할 .env 파일을 생성합니다:[profile.default] 섹션 아래에 다음 블록을 추가합니다:
stable_testnet을 대상으로 할 때 Foundry가 트랜잭션을 어디로 보낼지 알게 됩니다. Stable은 EVM 호환이므로 다른 구성은 필요하지 않습니다.
체크포인트: RPC 엔드포인트에 접근 가능한지 확인합니다:
2201은 Stable 테스트넷입니다. 이 숫자가 보이면 네트워크에 접근할 수 있는 것입니다.
4. 지갑 주소 가져오기
개인 키에서 배포자 주소를 도출하여 어떤 계정에 자금을 충전해야 하는지 확인합니다:5. USDT0으로 지갑에 자금 충전
Stable은 USDT0을 가스 토큰으로 사용합니다 — 상품과 서비스 결제에 사용하는 것과 동일한 자산이 컴퓨팅 비용 지불에 직접 사용됩니다. 별도의 네이티브 토큰은 없습니다. 테스트넷 수도꼭지를 방문하여 자금을 요청합니다:체크포인트: 잔액이 도착했는지 확인합니다:
0이라면 몇 초 후 다시 실행하세요 — Stable은 약 0.7초마다 새 블록을 생성하므로 자금이 빨리 정산됩니다.
6. 컨트랙트 배포
forge create로 배포를 실행합니다:
체크포인트: 출력이 다음과 같아야 합니다:
Deployed to 주소를 복사합니다. 다음 두 단계에서 필요합니다.
7. 쓰기 함수 호출
이제setNumber()를 호출하여 체인에 값을 저장합니다:
42가 이제 Stable 테스트넷의 number 변수에 저장되었습니다.
8. 체인에서 상태 읽기
number()를 호출하여 값을 읽어옵니다. 이것은 무료 읽기 — 트랜잭션 없음, 가스 없음:
9. Stablescan에서 배포 확인
Stable 테스트넷 블록 탐색기를 열고 컨트랙트 주소를 붙여넣습니다:setNumber 호출을 볼 수 있습니다. Stablescan은 Stable에서 온체인 상태를 검사하고, 컨트랙트 소스 코드를 검증하고, 트랜잭션 히스토리를 읽는 공식 도구입니다.
배운 내용
컨트랙트를 배포하고, 상태 변경 트랜잭션을 전송하고, 온체인 상태를 읽었습니다 — 모두 Stable 테스트넷에서 완료했습니다. 이제 다음을 할 수 있습니다:- 표준 RPC 엔드포인트를 사용하여 Stable을 대상으로 Foundry(또는 다른 EVM 도구체인) 구성하기
- USDT0 수도꼭지를 사용하여 지갑에 자금 충전하기
- USDT0을 가스 토큰으로 사용하여 트랜잭션 비용 지불하기
- Stablescan에서 작업 내용 확인하기
- JSON-RPC API — Stable이 지원하는
eth_메서드와 이더리움 메인넷과의 차이점 확인 - 가스 & 가격 책정 — USDT0 기반 수수료 계산 방식 이해
- 테스트넷 정보 — 전체 네트워크 파라미터, 컨트랙트 주소, 브리지 세부사항

