> ## Documentation Index
> Fetch the complete documentation index at: https://docs.killb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK

> KillB 官方 SDK，用于构建应用程序

## 简介

探索我们的 SDK，用于构建加密支付应用程序、出入金集成等。

<Info>
  KillB SDK 通过提供类型安全、开发者友好的接口来简化与 KillB API 的集成。
</Info>

## 可用的 SDK

<CardGroup cols={2}>
  <Card title="JavaScript/TypeScript SDK" icon="js" href="/zh/sdks/javascript">
    KillB API 的官方 Node.js 和 TypeScript SDK

    **npm:** `@killb/sdk`
  </Card>

  <Card title="Python SDK" icon="python" href="/zh/sdks/python">
    KillB API 的官方 Python SDK（即将推出）

    **pip:** `killb-sdk`
  </Card>

  <Card title="Go SDK" icon="golang" href="/zh/sdks/go">
    KillB API 的官方 Go SDK（即将推出）

    **go:** `github.com/killb/killb-go`
  </Card>

  <Card title="PHP SDK" icon="php" href="/zh/sdks/php">
    KillB API 的官方 PHP SDK（即将推出）

    **composer:** `killb/sdk`
  </Card>
</CardGroup>

## 为什么使用 SDK？

<AccordionGroup>
  <Accordion title="类型安全" icon="shield-check">
    完整的 TypeScript 支持，包含自动补全和类型检查

    ```typescript theme={null}
    // TypeScript 知道响应结构
    const user = await killb.users.create({
      type: 'PERSON',
      data: { /* 自动补全可用 */ }
    });
    ```
  </Accordion>

  <Accordion title="简化的身份验证" icon="key">
    自动令牌管理和刷新

    ```javascript theme={null}
    const killb = new KillB({
      email: 'your-email@example.com',
      password: 'your-password'
    });
    // 自动处理身份验证
    ```
  </Accordion>

  <Accordion title="内置错误处理" icon="triangle-exclamation">
    带有有用消息的类型化错误

    ```javascript theme={null}
    try {
      await killb.ramps.create(rampData);
    } catch (error) {
      if (error.code === 'RAMP.0001') {
        // 处理过期的报价
      }
    }
    ```
  </Accordion>

  <Accordion title="开发者体验" icon="code">
    * 支持 async/await
    * 基于 Promise 的 API
    * 全面的文档
    * 积极维护
    * 社区支持
  </Accordion>
</AccordionGroup>

## 快速对比

| 功能         | REST API | JavaScript SDK | Python SDK |
| ---------- | -------- | -------------- | ---------- |
| **设置**     | 手动身份验证   | 简单配置           | 简单配置       |
| **类型安全**   | ❌        | ✅ TypeScript   | ✅ 类型提示     |
| **身份验证管理** | 手动       | 自动             | 自动         |
| **错误类型**   | 通用       | 类型化            | 类型化        |
| **IDE 支持** | 有限       | 优秀             | 良好         |
| **学习曲线**   | 中等       | 简单             | 简单         |

## 快速开始

<Steps>
  <Step title="选择您的 SDK">
    选择适合您编程语言的 SDK
  </Step>

  <Step title="安装">
    通过包管理器安装（npm、pip 等）
  </Step>

  <Step title="初始化">
    使用您的 API 凭据进行配置
  </Step>

  <Step title="构建">
    开始使用 SDK 方法与 KillB 交互
  </Step>
</Steps>

## 常见用例

<Tabs>
  <Tab title="入金">
    ```javascript theme={null}
    // 使用 SDK 完成入金流程
    const killb = new KillB(config);

    // 1. 创建用户
    const user = await killb.users.create({
      type: 'PERSON',
      data: userData
    });

    // 2. 创建钱包
    const wallet = await killb.accounts.create({
      type: 'WALLET',
      userId: user.id,
      data: walletData
    });

    // 3. 获取报价
    const quote = await killb.quotations.create({
      fromCurrency: 'COP',
      toCurrency: 'USDC',
      amount: 100000,
      cashInMethod: 'PSE',
      cashOutMethod: 'POLYGON'
    });

    // 4. 创建入金
    const ramp = await killb.ramps.create({
      quotationId: quote.id,
      userId: user.id,
      accountId: wallet.id
    });

    console.log('支付 URL:', ramp.paymentInfo[0].url);
    ```
  </Tab>

  <Tab title="出金">
    ```javascript theme={null}
    // 使用 SDK 完成出金流程
    const killb = new KillB(config);

    // 获取报价
    const quote = await killb.quotations.create({
      fromCurrency: 'USDC',
      toCurrency: 'COP',
      amount: 100,
      cashInMethod: 'POLYGON',
      cashOutMethod: 'PSE'
    });

    // 创建出金到银行账户
    const ramp = await killb.ramps.create({
      quotationId: quote.id,
      userId: user.id,
      accountId: bankAccount.id
    });

    console.log('发送 USDC 到:', ramp.paymentInfo[0].address);
    ```
  </Tab>

  <Tab title="Webhooks">
    ```javascript theme={null}
    // SDK 包含 webhook 辅助函数
    import { verifyWebhookSignature } from '@killb/sdk';

    app.post('/webhooks/killb', (req, res) => {
      const isValid = verifyWebhookSignature(
        req.body,
        req.headers['x-signature-sha256'],
        process.env.WEBHOOK_SECRET
      );
      
      if (!isValid) {
        return res.status(401).send('无效签名');
      }
      
      // 处理 webhook
      handleEvent(req.body);
      res.status(200).send('OK');
    });
    ```
  </Tab>
</Tabs>

## SDK 功能

<CardGroup cols={3}>
  <Card title="自动重试" icon="rotate">
    使用指数退避自动重试
  </Card>

  <Card title="令牌刷新" icon="clock">
    在过期前自动刷新令牌
  </Card>

  <Card title="请求日志" icon="list">
    内置调试日志
  </Card>

  <Card title="错误处理" icon="shield">
    结构化错误响应
  </Card>

  <Card title="类型定义" icon="file-code">
    完整的 TypeScript 定义
  </Card>

  <Card title="Webhook 辅助函数" icon="webhook">
    签名验证工具
  </Card>
</CardGroup>

## 社区与支持

<CardGroup cols={3}>
  <Card title="GitHub" icon="github" href="https://github.com/Kill-Bkillb-sdk">
    查看源代码并贡献
  </Card>

  <Card title="NPM" icon="npm" href="https://www.npmjs.com/package/@killb/sdk">
    查看包详情
  </Card>

  <Card title="电子邮件支持" icon="envelope" href="mailto:tech@killb.com">
    联系我们的团队
  </Card>
</CardGroup>

## 下一步

<CardGroup cols={2}>
  <Card title="JavaScript SDK" icon="js" href="/zh/sdks/javascript">
    开始使用 JavaScript/TypeScript SDK
  </Card>

  <Card title="REST API" icon="code" href="/zh/api-reference/introduction">
    直接使用 REST API
  </Card>
</CardGroup>
