Jito MEV 번들을 사용해 Solana 토큰 번들러를 만든 방법

발행: (2026년 4월 16일 AM 08:15 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

SolBundler를 만들기 시작했을 때 내가 해결하고 싶었던 핵심 문제는 아주 단순했습니다: 스니퍼 봇이 pump.fun 런치를 파괴하고 있었습니다. 토큰이 라이브되자마자 봇이 0번째 블록에서 바로 구매하고 바로 덤프합니다. 개발자는 자신의 런치를 제어할 수 없게 됩니다.

그래서 나는 SolBundler를 만들었습니다 — 토큰을 배포하고 여러 지갑에서 동시에 구매를 Jito MEV 번들에 포함시켜 원자적으로 0번째 블록에서 실행할 수 있게 해주는 도구입니다.

핵심 문제

Solana에서는 트랜잭션이 블록에 포함되기 전 메모풀에 공개됩니다. 스니퍼 봇은 새로운 토큰 배포를 감시하고 즉시 프론트‑런합니다. 실제 구매자들이 토큰을 볼 때쯤이면 봇이 이미 공급량의 20‑40 %를 보유하고 있습니다.

Jito 번들이 해결하는 방법

Jito는 Solana에서 원자적 트랜잭션 번들을 지원하는 블록 엔진입니다. 번들은 모든 트랜잭션이 함께 포함되거나 전혀 포함되지 않는 그룹을 의미합니다 — 같은 블록 안에서.

  • 배포 트랜잭션 + 구매 트랜잭션이 원자적으로 포함
  • 스니퍼가 프론트‑런할 틈이 없음
  • 0번째 블록에서 공급 분배를 직접 제어 가능

기술 스택

  • Next.js 16 + webpack (Turbopack이 아니라 — bs58 호환성 문제 때문에)
  • Helius RPC: 안정적인 Solana 연결 및 폴백 제공
  • Jito 멀티‑엔드포인트: 번들 제출용
  • Supabase: 지갑 저장소 및 런치 히스토리 관리
  • Vercel: 배포

bs58 문제

초기 이슈 중 하나: bs58 v6이 webpack과 호환되지 않았습니다. 해결 방법은 v4.0.1로 고정하고 webpack 별칭을 추가하는 것이었습니다:

// next.config.ts
webpack: (config) => {
  config.resolve.alias['bs58'] = require.resolve('bs58');
  return config;
}

번들 아키텍처

각 런치는 다음 요소들을 포함하는 Jito 번들을 생성합니다:

  • 토큰 배포 트랜잭션
  • 별도 지갑에서 온 최대 20개의 구매 트랜잭션
  • 수수료 트랜잭션 (번들이 확인된 뒤 별도로 전송)

이 번들은 최대 착륙률을 위해 여러 Jito 엔드포인트에 동시에 제출됩니다.

배운 점

Solana에서 개발은 빠르지만 관대하지 않습니다. 트랜잭션 실패는 조용히 사라지고, RPC 노드는 다운될 수 있으며, 피크 시간대에는 Jito 팁을 충분히 높게 설정하지 않으면 번들이 착륙하지 않습니다.

가장 큰 교훈: 항상 폴백 RPC를 준비하라. Helius + 순차적 폴백 덕분에 많은 골칫거리를 피할 수 있었습니다.

Solana에서 개발하거나 pump.fun에서 토큰을 런칭한다면, SolBundler를 확인해 보세요.

SolBundler 스크린샷

0 조회
Back to Blog

관련 글

더 보기 »

React 초보자를 위한 기초

!React Basics for Beginners 표지 이미지 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-upl...