Pacifica 펀딩비 파밍 봇
스팟 매수 + perp 숏으로 델타뉴트럴 포지션을 만들어 펀딩비를 수취하는 자동화 봇. 펀딩비가 높은 코인을 자동 스캔해 진입하고, 펀딩비가 떨어지면 자동 청산한다. 모든 주문에 Builder Code 첨부 지원 (수수료 수익).
전략 (config.yaml의 strategy_mode로 선택)
hedged — 델타뉴트럴 (안전)
- 펀딩비가 양수면 롱이 숏에게 지급 → 스팟 매수 + 같은 수량 perp 숏 = 가격 변동 중립, 펀딩만 수취
- 대상: 스팟+perp 동시 상장 코인만 (현재 메인넷은 SOL 정도)
- 가격이 오르든 내리든 손익 없음. 펀딩 음수일 땐 기회 없음(대기)
directional — 펀딩 방향 추종 (⚠️ 가격 위험 노출)
- 펀딩 양수 → perp 숏 단독 / 펀딩 음수 → perp 롱 단독으로 펀딩 수취
- 대상: 전체 perp (~69개), |펀딩| 큰 코인 자동 선택
- 펀딩 방향이 뒤집히거나 약해지면 자동 청산
- 주의: 헤지가 없으므로 코인 가격 변동 손익을 그대로 떠안는다. 펀딩 수익(연 10~수십%)보다 가격 변동(하루 ±5%)이 훨씬 클 수 있음. 펀딩이 극단적으로 높은 코인은 대개 그만한 이유(급변동 중)가 있다는 점 유의
공통:
- 진입: 펀딩 APR ≥
entry_threshold_apr/ 청산: 수취 기준 APR <exit_threshold_apr - 참고: Pacifica 기본 펀딩비는 시간당 0.0000125 ≈ 연 10.9% (이게 평상시 값)
- 스팟 잔고는 크로스마진 담보로 자동 인정됨 (Unified Margin — 별도 설정 불필요)
처음 쓰는 사람용 빠른 시작
누구나 자기 Pacifica 계정으로 이 봇을 쓸 수 있다. 필요한 것: Python 3.10+, Node.js 18+ (MCP 모드용).
- 이 폴더를 다운로드
- 설치.bat 더블클릭 → 패키지 설치 + 환경 진단 자동 실행
.env.example을 복사해.env로 이름 변경 → 본인 지갑 주소와 API 키 입력 (API 키: app.pacifica.fi/apikey에서 발급)- 본인 계정에서 빌더 코드
mustache승인 (이 봇의 주문에 첨부됨, 수수료율 0.01%) - 펀딩스캔.bat으로 시세 확인 → 봇실행.bat으로 가동 (기본 dry-run 안전 모드)
문제가 생기면 python -m mustache_mcp.doctor로 뭐가 빠졌는지 확인.
설치 (수동)
pip install -r requirements.txt
python -m mustache_mcp.doctor # 환경 진단
MCP 모드(api_mode: mcp)를 쓰려면 Node.js 18+도 필요하다 (봇이 npx -y @pacifica-fi/mcp-server를 자동으로 띄움).
API 연결 방식 (config.yaml의 api_mode)
mcp— 봇이 Pacifica 공식 MCP 서버를 자식 프로세스로 띄우고 60개 MCP 도구를 통해 조회/주문 (기본값)rest— REST API 직접 호출 (Node.js 불필요, 의존성 최소)
두 모드는 완전히 같은 전략 로직을 공유하며 언제든 전환 가능하다.
설정
.env.example을.env로 복사하고 값 입력:ADDRESS— Pacifica 계정 주소 (조회/dry-run은 이것도 없이 동작)PACIFICA_API_KEY— API 키 (app.pacifica.fi/apikey에서 발급). 실주문 시에만 필요. 거래 전용이라 지갑 자산은 못 건드림TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID— 텔레그램 알림용 (선택)
config.yaml에서 전략 파라미터 조정 (임계값, 최대 금액, 주기 등)
실행
# 펀딩비 스캔만 (키 불필요)
python -m mustache_mcp.scanner
# 1사이클 테스트
python -m mustache_mcp.main --once
# 봇 상시 가동
python -m mustache_mcp.main
실거래 전환 절차 (반드시 순서대로)
- 테스트넷 +
dry_run: true로 판단 로직 확인 ← 현재 상태 - 테스트넷 +
dry_run: false+ 소액으로 오픈→청산 1사이클 확인 config.yaml의base_url을https://api.pacifica.fi로 변경, 소액부터 시작
Builder Code
- Pacifica 팀에 빌더 등록 요청: ops@pacifica.fi / Discord / 텔레그램 @PacificaTGPortalBot
- 발급받은 코드를
config.yaml의builder_code에 입력 (3-16 영숫자) - 주의: 이 봇을 다른 사용자가 쓰게 하려면, 그 사용자가 먼저 해당 builder code를
승인(
max_fee_rate서명)해야 주문이 통과됨
파일 구조
| 파일 | 역할 |
|---|---|
mustache_mcp/scanner.py |
전 마켓 펀딩비 스캔 + 스팟 상장 필터 |
mustache_mcp/position.py |
델타뉴트럴 오픈/클로즈 (실패 시 롤백) |
mustache_mcp/api_client.py |
REST 클라이언트 (서명 포함) |
mustache_mcp/signing.py |
Solana 키 서명 (공식 SDK 방식) |
mustache_mcp/notify.py |
텔레그램 알림 |
mustache_mcp/state.py |
포지션 상태 저장 (state.json) |
mustache_mcp/main.py |
메인 루프 |
리스크
- 델타뉴트럴이어도 완전 무위험이 아님: 진입/청산 슬리피지, 수수료, 펀딩비 급변, 스팟-perp 가격 괴리(베이시스) 리스크 존재
- 한쪽 레그만 체결되는 상황은 자동 롤백하지만, 롤백 주문도 실패하면 델타 노출 발생 → 긴급 알림 수신 시 수동 확인 필요
max_notional_usd를 감당 가능한 금액으로 유지할 것
Release files for mustache-mcp 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mustache_mcp-0.1.2.tar.gz | 27.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mustache_mcp-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.3 kB
Release files / mustache_mcp-0.1.2.tar.gz
| Download URL | mustache_mcp-0.1.2.tar.gz |
|---|---|
| Size | 27.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3c32f009b15a3da10675e27005d7d7d1544901afea5b7fc61312bdd444c8fd3b
|
|
BLAKE2b-256 checksum How to use checksums |
ec072f86920a858698d0a70731fb5f04a960c4501a3da61e7ff264d866d4aa34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|
Release files / mustache_mcp-0.1.2-py3-none-any.whl
| Download URL | mustache_mcp-0.1.2-py3-none-any.whl |
|---|---|
| Size | 31.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e948550c274a7f5ffb18cef4f0d42a47e5956254ea8be06bbcb18820230d62a3
|
|
BLAKE2b-256 checksum How to use checksums |
9616910cd84e2133250d5d35a02b7f5dc9c4b3d58185f9e7ce0b822a221c0171
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.11
|