ABOUT THIS PROJECT

Sepolia Gacha NFT

Ethereum Sepolia 테스트넷에서 구동되는 개인 포트폴리오 프로젝트입니다. Chainlink VRF v2.5를 활용한 검증 가능한 공정 확률 뽑기와 ERC-721 NFT 민팅을 구현했습니다.

백엔드 없이 온체인 로직과 프론트엔드 상태 조회만으로 전체 흐름을 구현한 것이 핵심입니다. 확률값은 컨트랙트 상수로 고정되어 있으며, 누구든 Etherscan에서 직접 검증할 수 있습니다.

USER FLOW
01
지갑 연결
MetaMask Chrome 확장을 통해 Sepolia 테스트넷에 연결합니다.
02
0.001 ETH 결제
pull() 함수를 호출하며 Sepolia ETH를 지불합니다. VRF 요청이 시작됩니다.
03
VRF 난수 생성
Chainlink 오라클이 검증 가능한 난수를 생성해 컨트랙트 콜백을 호출합니다.
04
등급 결정
randomWord % 10,000 값으로 노말/레어/에픽/전설 등급이 결정됩니다.
05
NFT 클레임
claim() 호출 시 ERC-721 NFT가 민팅되어 지갑에 전송됩니다.
DEPLOYED CONTRACT
Network
Ethereum Sepolia Testnet
Contract Address
0x02972c2eA288b8E50593e4d27C7C8b2dB5b45dba
Etherscan →
TECH STACK
Smart Contract
Solidity 0.8.20OpenZeppelin ERC-721Chainlink VRF v2.5Hardhat 2.x
Frontend
Next.js 14 (App Router)TypeScriptethers.js v6MetaMask EIP-1193
Storage
IPFSPinata (pinning)https://gateway.pinata.cloud/ipfs/
Network
Ethereum Sepolia TestnetChainID: 11155111Sepolia Etherscan
핵심 설계 원칙
🔒
재진입 공격 방지
claim()에 nonReentrant 적용, claimed 상태를 mint 전에 갱신
콜백 최소화
fulfillRandomWords()에서 결과 저장·emit만 수행, 민팅 금지
📊
확률 불변성
확률 상수는 immutable 구조, 변경 함수 없음
🛡️
일시정지 보호
pause 중에도 claim() 허용 — 이미 결제된 요청 보호
확률표
DROP RATES
확률표
CHAINLINK VRF · 검증 가능
노말
0 ~ 6,999
70%
레어
7,000 ~ 8,999
20%
에픽
9,000 ~ 9,799
8%
전설
9,800 ~ 9,999
2%
⚠️ 테스트넷 전용 고지

이 dApp은 Ethereum Sepolia 테스트넷에서만 작동하며, 사용되는 ETH와 NFT는 실제 금전적 가치가 없습니다. 메인넷 배포 계획은 없으며 교육 및 포트폴리오 목적으로만 제작되었습니다. Sepolia ETH는 sepoliafaucet.com에서 무료로 받을 수 있습니다.