Scribble은 차트 위에 전략을 메모하고, 그 메모를 구조화된 전략으로 다듬은 뒤, 연결한 지갑으로 직접 Hyperliquid testnet 주문까지 보낼 수 있는 트레이딩 워크스페이스입니다.
현재 기준 핵심 흐름은 아래와 같습니다.
- 차트 주석 생성 및 편집
- AI 기반 전략 초안 생성
- 전략 검증 및 리스크 요약
- 브라우저 지갑 연결
- Hyperliquid testnet 선물 주문 직접 서명
- 실행 이력 / 대기 주문 / 포지션 / 알림 / 감사 로그 추적
- 차트 annotation 생성 및 수정
- 추세선, 수평선, 박스, 텍스트 메모 추가
- AI 분석 기반 전략 초안 생성
- 진입가 / 손절가 / 익절가 / 포지션 크기 / 레버리지 편집
- 리스크 검증 및 요약
- Hyperliquid testnet 직접 주문
- 시장가 진입
- 지정가 진입
- 조건부(trigger) 진입
- 롱 / 숏
- 레버리지 설정
- 시장가 reduce-only 청산
- 지정가 reduce-only 청산
- 대기 주문 취소
- 알림 등록
- 실행 히스토리 / 오픈 포지션 / 대기 주문 조회
- delegated automation 설정 UI
- 선택적으로 BSC DEX / opBNB proof 연동
- 기본 실주문 경로는 서버 비밀키가 아니라 연결한 브라우저 지갑입니다.
- 프론트엔드가 Hyperliquid testnet API에 직접 접근합니다.
- 사용자가 브라우저 지갑에서 EIP-712 서명을 수행합니다.
- 백엔드는 execution / annotation / audit / notification 상태를 저장하고 갱신합니다.
- React 19
- TypeScript
- Vite
- Express 5
- TypeScript
- Zod
- SQLite 기반 repository
data/app-state.json파일 스냅샷 병행 유지
- Node.js 20+
- npm
- 브라우저 지갑 확장 프로그램
npm installcp .env.example .env최소 실행 기준으로는 아래만 먼저 보면 됩니다.
VITE_API_BASE_URLOPENAI_API_KEYOPENAI_MODEL
OpenAI를 비워두면 AI 분석은 fallback 동작을 사용합니다.
터미널 1:
npm run dev:api터미널 2:
npm run dev:web기본 주소:
- 웹:
http://localhost:5173 - API:
http://localhost:8787 - 헬스체크:
http://localhost:8787/api/v1/health
npm test
npm run build- 앱 상단에서 브라우저 지갑을 연결합니다.
- 연결된 주소 기준으로 annotation / execution 데이터가 구분됩니다.
- 직접 annotation 생성 또는 AI 분석 요청
- 우측 패널에서 전략 필드 수정
- bias
- entry type
- entry / stop loss / take profit
- position size ratio
- leverage
Execute order: 현재entryType기준으로 실행Conditional order: trigger 주문으로 실행Set alert: 알림만 등록Auto-execute: 자동화 정책 설정
- 오픈 포지션 확인
- 시장가 또는 지정가 reduce-only 청산
- 대기 주문 / 대기 청산 주문 취소
- 캔들 차트
- annotation 선택 / 생성
- AI 분석 진입점
- 드로잉 객체 추가
- 전략 상세 편집
- 리스크 요약
- annotation 텍스트 수정
- 대기 주문 취소
- 포지션 청산
- 빠른 실행 버튼
- 주문 / 조건부 주문 / 알림 / 자동화 진입
- 실행 프리뷰
- 예상 슬리피지 / 수수료 / 리스크 확인
- 실제 주문 승인
- executions
- positions
- orders
.env는 로컬 전용입니다. private key, RPC URL, API key는 절대 커밋하지 마세요.
VITE_API_BASE_URL: 프론트엔드가 호출할 API 주소VITE_OPBNB_EXPLORER_BASE_URL: opBNB explorer 링크 베이스 URL
API_PORT: API 서버 포트MARKET_STREAM_INTERVAL_MS: SSE market stream 주기
ENABLE_REAL_MARKET_DATAMARKET_DATA_PROVIDERMARKET_DATA_BASE_URLMARKET_DATA_WS_BASE_URLOPENAI_API_KEYOPENAI_MODELOPENAI_BASE_URL
ENABLE_HYPERLIQUID_TESTNET_EXECUTIONHYPERLIQUID_TESTNET_PRIVATE_KEYHYPERLIQUID_TESTNET_WALLET_ADDRESSHYPERLIQUID_TESTNET_AUTO_TRANSFER
현재 UX의 기본 경로는 지갑 직접 서명이지만, 서버 측 Hyperliquid 경로 코드는 여전히 남아 있습니다.
ENABLE_ONCHAIN_PROOFOPBNB_RPC_URLEXECUTION_REGISTRY_ADDRESSEXECUTOR_PRIVATE_KEY
ENABLE_DEX_EXECUTIONBSC_RPC_URLDEX_ROUTER_ADDRESSDEX_SLIPPAGE_BPSDEX_DEADLINE_SECONDSDEX_MARKET_MAP_JSON
DELEGATED_EXECUTOR_ADDRESSDELEGATION_VAULT_ADDRESS
Draft: 초안Active: 활성 전략 또는 지정가 대기 전략Triggered: 조건부 전략이 주문 상태로 진입함Executed: 포지션 오픈됨Closed: 포지션 종료됨Invalidated: 전략 또는 대기 주문이 취소/무효화됨
Pending: 거래소에 대기 주문 등록됨Executing: 실행 중Filled: 체결 완료PartiallyFilled: 부분 체결Cancelled: 취소됨Failed: 실패
perp_dex: Hyperliquid testnet 선물 주문dex: BSC DEX 실행 경로mock: 로컬 / 모의 실행 경로
npm run dev
npm run dev:web
npm run dev:api
npm run build
npm run test
npm run previewsrc/
components/ UI 컴포넌트
services/ 프론트 API / 지갑 / 직실행 서비스
utils/ 전략 계산 및 보조 함수
data/ 기본 mock 데이터
server/
services/ 실행 / 저장소 / 마켓데이터 / proof 서비스
utils/ 서버 유틸리티
data/
app-state.json 파일 기반 런타임 스냅샷
app-state.sqlite SQLite 저장소
- 기본 실주문은 연결한 브라우저 지갑으로 수행됩니다.
- proof recording과 DEX execution은 선택 기능입니다.
- SQLite와
data/app-state.json이 공존하므로 완전한 DB-only 구조는 아닙니다. - 일부 기능은 테스트넷 전제입니다.
- 별도 인증 시스템이 있는 서비스가 아니라, 현재는 연결 지갑 / 세션 중심의 워크스페이스 모델입니다.
npm installcp .env.example .env- 필요하면
OPENAI_API_KEY,OPENAI_MODEL입력 npm run dev:apinpm run dev:web- 브라우저에서 지갑 연결
- annotation 생성 또는 AI 분석 요청
- Hyperliquid testnet에서 시장가 / 지정가 / 조건부 주문 테스트
별도 라이선스가 지정되지 않은 내부 / 실험용 프로젝트 기준으로 관리 중입니다.