OnChainOS를 활용한 토큰 분위기 체크 에이전트 구축하기
요약
OnChainOS API를 활용하여 암호화폐 토큰의 리스크를 분석하고 1~10점 사이의 점수를 매기는 CLI 에이전트 구축 방법을 소개합니다. TypeScript를 사용하여 개발자 평판, 홀더 집중도, 번들링 여부 등 9가지 지표를 자동 조사합니다.
핵심 포인트
- OnChainOS API를 통한 온체인 데이터(리스크, 클러스터, 개발자 정보) 확보
- 9가지 가중치 적용 지표를 활용한 자동화된 '분위기 점수(vibe score)' 산정
- TypeScript 기반의 200줄 미만 경량 CLI 에이전트 구현
- 스캠 및 러그풀 방지를 위한 보안 휴리스틱 적용
200줄 미만의 TypeScript 코드로 모든 암호화폐 토큰에 대해 전체 배경 조사를 수행하고 1~10점 사이로 점수를 매기는 CLI 에이전트를 구축한 방법입니다.
아이디어 (The Idea)
매일 수천 개의 토큰이 온체인 (onchain) 상에 출시됩니다. 대부분은 스캠 (scam), 러그 (rug), 또는 허니팟 (honeypot)입니다. 어떤 토큰에든 에이프 인 (ape into) 하기 전에, 당신은 다음과 같은 질문에 대한 답을 얻어야 합니다:
- 개발자가 이전에 러그 (rugged)를 한 적이 있는가?
- 공급량이 번들링 (bundled) 또는 스나이핑 (sniped) 되었는가?
- 상위 10명의 홀더 (holders)가 너무 많은 물량을 통제하고 있는가?
- 클러스터 집중도 리스크 (cluster concentration risk)는 어떠한가?
나는 이 모든 질문에 답할 수 있는 단일 명령어를 원했습니다. 즉, 거래하기 전에 명확한 1~10점 사이의 "분위기 점수 (vibe score)"를 제공하는 터미널에서 실행되는 **에이전트 (agent)**입니다.
왜 OnChainOS인가? (Why OnChainOS?)
OKX의 OnChainOS는 정확히 이러한 데이터를 제공하는 풍부한 마켓 API (Market APIs) 세트를 노출합니다:
- 토큰 상세 정보 (Token advanced-info) — 리스크 관리 수준 (risk control level), 개발자 평판 (dev reputation), 번들/스나이퍼 보유량 (bundle/sniper holdings)
- 클러스터 개요 (Cluster overview) — 홀더 집중도 (holder concentration), 러그 풀 확률 (rug pull probability), 신규 지갑 비율 (new wallet percentage)
- 가격 정보 (Price info) — 시가 총액 (market cap), 유동성 (liquidity), 홀더 (holders), 24시간 거래량 (24h trading volume)
- 토큰 개발자 정보 (Token Dev Info) (pump.fun) — 이 개발자가 생성한 토큰 수 대비 러그를 한 토큰 수
- 토큰 번들 정보 (Token Bundle Info) — 새로 출시된 토큰에 대한 번들러 탐지 (bundler detection)
- 유사 토큰 (Similar tokens) — 동일한 개발자가 만든 다른 토큰들
이 모든 것은 HMAC-SHA256 인증을 사용하는 단일 REST API를 통해 접근할 수 있습니다.
아키텍처 (Architecture)
┌──────────────┐ ┌──────────────────────────────────────────┐
│ index.ts │────▶│ client.ts │
│ CLI entry │ │ Promise.all (6 parallel OnChainOS API │
...
점수 산정 알고리즘 (The Scoring Algorithm)
점수는 **9개의 가중치 적용 지표 (weighted metrics)**를 통해 계산됩니다. 각 지표는 일반적인 DeFi 보안 휴리스틱 (security heuristics)에서 도출된 임계값 (thresholds)을 사용하여 1~10점으로 점수가 매겨집니다:
// 가중치 분포 (Weight distribution)
const METRICS = [
{ name: "Risk Level", weight: 20, source: "riskControlLevel" },
...
각 지표에 대해, 점수를 결정하는 임계값을 정의합니다:
// 예시: 상위 10명 보유자 비율 (%) 점수 산정
const top10Thresholds: [number, number][] = [
[10, 10], // ≤10% → 만점
...
];
최종 점수는 (weightedSum / totalWeight) * 10 입니다.
HMAC-SHA256 인증
OnChainOS API는 커스텀 HMAC-SHA256 서명 방식을 사용합니다. 각 요청에는 다음이 필요합니다:
export function getHeaders(auth, method, requestPath, bodyOrQuery) {
const timestamp = new Date().toISOString().slice(0, -5) + "Z";
const message = timestamp + method + requestPath + bodyOrQuery;
...
주의할 점: 타임스탬프 형식은 공식 JS 예제와 일치해야 합니다 — 밀리초를 제외해야 합니다 (.slice(0, -5) + "Z").
병렬 API 호출 (Parallel API Calls)
6개의 엔드포인트 호출은 모두 Promise.all을 사용하여 병렬로 실행되므로, 전체 체크 시간은 가장 느린 엔드포인트의 시간(~300-500ms)만큼만 소요됩니다:
const [priceInfo, advancedInfo, clusterInfo] = await Promise.all([
postJson("dex/market/price-info", [...]);
getJson("dex/market/token/advanced-info", {...});
...
밈 토큰 체인(Solana, BSC)의 경우, 개발자 평판(dev reputation) 및 번들 탐지(bundle detection)를 위해 memepump 전용 엔드포인트를 추가로 쿼리합니다.
CLI 출력
디스플레이 모듈은 색상 코드가 적용된 출력을 위해 picocolors (chalk를 대체하는 2KB 크기의 의존성 없는 라이브러리)를 사용합니다:
- 🟢 초록색 (score ≥ 8) — "Solid vibes"
- 🟡 노란색 (score ≥ 6) — "Decent, some caution"
- 🟠 주황색 (score ≥ 4) — "Risky"
- 🔴 빨간색 (score < 4) — "High risk"
각 지표에는 시각적 바(bar)가 표시됩니다:
Risk Level: LOW ████████░░ 8/10
Top 10 Holders: 9.59% ██████████ 10/10
배운 점
- 병렬 처리 (Parallelism)의 중요성 — 6개의 엔드포인트(endpoints)에 대해
Promise.all을 사용함으로써 응답 시간을 약 1.5초에서 약 400ms로 단축했습니다. - HMAC 주의사항 — 문서 예제와 타임스탬프(timestamp) 형식 간의 불일치로 인해 인증(auth) 실패가 발생했습니다. 설명글보다는 코드 예제를 따르세요.
- 모든 엔드포인트가 모든 곳에서 작동하지는 않음 — memepump 엔드포인트는 Solana/BSC/TRON에서만 작동합니다. 이를 우아하게 처리(handle gracefully)하세요.
- TypeScript의 가치 — 10개 이상의 API 응답 인터페이스(interfaces) 덕분에 런타임(runtime) 이전에 3개의 필드 이름 오타를 잡아낼 수 있었습니다.
- Picocolors > Chalk — CLI 도구의 경우, 2KB 대 20KB의 차이는 실질적인 차이를 만듭니다.
확장 아이디어
- 자동 매매 에이전트 (Auto-trade agent) — 분위기 체크(vibe checker) 기능을 OnChainOS DEX Swap API와 결합하세요: 점수가 7점 이상이면 매수(buy)를 실행합니다.
- 텔레그램 봇 (Telegram bot) — CLI를 봇으로 감싸서 이동 중에도 토큰 조사를 할 수 있게 만드세요.
- 대시보드 (Dashboard) — 점수를 SQLite에 기록하고, 시간에 따른 트렌드를 보여주는 Svelte 대시보드를 구축하세요.
직접 시도해보기
git clone https://github.com/harishkotra/token-vibe.git
cd token-vibe
npm install
...
OKX Developer Portal에서 무료 API 키를 받으세요.
코드 및 상세 정보: https://www.dailybuild.xyz/project/165-token-vibe
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기