사전 요구 사항

필요한 도구

  • Node.js 18+ - JavaScript 런타임
  • pnpm (추천) 또는 npm/yarn - 패키지 관리자
  • Git - 버전 관리
  • Base ETH가 있는 지갑 - 배포 및 거래를 위함

빠른 시작 옵션

SDK 설치하기

pnpm add @b3dotfun/sdk

프로젝트 설정

# 새 프로젝트 생성
mkdir my-bondkit-app
cd my-bondkit-app
pnpm init

# 의존성 설치
pnpm add @b3dotfun/sdk typescript
pnpm add -D @types/node tsx

# TypeScript 설정 생성
npx tsc --init

환경 구성

기본 설정

프로젝트 루트에 .env 파일 생성:
# 서버 측 작업에 필요
WALLET_PRIVATE_KEY=0x...

# 선택사항: 사용자 정의 RPC 엔드포인트 (기본값으로 공개)
RPC_URL=https://base-mainnet.g.alchemy.com/v2/YOUR_KEY

# 선택사항: API 구성
BONDKIT_API_ENDPOINT=https://api.b3.fun

보안 모범 사례

버전 관리에 개인 키를 커밋하지 마세요!
  • .env.gitignore에 추가
  • 프로덕션에서 환경 변수 사용
  • 키 관리 서비스 사용 고려
  • 개발과 프로덕션에 별도의 지갑 사용

클라이언트 초기화

기본 설정

import { BondkitTokenFactory } from "@b3dotfun/sdk/bondkit";
import { base } from "viem/chains";

// 개인 키를 사용한 서버 측 사용
const factory = new BondkitTokenFactory(
  base.id, 
  process.env.WALLET_PRIVATE_KEY
);

// 지갑 제공자를 사용한 클라이언트 측 사용
const clientFactory = new BondkitTokenFactory(base.id);
await clientFactory.connect(window.ethereum);

고급 구성

import { 
  BondkitTokenFactory, 
  BondkitToken,
  getConfig 
} from "@b3dotfun/sdk/bondkit";
import { createWalletClient, custom } from "viem";
import { base } from "viem/chains";

// 사용자 정의 지갑 클라이언트 설정
const walletClient = createWalletClient({
  chain: base,
  transport: custom(window.ethereum)
});

// 사용자 정의 구성으로 초기화
const config = getConfig(base.id);
const factory = new BondkitTokenFactory(base.id);

// 사용자 정의 지갑 클라이언트로 연결
await factory.connect(walletClient.transport);

// 기존 토큰 작업
const token = new BondkitToken(
  "0x123...", // 토큰 주소
  process.env.WALLET_PRIVATE_KEY
);

TypeScript 구성

BondKit 프로젝트에 권장되는 tsconfig.json:
{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "lib": ["ES2020", "DOM"],
    "moduleResolution": "node",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "allowJs": true,
    "noEmit": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules"]
}

설정 테스트하기

test-bondkit.ts 테스트 파일 생성:
import { BondkitTokenFactory } from "@b3dotfun/sdk/bondkit";
import { base } from "viem/chains";

async function testConnection() {
  try {
    const factory = new BondkitTokenFactory(base.id);
    const implementationAddress = await factory.getImplementationAddress();
    
    console.log("✅ BondKit SDK가 성공적으로 연결되었습니다!");
    console.log("구현 주소:", implementationAddress);
  } catch (error) {
    console.error("❌ 연결 실패:", error);
  }
}

testConnection();
테스트 실행:
npx tsx test-bondkit.ts

다음 단계

문제 해결