포네 결제 모듈 스펙
원칙
- 모든 가치 이동은 포네로 — 내부 법정화폐 장부 없음
- 온/오프램프는 경계에서만 — bank.crowny.org 와 통합
- 스냅샷 페그 — 챌린지 시작 시 포네/USD 환율 고정. 기간 내 환율 변동 무관
- 온체인 영수증 — 모든 결제·페이아웃 해시가 chain.crowny.org 기록
구조
crowny-trading/포네/
├── 지갑.한선 지갑 조회/생성 (@crowny/bank 연동)
├── 참가비.한선 챌린지 구매 플로우
├── 페이아웃.한선 주간 정산 + 출금
├── 학습크레딧.한선 환급 크레딧 관리
├── 담보.한선 펀디드 계정 포네 담보 관리
└── 페그.한선 환율 스냅샷/조회
플로우
A. 참가비 결제
사용자 → 웹 → 챌린지 선택 → 포네 잔고 확인
→ 부족 시 bank.crowny.org 온램프 (법정 → 포네 스왑)
→ 참가비 차감 (사용자 → 크라우니트레이딩 에스크로)
→ 챌린지 시작 이벤트 (chain.crowny.org)
→ Tradovate 서브계정 생성
B. 주간 페이아웃
매주 일요일 UTC 00:00:
for each 펀디드 사용자:
실현P&L_USD = Tradovate 집계
룰_재검증 = 최근 7일 룰 위반 여부
if (룰_위반) → 페이아웃 보류 + 경고
else:
페이아웃_포네 = USD환산(P&L) × 스케일비율 × 규율계수
지갑 입금 (에스크로 → 사용자)
영수증 해시 온체인 기록
C. 실패 시 학습 크레딧
챌린지 실패 판정 시:
환급_크레딧 = 참가비 × 0.3
학습크레딧 지갑에 입금 (별도 원장, 제한 용도)
D. 펀디드 계정 담보
펀디드 스케일업 시:
요구_담보 = 계정크기 × 3% (포네)
담보 예치 (사용자 → 크라우니트레이딩 담보 풀)
룰 위반 반복 시 담보에서 차감
탈퇴 시 잔여 담보 환불
API 엔드포인트 (중계층)
POST /api/pone/challenge/buy
body: { challenge_id, user_id }
→ { ok, receipt_hash, tradovate_account }
GET /api/pone/wallet
→ { balance, learning_credit, collateral }
POST /api/pone/payout/request
body: { week }
→ { amount, receipt_hash }
POST /api/pone/onramp
body: { amount_krw, method }
→ bank.crowny.org 리다이렉트
GET /api/pone/peg/:challenge_id
→ { peg_rate, snapshot_ts }
bank.crowny.org 통합
- 지갑 인프라는
@crowny/bank 패키지 재사용
- 사용자 식별: 동일 crowny-auth SSO 토큰
- 온램프: KRW → USDT → 포네 (2단 스왑)
- 오프램프: 포네 → USDT → KRW (지역별 라이선스)
스냅샷 페그 상세
챌린지 시작 시 스냅샷:
peg_rate = USD/포네 중간가 (3개 공급자 TWAP)
chain.crowny.org 에 고정
챌린지 기간 중 P&L:
USD_PnL × peg_rate = 포네 지급액
→ 사용자는 환율 변동 리스크 없이 훈련에만 집중
→ 크라우니트레이딩이 환헤지 풀로 흡수
수수료
| 항목 | 요율 | 수취자 |
|---|
| 챌린지 구매 | 0% | — |
| 페이아웃 | 0% (생태계 내) | — |
| 오프램프 (포네 → KRW) | 1.4% | 크라우니뱅크 |
| 펀디드 성과 분배 | 수익의 10% | 크라우니트레이딩 (나머지 90%는 트레이더) |
펀디드 90/10 — APEX(10/90, 스케일 후) 초월. 100% 스케일링은 장기 정상 유저 한정.
리스크 관리
- 에스크로 분리 보관 (운영 자금과 격리)
- 페이아웃 풀 > 예상 페이아웃 합의 2배 상시 유지
- 비상 서킷브레이커: 일일 페이아웃 > 자본의 5% 시 수동 검토
한선씨 구현 우선순위
참가비.한선 — MVP 핵심
페그.한선 — 온체인 연계
페이아웃.한선 — 정산 스케줄러
담보.한선 — 펀디드 단계 필요
학습크레딧.한선 — 별도 원장