# Cryptoments Console IA v2.0 — Admin + Partner 통합 설계

> **버전**: v2.0
> **작성일**: 2026-03-22
> **기반**: DDL v1.8 (38개 테이블) + Admin API 143 endpoints + Partner API 67 endpoints
> **이전 버전**: Admin Console IA v6.2, Partner Console IA v1.2 (DDL 39개 테이블 기준 → 폐기)
> **변경 사유**: DDL v1.6~v1.8 변경 (relayer_wallets 제거, collection_batches 신규, 구독 테이블 제거), 에러 핸들링 체계 변경 (#39/#40), PartnerSubMgmtService 완성 (#42), Telegram 테스트 (#43)

---

## Part 1: Admin Console

### 1.1 대상 사용자

| 역할 | admins.role | 권한 |
|------|-----------|------|
| SUPER_ADMIN | 전체 메뉴 | 모든 기능 접근 |

### 1.2 인증

- **로그인**: admins.login_email + password_hash → `POST /api/admin/auth/login`
- **2FA**: Google Authenticator TOTP → `POST /api/admin/auth/2fa/verify`
- **세션 토큰**: Axim `XBaseAccessTokenHandler` — HMAC-SHA256 기반 (JWT 아님)
- **로그아웃**: `POST /api/admin/auth/logout`

---

### 1.3 메뉴 트리 (9개 섹션, 32개 화면)

```
Admin Console
│
├─ 1. 대시보드
│     ├─ 1.1 운영 요약 (입금/출금/집금 오늘/7일)
│     ├─ 1.2 알림 (출금 승인 대기, Relayer 이상, 잔액 부족)
│     ├─ 1.3 미식별 입금
│     └─ 1.4 정산 요약
│
├─ 2. 파트너 관리
│     ├─ 2.1 파트너 목록 (검색/필터/페이지네이션)
│     ├─ 2.2 파트너 등록
│     ├─ 2.3 파트너 상세
│     │     ├─ 기본 정보 탭
│     │     ├─ 수수료 설정 탭
│     │     ├─ 체인 설정 탭
│     │     ├─ 출금 정책 탭
│     │     ├─ 화이트리스트 탭
│     │     ├─ Telegram 탭
│     │     ├─ Axim 연동 탭
│     │     └─ Webhook 로그 탭
│     └─ 2.4 API 키 재발급 / 2FA 초기화
│
├─ 3. 거래 관리
│     ├─ 3.1 입금 내역
│     ├─ 3.2 입금 세션
│     ├─ 3.3 출금 내역
│     ├─ 3.4 출금 승인/거부 (대기열)
│     ├─ 3.5 집금 현황 (collection_queue + collection_batches)
│     └─ 3.6 결제 링크
│
├─ 4. 지갑 관리
│     ├─ 4.1 지갑 목록 (전체 지갑 주소)
│     ├─ 4.2 지갑 상세 (잔액, approve 상태)
│     ├─ 4.3 HD 지갑 (파생 키 관리)
│     ├─ 4.4 인프라 지갑 (ADMIN/GAS 생성)
│     ├─ 4.5 Wallet Approval (approve 이력/재시도)
│     └─ 4.6 잔액 동기화
│
├─ 5. 블록체인 인프라
│     ├─ 5.1 네트워크 관리 (BSC, TRON, Polygon 등)
│     ├─ 5.2 통화 관리 (USDT, USDC 등)
│     ├─ 5.3 Relayer 관리 (등록/해제/상태/Health)
│     ├─ 5.4 컨트랙트 관리 (등록/pause/unpause/relayer 연결)
│     └─ 5.5 Nonce Tracker (동기화/잠금 해제)
│
├─ 6. 정산/재무
│     ├─ 6.1 원장 조회 (CREDIT/DEBIT/FEE/ADJUSTMENT)
│     ├─ 6.2 원장 잔액 (파트너별 통화별)
│     ├─ 6.3 일별 수수료 집계
│     ├─ 6.4 수수료 집계 요약
│     ├─ 6.5 정산 실현 내역
│     ├─ 6.6 정산 잔액
│     └─ 6.7 정산 출금
│
├─ 7. 가스비
│     ├─ 7.1 가스비 기록
│     ├─ 7.2 인보이스 관리 (생성/납부확인/연체)
│     └─ 7.3 시세 (현재가/이력)
│
├─ 8. CS 도구
│     ├─ 8.1 미식별 입금 (매칭/환불)
│     └─ 8.2 TX Hash 검색
│
└─ 9. 시스템
      ├─ 9.1 관리자 관리 (목록/등록/상태/2FA)
      ├─ 9.2 감사 로그
      ├─ 9.3 시스템 설정
      └─ 9.4 유지보수 모드
```

---

### 1.4 화면별 API 매핑

#### 1. 대시보드

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 1.1 운영 요약 | `/api/admin/dashboard/summary` | GET | 입금/출금 합계, 건수 |
| 1.2 알림 | `/api/admin/dashboard/alerts` | GET | 출금 대기, Relayer 이상 등 |
| 1.3 미식별 입금 | `/api/admin/dashboard/unidentified` | GET | XPage |
| 1.4 정산 요약 | `/api/admin/dashboard/settlement` | GET | 총 수수료, 미실현 등 |

#### 2. 파트너 관리

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 2.1 목록 | `/api/admin/partners` | GET | XPage, 검색/필터 |
| 2.2 등록 | `/api/admin/partners` | POST | 코드/API키 자동생성 + 체인설정 + 지갑 |
| 2.3 상세 | `/api/admin/partners/{id}` | GET | 상위 파트너명 포함 |
| 2.3 정보 수정 | `/api/admin/partners/{id}` | PUT | |
| 2.3 상태 변경 | `/api/admin/partners/{id}/status` | PATCH | ACTIVE↔SUSPENDED→TERMINATED |
| 2.3 수수료 설정 | `/api/admin/partners/{id}/fees` | PUT | parentFeeRate, maxFeeCap, depositFeeRate |
| 2.3 체인 설정 | `/api/admin/partners/{id}/chain-configs` | GET/PUT | 네트워크별 입금방식 |
| 2.3 출금 정책 | `/api/admin/partners/{id}/withdrawal-policy` | GET/PUT | 한도, 자동승인, 화이트리스트 |
| 2.3 화이트리스트 | `/api/admin/partners/{id}/whitelist` | GET/POST/DELETE | 출금 주소 |
| 2.3 Telegram | `/api/admin/partners/{id}/telegram` | GET/PUT | chatId, botTokenRef |
| 2.3 Axim | `/api/admin/partners/{id}/axim` | GET/PUT | Axim Pay 설정 |
| 2.3 Webhook 로그 | `/api/admin/partners/{id}/webhook-logs` | GET | 전달 이력 |
| 2.4 API 키 재발급 | `/api/admin/partners/{id}/api-key/regenerate` | POST | |
| 2.4 2FA 초기화 | `/api/admin/partners/{id}/2fa/reset` | POST | |

#### 3. 거래 관리

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 3.1 입금 내역 | `/api/admin/deposits/deposits` | GET | XPage, 상세+이력 |
| 3.1 입금 상세 | `/api/admin/deposits/deposits/{id}` | GET | |
| 3.1 입금 이력 | `/api/admin/deposits/deposits/{id}/history` | GET | 상태 변경 이력 |
| 3.2 입금 세션 | `/api/admin/deposits/deposit-sessions` | GET | XPage |
| 3.3 출금 내역 | `/api/admin/withdrawals` | GET | XPage |
| 3.3 출금 상세 | `/api/admin/withdrawals/{id}` | GET | |
| 3.3 출금 이력 | `/api/admin/withdrawals/{id}/history` | GET | |
| 3.4 출금 승인 대기 | `/api/admin/withdrawals/pending-approval` | GET | |
| 3.4 단건 승인 | `/api/admin/withdrawals/{id}/approve` | POST | |
| 3.4 단건 거부 | `/api/admin/withdrawals/{id}/reject` | POST | |
| 3.4 일괄 승인 | `/api/admin/withdrawals/batch-approve` | POST | |
| 3.4 일괄 거부 | `/api/admin/withdrawals/batch-reject` | POST | |
| 3.4 재시도 | `/api/admin/withdrawals/{id}/retry` | POST | FAILED 상태만 |
| 3.4 취소 | `/api/admin/withdrawals/{id}/cancel` | POST | |
| 3.5 집금 현황 | `/api/admin/collections` | GET | XPage |
| 3.5 집금 상세 | `/api/admin/collections/{id}` | GET | |
| 3.5 배치 실패 처리 | `/api/admin/collections/batches/{batchId}/fail` | POST | stale 배치 강제 실패 |
| 3.6 결제 링크 | `/api/admin/payment-links` | GET | XPage |

#### 4. 지갑 관리

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 4.1 지갑 목록 | `/api/admin/wallets/wallets` | GET | XPage |
| 4.2 지갑 상세 | `/api/admin/wallets/wallets/{id}` | GET | |
| 4.2 지갑 잔액 | `/api/admin/wallets/wallets/{id}/balances` | GET | |
| 4.3 HD 지갑 | `/api/admin/wallets/hd-wallets` | GET | XPage |
| 4.3 HD 지갑 상세 | `/api/admin/wallets/hd-wallets/{id}` | GET | |
| 4.4 인프라 지갑 목록 | `/api/admin/infra-wallets` | GET | |
| 4.4 ADMIN 지갑 생성 | `/api/admin/infra-wallets/admin` | POST | |
| 4.4 GAS 지갑 생성 | `/api/admin/infra-wallets/gas` | POST | |
| 4.5 Approve 이력 | `/api/admin/wallet-approvals` | GET | XPage |
| 4.5 Approve 재시도 | `/api/admin/wallet-approvals/{id}/retry` | POST | |
| 4.6 잔액 일괄 동기화 | `/api/admin/wallets/sync-balances` | POST | |
| 4.6 단건 동기화 | `/api/admin/wallets/{id}/sync-balance` | POST | |
| 4.6 TX 상태 | `/api/admin/wallets/tx/status/{txHash}` | GET | |
| 4.6 Wallet Index | `/api/admin/wallets/wallet-index` | GET | |

#### 5. 블록체인 인프라

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 5.1 네트워크 | `/api/admin/networks` | GET/POST/PUT | CRUD |
| 5.2 통화 | `/api/admin/currencies` | GET/POST/PUT | CRUD |
| 5.3 Relayer 목록 | `/api/admin/relayers` | GET | XPage |
| 5.3 Relayer 상세 | `/api/admin/relayers/{id}` | GET | |
| 5.3 Relayer 등록 | `/api/admin/relayers` | POST | HD 파생→DB→온체인 |
| 5.3 Relayer 해제 | `/api/admin/relayers/{id}/deactivate` | POST | |
| 5.3 Relayer 상태 | `/api/admin/relayers/{id}/status` | PATCH | |
| 5.3 Relayer Health | `/api/admin/relayers/health` | GET | |
| 5.3 Relayer Live | `/api/admin/relayers/live` | GET | Node.js API 직접 |
| 5.4 컨트랙트 목록 | `/api/admin/contracts` | GET | |
| 5.4 컨트랙트 등록 | `/api/admin/contracts/register` | POST | |
| 5.4 Relayer 추가 | `/api/admin/contracts/add-relayer` | POST | |
| 5.4 Relayer 제거 | `/api/admin/contracts/remove-relayer` | POST | |
| 5.4 Pause/Unpause | `/api/admin/contracts/pause`, `/{networkId}/unpause` | POST | |
| 5.4 상태 조회 | `/api/admin/contracts/{networkId}/status` | GET | |
| 5.5 Nonce 목록 | `/api/admin/nonce-trackers` | GET | XPage |
| 5.5 Nonce 동기화 | `/api/admin/nonce-trackers/{id}/sync` | POST | |
| 5.5 Nonce 잠금해제 | `/api/admin/nonce-trackers/{id}/unlock` | POST | |

#### 6. 정산/재무

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 6.1 원장 | `/api/admin/ledgers` | GET | XPage |
| 6.2 원장 잔액 | `/api/admin/ledgers/balance` | GET | 파트너별 통화별 |
| 6.3 일별 수수료 | `/api/admin/settlements/daily-fees` | GET | XPage |
| 6.4 수수료 요약 | `/api/admin/settlements/daily-fees/summary` | GET | |
| 6.5 실현 내역 | `/api/admin/settlements/realizations` | GET | XPage |
| 6.5 실현 상세 | `/api/admin/settlements/realizations/{id}` | GET | |
| 6.6 정산 잔액 | `/api/admin/settlements/balances` | GET | XPage |
| 6.7 정산 출금 | `/api/admin/settlements/withdraw` | POST | |

#### 7. 가스비

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 7.1 가스비 기록 | `/api/admin/gas-costs` | GET | XPage |
| 7.1 가스비 상세 | `/api/admin/gas-costs/{id}` | GET | |
| 7.1 가스비 면제 | `/api/admin/gas-costs/{id}/waive` | PATCH | |
| 7.2 인보이스 목록 | `/api/admin/gas-invoices` | GET | XPage |
| 7.2 인보이스 상세 | `/api/admin/gas-invoices/{id}` | GET | |
| 7.2 인보이스 생성 | `/api/admin/gas-invoices/generate` | POST | |
| 7.2 납부 확인 | `/api/admin/gas-invoices/{id}/confirm-payment` | POST | |
| 7.2 연체 처리 | `/api/admin/gas-invoices/{id}/overdue` | PATCH | |
| 7.3 현재 시세 | `/api/admin/prices/current` | GET | |
| 7.3 시세 이력 | `/api/admin/prices/history` | GET | XPage |

#### 8. CS 도구

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 8.1 미식별 입금 | `/api/admin/cs/unidentified` | GET | XPage |
| 8.1 파트너 매칭 | `/api/admin/cs/unidentified/{id}/match` | POST | |
| 8.1 환불 | `/api/admin/cs/unidentified/{id}/refund` | POST | |
| 8.2 TX 검색 | `/api/admin/cs/tx-search` | GET | |

#### 9. 시스템

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 9.1 관리자 목록 | `/api/admin/admins` | GET/POST | XPage + 생성 |
| 9.1 관리자 상세 | `/api/admin/admins/{id}` | GET/PUT | |
| 9.1 관리자 상태 | `/api/admin/admins/{id}/status` | PATCH | |
| 9.1 2FA 초기화 | `/api/admin/admins/{id}/2fa/reset` | POST | |
| 9.1 내 2FA 설정 | `/api/admin/admins/me/2fa/setup` | POST | |
| 9.1 내 2FA 검증 | `/api/admin/admins/me/2fa/verify` | POST | |
| 9.2 감사 로그 | `/api/admin/audit-logs` | GET | XPage |
| 9.2 감사 로그 상세 | `/api/admin/audit-logs/{id}` | GET | |
| 9.3 시스템 설정 | `/api/admin/settings` | GET | XPage |
| 9.3 설정 수정 | `/api/admin/settings/{key}` | PUT | |
| 9.4 유지보수 ON | `/api/admin/maintenance/enable` | POST | |
| 9.4 유지보수 OFF | `/api/admin/maintenance/disable` | POST | |

---

## Part 2: Partner Console

### 2.1 대상 사용자

| 파트너 유형 | partners.partner_type | 접근 범위 |
|------------|----------------------|----------|
| MERCHANT | 공통 메뉴만 (1~6, 9~10) | 자신의 데이터만 |
| DISTRIBUTOR | 공통 + 총판 전용 (7~8) | 자신 + 하위 트리 |

### 2.2 인증

- **로그인**: partners.login_email + password_hash → `POST /api/partner/auth/login`
- **2FA**: Google Authenticator TOTP → `POST /api/partner/auth/2fa/verify`
- **비밀번호 분실**: `POST /api/partner/auth/password/forgot` → 이메일 인증 → `POST /api/partner/auth/password/reset`
- **세션**: Axim 토큰 기반
- **로그아웃**: `POST /api/partner/auth/logout`

---

### 2.3 메뉴 트리 (10개 섹션, 28개 화면)

```
Partner Console
│
├─ 1. 대시보드                              [M ✓ | D ✓]
│     ├─ 1.1 오늘의 입금/출금 요약
│     ├─ 1.2 잔액 현황 (통화별)
│     └─ 1.3 최근 7일 거래 추이 차트
│
├─ 2. 입금 관리                             [M ✓ | D ✓]
│     ├─ 2.1 입금 내역 조회
│     ├─ 2.2 입금 세션 관리 (조회/생성)
│     ├─ 2.3 결제 링크 관리                  ⚠️ 생성은 P2 스텁
│     ├─ 2.4 입금 주소 현황
│     ├─ 2.5 집금 현황
│     └─ 2.6 Axim Pay 내역                  ⚠️ 요청 생성은 P2 스텁
│
├─ 3. 출금 관리                             [M ✓ | D ✓]
│     ├─ 3.1 출금 내역 조회
│     ├─ 3.2 출금 요청 (수동)
│     ├─ 3.3 출금 취소
│     └─ 3.4 화이트리스트 관리
│
├─ 4. 잔액/원장                             [M ✓ | D ✓]
│     ├─ 4.1 잔액 현황
│     └─ 4.2 원장 조회
│
├─ 5. 정산                                  [M ✓ | D ✓]
│     ├─ 5.1 일별 수수료
│     ├─ 5.2 정산 실현 내역
│     ├─ 5.3 정산 잔액
│     └─ 5.4 쉐어 출금 요청                  ⚠️ P2 스텁
│
├─ 6. 가스비                                [M ✓ | D ✓]
│     ├─ 6.1 가스비 기록
│     └─ 6.2 인보이스 조회
│
├─ ── 총판 전용 (DISTRIBUTOR ONLY) ────────
│
├─ 7. 하위 파트너 관리                       [D only]
│     ├─ 7.1 하위 파트너 목록
│     ├─ 7.2 하위 파트너 등록                 ✅ Guide #42 완성
│     ├─ 7.3 하위 파트너 상세/수정
│     └─ 7.4 하위 파트너 거래 현황
│
├─ 8. 총판 리포트                            [D only]
│     ├─ 8.1 매출 리포트
│     ├─ 8.2 수수료 수익
│     └─ 8.3 성과 비교
│
├─ ── 공통 설정 ────────────────────────────
│
├─ 9. 연동 설정                             [M ✓ | D ✓]
│     ├─ 9.1 API 키 (조회/재발급)
│     ├─ 9.2 Webhook (설정/테스트/로그)
│     ├─ 9.3 Telegram (설정/테스트)           ✅ Guide #43 완성
│     └─ 9.4 Axim Pay 연동
│
└─ 10. 내 계정                              [M ✓ | D ✓]
      ├─ 10.1 프로필 수정
      ├─ 10.2 비밀번호 변경
      └─ 10.3 2FA 설정
```

---

### 2.4 화면별 API 매핑

#### 1. 대시보드

| 화면 | API | HTTP |
|------|-----|------|
| 1.1 요약 | `/api/partner/dashboard/summary` | GET |
| 1.3 차트 | `/api/partner/dashboard/chart` | GET |

#### 2. 입금 관리

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 2.1 입금 내역 | `/api/partner/deposits` | GET | XPage |
| 2.1 입금 상세 | `/api/partner/deposits/{id}` | GET | |
| 2.2 세션 목록 | `/api/partner/deposit-sessions` | GET | XPage |
| 2.2 세션 생성 | `/api/partner/deposit-sessions` | POST | |
| 2.2 세션 상세 | `/api/partner/deposit-sessions/{id}` | GET | |
| 2.3 결제 링크 목록 | `/api/partner/payment-links` | GET | |
| 2.3 결제 링크 생성 | `/api/partner/payment-links` | POST | ⚠️ P2 스텁 |
| 2.4 입금 주소 목록 | `/api/partner/deposit-addresses` | GET | XPage |
| 2.4 입금 주소 상세 | `/api/partner/deposit-addresses/{id}` | GET | |
| 2.5 집금 현황 | `/api/partner/collections` | GET | XPage |
| 2.5 집금 상세 | `/api/partner/collections/{id}` | GET | |
| 2.6 Axim Pay 내역 | `/api/partner/axim-payments` | GET | |
| 2.6 Axim Pay 요청 | `/api/partner/axim-payments/request` | POST | ⚠️ P2 스텁 |

#### 3. 출금 관리

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 3.1 출금 내역 | `/api/partner/withdrawals` | GET | XPage |
| 3.1 출금 상세 | `/api/partner/withdrawals/{id}` | GET | |
| 3.2 출금 요청 | `/api/partner/withdrawals` | POST | |
| 3.3 출금 취소 | `/api/partner/withdrawals/{id}/cancel` | POST | |
| 3.4 화이트리스트 | `/api/partner/withdrawals/whitelist` | GET/POST/PUT | |

#### 4. 잔액/원장

| 화면 | API | HTTP |
|------|-----|------|
| 4.1 잔액 | `/api/partner/balances` | GET |
| 4.2 원장 | `/api/partner/ledger` | GET |

#### 5. 정산

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 5.1 일별 수수료 | `/api/partner/settlement/daily-fees` | GET | |
| 5.2 실현 내역 | `/api/partner/settlement/realizations` | GET | |
| 5.3 정산 잔액 | `/api/partner/settlement/balance` | GET | |
| 5.4 쉐어 출금 | `/api/partner/settlement/withdraw` | POST | ⚠️ P2 스텁 |

#### 6. 가스비

| 화면 | API | HTTP |
|------|-----|------|
| 6.1 가스비 기록 | `/api/partner/gas-costs` | GET |
| 6.2 인보이스 목록 | `/api/partner/gas-invoices` | GET |
| 6.2 인보이스 상세 | `/api/partner/gas-invoices/{id}` | GET |

#### 7. 하위 파트너 관리 (DISTRIBUTOR only)

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 7.1 목록 | `/api/partner/sub-partners` | GET | XPage |
| 7.2 등록 | `/api/partner/sub-partners` | POST | ✅ #42 완성 |
| 7.3 상세 | `/api/partner/sub-partners/{id}` | GET | |
| 7.3 수정 | `/api/partner/sub-partners/{id}` | PATCH | |
| 7.4 거래 현황 | `/api/partner/sub-partners/overview` | GET | |

#### 8. 총판 리포트 (DISTRIBUTOR only)

| 화면 | API | HTTP |
|------|-----|------|
| 8.1 매출 | `/api/partner/reports/revenue` | GET |
| 8.2 수수료 수익 | `/api/partner/reports/fees` | GET |
| 8.3 성과 비교 | `/api/partner/reports/performance` | GET |

#### 9. 연동 설정

| 화면 | API | HTTP |
|------|-----|------|
| 9.1 API 키 조회 | `/api/partner/integration/api-key` | GET |
| 9.1 API 키 재발급 | `/api/partner/integration/api-key/regenerate` | POST |
| 9.2 Webhook 설정 | `/api/partner/integration/webhook` | PUT |
| 9.2 Webhook 테스트 | `/api/partner/integration/webhook/test` | POST |
| 9.2 Webhook 로그 | `/api/partner/integration/webhook/logs` | GET |
| 9.3 Telegram 조회 | `/api/partner/integration/telegram` | GET |
| 9.3 Telegram 설정 | `/api/partner/integration/telegram` | PUT |
| 9.3 Telegram 테스트 | `/api/partner/integration/telegram/test` | POST |
| 9.4 Axim 설정 | `/api/partner/integration/axim` | GET |

#### 10. 내 계정

| 화면 | API | HTTP |
|------|-----|------|
| 10.1 프로필 조회 | `/api/partner/account/profile` | GET |
| 10.1 프로필 수정 | `/api/partner/account/profile` | PUT |
| 10.2 비밀번호 변경 | `/api/partner/account/password` | POST |
| 10.3 2FA 초기 설정 | `/api/partner/account/2fa/setup` | GET |
| 10.3 2FA 활성화 | `/api/partner/account/2fa/enable` | POST |
| 10.3 2FA 비활성화 | `/api/partner/account/2fa` | DELETE |

#### User Context (Partner-API 추가 엔드포인트)

| 화면 | API | HTTP | 비고 |
|------|-----|------|------|
| 사용자별 입금 | `/api/partner/users/{id}/deposits` | GET | partner_user_id 기반 |
| 사용자별 세션 | `/api/partner/users/{id}/sessions` | GET | |
| 사용자별 결제링크 | `/api/partner/users/{id}/payment-links` | GET | |
| 사용자별 출금 | `/api/partner/users/{id}/withdrawals` | GET | |
| 사용자별 Axim | `/api/partner/users/{id}/axim-payments` | GET | |

---

## Part 3: 종합 통계

### Admin Console

| 항목 | 수 |
|------|---|
| 메뉴 섹션 | 9 |
| 화면 수 | 32 |
| API 엔드포인트 | 143 |
| 스텁 | 0 |

### Partner Console

| 항목 | 수 |
|------|---|
| 메뉴 섹션 | 10 (공통 8 + 총판 2) |
| 화면 수 | 28 |
| API 엔드포인트 | 67 |
| 스텁 | 3 (PaymentLink, AximPay, SettlementWithdraw — 모두 P2) |

### DDL v1.8 기반 데이터 테이블 (38개)

| 섹션 | 테이블 | 주요 화면 |
|------|--------|----------|
| 기반 마스터 (7) | blockchain_networks, currencies, partners, admins, partner_chain_configs, partner_withdrawal_policies, partner_axim_settings | 2. 파트너, 5. 인프라 |
| 지갑 계층 (9) | wallet_addresses, wallet_assignments, wallet_balances, wallet_keys, wallet_approvals, hd_wallets, wallet_index_manager, nonce_tracker | 4. 지갑 |
| 입금 계층 (7) | deposit_sessions, deposits, collection_queue, collection_batches, payment_links, axim_payments | 3. 거래(입금) |
| 출금 계층 (4) | withdrawals, withdrawal_approval_logs, withdrawal_address_whitelist | 3. 거래(출금) |
| Webhook (2) | webhook_events, monitor_address_registrations | 오픈 API 내부 |
| 알림 (2) | partner_telegram_configs, webhook_delivery_logs | 9. 연동 |
| 정산 (3) | ledger_entries, settlement_daily_fees, settlement_realizations | 6. 정산 |
| 시스템 (4) | system_settings, admin_audit_logs, gas_cost_records, gas_invoices | 7. 가스비, 9. 시스템 |

---

## Part 4: Front-End 기술 스택 권장

| 항목 | 추천 | 비고 |
|------|------|------|
| Framework | Next.js 14+ (App Router) | SSR + CSR 혼합, 파일 기반 라우팅 |
| UI Library | shadcn/ui + Tailwind CSS | 컴포넌트 커스터마이즈 용이 |
| State | Zustand | 경량, 직관적 |
| Data Fetching | TanStack Query (React Query) | 서버 상태 + 캐싱 + 페이지네이션 |
| Form | React Hook Form + Zod | 타입 안전 유효성 검증 |
| Table | TanStack Table | 정렬, 필터, 페이지네이션 |
| Chart | Recharts | 대시보드 차트 |
| Auth | 커스텀 (Axim 토큰 기반) | JWT 아님 — 토큰 저장/갱신 직접 구현 |
| i18n | next-intl | 한국어/영어 |
| Monorepo | Turborepo | admin-console + partner-console 공유 컴포넌트 |
