# WHITE FLAG — 1억 WFLAG 메인넷 발행 안내

상태: 발행용 파일 준비. 실제 Base 메인넷 배포와 판매는 아직 완료되지 않았습니다.

## 1. 받을 지갑부터 확인하기

이 토큰은 배포할 때 **100,000,000 WFLAG 전부를 `treasury` 주소로 한 번 발행**합니다. 입력 주소를 나중에 바꿔 발행을 되돌리는 기능은 없습니다.

기존 연습에서 사용한 주소: `0x0bF58c6680c06A6f5E117148c1F9d8257108D9a7`.
이 주소가 지금도 본인이 관리하는 발행 물량 보관 지갑인지 MetaMask에서 확인하세요. 다른 보관 지갑을 정했다면 그 주소를 사용합니다. 공개 지갑 주소만 사용하며 복구 문구와 비밀키를 문서·채팅·사이트에 입력하지 않습니다.

## 2. 네트워크와 비용

| 항목 | 값 |
|---|---|
| 네트워크 | Base Mainnet |
| Chain ID | 8453 |
| RPC | https://mainnet.base.org |
| 탐색기 | https://basescan.org |
| 수수료 자산 | Base 메인넷 ETH |

Base Sepolia(84532)의 연습 ETH와 tWFLAG는 사용할 수 없습니다. 실제 가스비는 지갑이 계산한 배포 예상 수수료로 확인합니다. 배포하는 지갑에 Base 메인넷 ETH가 필요하며, 이 파일에는 고정된 수수료 견적이 없습니다.

## 3. Remix에서 토큰 발행 준비하기

1. ZIP을 풀고 **`WhiteFlagToken-flat.sol`**을 https://app.remix.live 에 업로드합니다. 파일 하나에 필요한 소스가 포함되어 있습니다.
2. Solidity Compiler를 **0.8.30+commit.73712a01**, Optimization **켜기 / 200**, EVM **shanghai**로 맞추고 컴파일합니다.
3. Deploy & Run에서 **Browser Extension → MetaMask**를 선택합니다. 네트워크가 **Base Mainnet / 8453**인지 확인합니다.
4. 배포할 계약은 **`WhiteFlagToken`**을 선택합니다. `IERC20`, `ERC20`, 인터페이스를 선택하지 않습니다.
5. `treasury`에 1억 WFLAG를 받을 본인 보관 지갑 주소를 넣습니다. **Value는 0 wei**입니다. 가스비는 별도로 지갑에서 계산됩니다.
6. Deploy를 누르면 지갑 확인 창이 열립니다. 네트워크·주소·수수료를 직접 검토한 뒤 승인하면 실제 배포 거래가 전송됩니다. 가스 추정 오류가 있으면 강제 전송하지 말고 오류를 먼저 확인합니다.

파일 다운로드, 컴파일, 지갑 연결만으로는 발행되지 않습니다. 실제 배포에 성공한 뒤에만 다음 단계로 진행합니다.

## 4. 배포 결과 확인하기

BaseScan의 실제 거래 해시와 생성된 계약 주소를 보관합니다. 같은 버튼을 반복해서 눌러 새 토큰을 또 배포하지 않습니다. 이름만 같은 토큰과 혼동하지 않도록 주소를 기준으로 확인합니다.

| 조회 함수 | 기대 결과 |
|---|---|
| name | WHITE FLAG |
| symbol | WFLAG |
| decimals | 18 |
| totalSupply | 100000000000000000000000000 |
| balanceOf(treasury) | 다른 전송 전이라면 100000000000000000000000000 |

18자리 소수점을 적용한 사람용 표시는 **100,000,000 WFLAG**입니다. 소스 검증에는 ZIP의 `WhiteFlagToken.standard-input.json`과 같은 컴파일러 설정을 사용합니다. 검증 완료 표시는 별도로 확인해야 합니다.

발행 성공은 판매 시작과 다릅니다. BTC 수납·선언서 이메일·자동 지급은 아래 준비가 끝나야 동작합니다.

## 5. 자동 지급 계약은 별도로 준비하기

`WhiteFlagDistributor-flat.sol`을 같은 설정으로 컴파일하고 **WhiteFlagDistributor**를 선택합니다. 다음 주소가 확정되기 전에는 배포하지 않습니다.

| 생성자 입력 | 의미 |
|---|---|
| token_ | 방금 검증한 실제 Base 메인넷 WFLAG 계약 주소 |
| owner_ | 지급 중지·해제와 중지 중 재고 회수를 관리할 지갑 |
| relayer_ | 자동 지급만 담당할 전용 지갑. 전체 발행 물량을 보관하지 않음 |
| maxOrders_ | 100 |

지급 계약은 **paused = true**로 시작합니다. 주문당 최대 10,000 WFLAG, 전체 초기 지급 최대 10,000 WFLAG 및 100건입니다. 초기 재고는 검증된 지급 계약에만 10,000 WFLAG를 전송하고, 실제 연동 검증이 끝날 때까지 중지 상태를 유지합니다. 운영자가 중지 중 재고를 회수할 수 있다는 권한을 판매 조건에 공개합니다.

이 지급 계약은 BTC 결제 여부를 직접 알지 못하며, 전용 지급 지갑을 신뢰하는 구조입니다. 서버의 결제 검증과 비밀키 보호가 필요합니다. 비밀키는 호스팅의 보호된 비밀 설정을 통해 연결하며, 공개 소스나 채팅으로 전달하지 않습니다.

## 6. 실제 판매 전 연결할 항목

- 검증된 메인넷 토큰·지급 계약 주소와 전용 지급 지갑
- BTC 상점·입금 지갑·청구서·웹훅
- `aiwhiteflag.com`의 이메일 발신 인증과 실제 수신 확인
- 정기 상태 확인, 오류 대응, 판매·환불·개인정보 안내
- 사이트 보안 경고 원인 확인 및 해결 여부 검증
- 소액 결제부터 주문 수량 지급·이메일·중복 방지까지 실제 환경에서 확인

현재 사이트 설정은 `WF_MODE=demo`, `WF_SALES_ENABLED=false`입니다. 개발 검증은 독립 보안 감사가 아니며, 파일에 실제 발행 주소나 거래 해시를 만들어 넣지 않았습니다.

## BCI 미래 구상과의 관계

BCI는 향후 선택 가능한 보조 입력 방식으로 검토하는 구상입니다. 기기 통합·제휴·일정·이용권은 확정되지 않았습니다. 토큰 계약은 이름, 개인 선언, 신원, 뇌 신호를 저장하지 않습니다. 토큰을 전송해도 선언자의 동의가 다른 사람에게 이전되지 않습니다. 현재 WFLAG 구매가 기기·시술·미래 서비스 권리를 제공하지 않습니다.

## 공식 참고 자료

- Base 네트워크: https://docs.base.org/get-started/connect-to-base
- Remix 배포: https://remix-ide.readthedocs.io/en/latest/run.html
- Remix 컴파일: https://remix-ide.readthedocs.io/en/latest/compile.html
- OpenZeppelin 소스 버전: Contracts 5.4.0, MIT 라이선스 (패키지에 포함)
