# WHITE FLAG — 판매 연결 순서

2026-09-29 · 1 FLAG + 개인 선언서 PDF / US$7.42

현재 사이트는 연습 공개 상태입니다. 실제 BTC 수납, 이메일 발송, Base 메인넷 발행·지급은 아직 연결하지 않았습니다. 코드를 준비한 것과 외부 서비스가 실제 작동하는 것은 서로 다른 단계입니다.

## 1. 연결된 도메인으로 이메일 발신을 준비합니다

`https://aiwhiteflag.com`의 소유권·DNS·HTTPS 연결은 완료되었습니다. 사이트 주소를 다시 구매하거나 DNS 웹사이트 레코드를 변경할 필요는 없습니다.

다음 단계는 `declaration@aiwhiteflag.com` 발신 주소 인증입니다. 이 주소는 아직 활성화되지 않았습니다.

1. Resend에서 Domains → Add domain으로 소유 도메인 또는 이메일 전용 하위 도메인을 추가합니다.
2. Resend가 제시하는 DNS 레코드를 Porkbun에 등록합니다. 기존 웹사이트 및 수신 메일 레코드는 유지하고, 필요한 항목만 추가합니다.
3. Verified 상태를 확인하고 sending-access API 키와 메일 이벤트 연결을 설정합니다.
4. 발송 접수·수신 서버 배달·반송을 구분하여 시험합니다.

도메인 연결 완료가 MetaMask 경고의 공식 해제를 뜻하지는 않습니다. 지갑 연결과 서명의 중지 상태는 유지합니다.

공식 안내: https://resend.com/docs/dashboard/domains/introduction

## 2. 이메일 배달 알림을 연결합니다

Resend webhook 주소:

`https://whiteflag-declaration.chulusdfa.chatgpt.site/api/shop/mail-hook`

이벤트: email.sent, email.delivered, email.delivery_delayed, email.bounced, email.failed, email.suppressed, email.complained.

호스팅 비밀 설정에 RESEND_API_KEY, RESEND_WEBHOOK_SECRET, MAIL_ENCRYPTION_KEY를 등록하고 MAIL_FROM에 인증된 발신 주소를 넣습니다. MAIL_ENCRYPTION_KEY는 보관된 발송 내용 복호화에 필요하므로 안전하게 백업하고 임의 교체하지 않습니다. 실제 값은 채팅·코드·스크린샷에 넣지 않습니다.

발송 접수는 메일 서비스가 요청을 받았다는 뜻입니다. 수신 서버 배달 확인은 상대 메일 서버에 전달되었다는 뜻으로, 받은편지함 도착이나 열람을 보증하지 않습니다. 반송·스팸 신고가 있으면 같은 주소에 반복 발송하지 않습니다. 서비스의 공식 webhook 시험으로 서명 검증과 실제 배달 결과를 확인해야 합니다.

## 3. BTC 결제 상점을 준비합니다

BTCPay Server 상점과 BTC 수령 지갑을 준비합니다. 직접 운영하거나 호스팅 업체를 사용합니다. 서버·Lightning 운영비가 생길 수 있으며, 무료로 영구 운영된다고 가정하지 않습니다.

- BTC 온체인을 활성화합니다. Lightning은 실제 운영 가능한 경우에만 추가합니다.
- 상점의 API 키는 청구서 생성·조회 권한으로 제한합니다. 출금·전체 서버 관리 권한은 이 사이트에 주지 않습니다.
- BTCPAY_URL, BTCPAY_STORE_ID, BTCPAY_API_KEY, BTCPAY_WEBHOOK_SECRET을 호스팅 설정에 등록합니다.
- 알림 주소는 `/api/shop/payment-hook`입니다. invoice settled, invalid, expired, processing 등 상태 변경 알림을 연결합니다.
- 사이트는 USD 7.42 청구서를 요청하고 BTCPay가 당시 BTC 결제 금액을 정합니다. BTC 시세와 구매자의 전송 수수료는 변합니다.
- 사이트는 BTC-CHAIN/BTC-LN만 요청하고 미달 허용률 0, 온체인 MediumSpeed 정책을 지정합니다. 설치한 BTCPay 버전에서 이 요청이 정확히 적용되는지 시험합니다.
- Settled + additionalStatus None, 상점·주문·금액·통화가 모두 맞아야 자동 결제로 인정합니다. 미달·초과·지연·수동 정산 표시는 별도 확인 대상입니다.
- 청구서 생성 중 끊기면 새 결제를 만들지 않고 기존 주문 번호로 상점 내 기록부터 찾습니다.

공식 안내: https://docs.btcpayserver.org/Development/ecommerce-integration-guide/

## 4. 메인넷 발행과 지급을 준비합니다

Base Sepolia의 tWFLAG는 이미 연습에 사용한 토큰입니다. Base 메인넷의 WFLAG 발행은 별도로 해야 합니다.

[메인넷 발행 준비 파일](/downloads/WHITE-FLAG-Mainnet-Kit-v1.zip)을 받고 [지갑 배포 안내](/documents/WHITE-FLAG-Mainnet-Deploy.ko.md)를 따릅니다. 다운로드에는 실제 발행 주소나 거래 해시가 없으며, 소유자 지갑의 승인과 거래 성공 확인이 남아 있습니다. 지급 계약은 `paused=true`로 배포됩니다. 결제·메일·지급 연결과 보안 경고 검토 후 제한된 실제 검증 및 운영을 할 때 소유자가 직접 중지를 해제합니다.

준비된 검토용 소스:

- WhiteFlagToken.sol: 총 100,000,000 WFLAG를 지정한 보관 지갑에 한 번 발행합니다. 소수점 18자리, 외부 추가 발행·거래세·블랙리스트·업그레이드 기능이 없습니다.
- WhiteFlagDistributor.sol: 주문당 1~10,000 WFLAG, 첫 실판매 최대 100건 및 누적 10,000 WFLAG를 지급하는 별도 계약입니다. 운영자는 지급 일시 중지와 중지 중 남은 재고 회수가 가능합니다. 이 권한은 판매 안내에 공개해야 합니다.

이 소스는 독립 보안 검토나 실제 메인넷 배포를 완료한 것이 아닙니다. 실제 발행 지갑, 보관 지갑, 운영자 지갑, 소액 지급용 지갑을 구분하고 메인넷 주소를 확정한 뒤 검토·배포·소액 시험을 진행합니다. 지급용 비밀키에 전체 발행 물량을 보관하지 않습니다.

첫 지급 계약에는 10,000 WFLAG를 넣는 계획입니다. 지급용 지갑에는 실제 ETH 수수료가 필요합니다. BTC 수납과 Base ETH는 다른 자산이며 자동 환전하지 않습니다. 코드의 수수료 제한은 현재 추정치를 확인하는 장치이며 미래의 절대 비용을 보증하지 않습니다.

지급 완료는 네트워크의 finalized 기록으로 판단합니다. 현재 보수적인 시험 운영 구조는 앞선 지급의 최종 확정을 기다린 뒤 다음 지급을 처리하므로 주문이 몰리면 대기 시간이 길어집니다. 즉시 수령이나 대규모 자동 판매로 광고하지 않습니다.

## 5. 자동 점검과 운영 안내를 연결합니다

외부 예약 실행 서비스가 약 1분마다 `/api/shop/maintenance`에 POST하고 전용 MAINTENANCE_TOKEN으로 인증하도록 연결합니다. 현재 예약 작업과 오류 알림 수신처는 등록되지 않았습니다.

이 작업은 결제 상태 확인, 이메일 재시도, 사용자가 요청한 지급 상태 확인을 수행합니다. 이메일을 열기만 해서는 토큰이 전송되지 않습니다. 구매자가 받기를 누르면 이미 확인된 주소로 지급하는 구조입니다.

예약 작업이 정상 실행되는 것을 확인한 뒤에만 WF_AUTOMATION_READY를 true로 기록합니다. 사업 운영 주체, 문의 주소, 판매·환불·개인정보 안내와 보관 기간도 확정해야 합니다. 실제 관할과 운영 형태에 맞는 검토가 필요합니다. 도메인, 메일, 결제 서버, RPC, 점검 서비스, 환불·고객 응대·홍보·세금 등 비용을 포함해 수익성을 재계산합니다. 시스템 구축만으로 매출이 생기지는 않습니다.

## 판매를 열기 전에 확인할 결과

1. 실제 발신 주소에서 외부 메일함으로 확인 메일·선언서 링크가 도착합니다.
2. 결제 확정 전에는 토큰을 받을 수 없습니다.
3. 확정된 결제 1건에 선택한 수량만큼 정확히 WFLAG를 받고, 반복 요청해도 추가 지급되지 않습니다.
4. BTC 청구서 만료·미달·중복 알림·연결 끊김을 처리하고 주문 기록이 보존됩니다.
5. 이메일 반송·배달 지연과 지급 실패를 운영자가 확인하고 대응할 수 있습니다.
6. 새 주문을 닫아도 이미 결제한 주문은 확인하고 해결할 수 있습니다.
7. WHITE FLAG 사이트의 MetaMask 분류 문제를 확인합니다. 다른 사이트에서 경고가 없다는 이유만으로 해결 완료라 판단하지 않습니다. 보안 경고를 끄거나 우회하도록 안내하지 않습니다.

현재 WF_MODE=demo, WF_SALES_ENABLED=false이며 사이트 지갑 연결·서명은 중지되어 있습니다. 설정 이름만 채운다고 판매를 자동 시작하지 않습니다. 실제 연동 시험과 남은 검토를 마친 뒤 판매 시작을 별도 진행합니다.
