연결 중…
연결 중…
전체 보기
크립토메이지
Telegram · @cryptocurrencymage

요즘 집중해서 하는 프로젝트 퍼플(Perpl)

게시
2026.07.21 15:43
조회
601
포워드
21
이미지
2장

모나드가 최근 에이브, 메타마스크쪽의 지원을 확실히 받고 있으며, 가격 자체도 많이 눌렸다 반등중

모나드 에코를 믿는다면 알파 플레이는 여기라고 보는중

  • Purple Summer 16주: 거래 → 주간 mPoints → $MON 풀 $500k~$1M(최소 $500k 개런티)
  • 주간 포인트 프로그램 + 토너먼트 $50k + $100k
  • = Perpl 포인트 + $MON 이중 노출, 아직 초기 느낌

자동매매 3스텝
1. app.perpl.xyz/apikeys → Trade 스코프 + IP 제한으로 키 발급
2. AI에 아래 프롬프트 복붙 → 작동 봇 생성
3. perpl_auth.py 인증 모듈 붙이면 끝

함정 3개 (필수)

  • t:3=숏청산 / t:4=롱청산 (공식 문서와 반대 — )
  • 취소 프레임엔 가격(p) 넣지 말 것
  • WS 정상종료(1000/1001) 시 좀비화 → asyncio.wait(FIRST_COMPLETED)로 재연결

안전: dry 먼저 → 소액 테스트 → 라이브 / IP 제금지 / 공식 perpl.xyz만(스캠 주의)
---AI에 복붙하는 프롬프트

너는 파이썬 트레이딩 봇 개발자야. 아래 스펙에 정확히 맞춰 Perpl(Monad L1 퍼프 DEX) 공식 API로
매매하는 완전한 파이썬 스크립트를 작성해. 라이브러리는 requests, websockets, cryptography만 사용. [인증]- API키 = Ed25519 키페어. 환경변수: PERPL_APIL_API_KEY_SECRET(32바이트 개인키 hex, 0x접두허용).

  • REST 서명: 카노니컬 문자열 = 아래 6개를 "\n"(줄바꿈)으로 연결

chain_id / HTTP메서드(GET,POST) / request-target(path+쿼리스트링 그대로) / timestamp_ms / nonce(랜덤16바이트
base64url) / sha256(body) hex(빈바디는 빈문자
ext (무인증) → markets 배열. 각 마켓 {id, name(BTC/ETH/SOL/..), config:{price_decimals, size_decimals, maker_fee, taker_fee}}.

  • 스케일링: p = round(price × 10^price_decimals), s = round(size × 10^size_decimals). 잔고/손익 값은 1e6 스케일.
  • Market Data WS = wss://app.perpl.xyz/ws/v1/market-data (무인증).

구독: {mt:5, subs:[{stream:"order-book@<market_id>", subscribe:true}]}
구독응답 mt:6에서 stream→sid 매핑. 오더북)은 sid로 식별(마켓id 아님). mt:16은 한쪽만오는 부분갱신 있으니 반대편은 직전값 유지.

[주문 — Trading WS로 mt:22 전송]
{mt:22, rq, mkt, acc, t, p, s, fl, lv, lb}

  • rq: 계정 단위 멱등키, "엄격 증가". 연결 후 count.lfr로 시드 → rq = max(로컬카운터, lfr) +

1. rq <= lfr 이면 sr:32(거부).

  • acc: 계정 id (mt:19/21에서 취득).
  • t: 주문 타입 — 1=롱오픈, 2=숏오픈, 3=숏청산, 4=롱청산, 5=취소, 7=변경.

★함정★ 공식 문서 표는 t:3/4를 CloseLong/CloseShort로 적어놨지만 "실제는 반대"다(3=숏청산, 4=롱청산). 반대로 보내면 sr:11로 거부되니 위 매핑을 따를 것.

  • p: 가격(스케일). 시장가/IOC는 0.
  • s: 수량(스케일).
  • fl(TIF): 0=GTC, 1=PostOnly, 2=FOK, 4=IOC.
  • lv: 레버리지 × 100 (예: 10배 = 1000).
  • lb: 마지막 유효 블록 = 현재블록(heartbeat m~6 권장. 너무 크면 거부).
  • 취소 프레임: {mt:22, t:5, oid, acc, rq, mkt격(p) 필드를 넣지 말 것"(넣으면 거부).

[수신 메시지]- mt:100 heartbeat: h=현재 블록번호(lb 계산용 +1이 아니면(갭) 재연결.- mt:19 WalletSnapshot: as[]에 계정 [{id, b( {trp(실현손익,1e6)}]. (계정 없으면 as[]비어있음)

  • mt:21 AccountUpdate, mt:23 주문스냅샷, mt:2배열 안), mt:25 체결, mt:26/27 포지션(역시 d[]안, sd:1=롱/2=숏), mt:28 계정통계.
  • 상태코드 sr: 0/43=정상(43=체결완료), 9/16=I1=사이드오류(t코드 확인), 28=취소완료, 32=rq

낮음, 35=post-only가 북에 rest됨(정상), 13=po 상 방어).

[요구사항]
1. PERPL_MODE 환경변수: dry(전송 안 하고 로그만) / live(실전송). 기본 dry.
2. 재연결 로직: WS가 정상종료(1000/1001)로 닫gather가 멈추는 사고가 흔하니,asyncio.wait(FIRST_COMPLETED)로 "어느 태스크든 끝나면 전부 취소하고 재연결" 패턴을 쓸 것.
3. 안전장치: 세션 시작 trp 대비 실현손실이 상한 초과하면 호가 중단(halt). 손익은 trp만 신뢰.
4. 예시 전략: BTC 마켓에서 best bid/ask에 pos REFRESH_SEC마다 갱신하는 간단한 마켓메이킹루프. 인벤토리 상한 넘으면 IOC로 청산.
5. 실행법 주석으로 명시(pip install, 환경변수 export).

완전한 단일 파일 파이썬 스크립트로 출력해.

Perpl

조회601포워드21텔레그램에서 보기