先决条件

所需工具

  • Node.js 18+ - JavaScript 运行时
  • pnpm(推荐)或 npm/yarn - 包管理器
  • Git - 版本控制
  • 带有基础 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 配置

推荐的 tsconfig.json 配置,适用于 BondKit 项目:
{
  "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

下一步

故障排除