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

# 钱包

> 了解如何管理您的主钱包

<Note>
  概述<br />
  要利用 Blockradar 的钱包基础设施并为您的客户实现无缝的充值和支付功能，您需要创建至少一个主钱包。
</Note>

## 前提条件

在创建和管理钱包之前，请确保您已完成以下步骤：

<Steps>
  <Step title="Blockradar 账户">
    在 [dashboard.blockradar.co](https://dashboard.blockradar.co) 注册并完成账户设置。
  </Step>

  <Step title="API 密钥">
    从 [Blockradar 控制面板](https://dashboard.blockradar.co) 获取您的 API 密钥。导航至 **Developers** 生成密钥。
  </Step>

  <Step title="选择区块链">
    确定您想要支持的区块链网络。查看 [支持的区块链和资产](/zh/essentials/integrations) 列表。
  </Step>

  <Step title="配置 Webhooks">
    通过控制面板设置 Webhook URL 以接收充值和交易通知。详情请参阅 [Webhooks](/zh/essentials/webhooks)。
  </Step>
</Steps>

<img src="https://mintcdn.com/blockradar/64A03IYihpNQBVVT/images/wallets-home.png?fit=max&auto=format&n=64A03IYihpNQBVVT&q=85&s=edaa1f6d27007d1296d0468d505e89bb" alt="钱包首页" width="3452" height="1910" data-path="images/wallets-home.png" />

## 简介

主钱包是您使用 Blockradar API 进行大多数操作的基础。这些钱包让您可以在 Blockradar 支持的多条区块链上管理稳定币充值。查看 Blockradar [支持的区块链和资产列表](/zh/essentials/integrations)。

当您为特定区块链创建主钱包时，您可以通过该主钱包管理与该区块链相关的所有事务：

1. 为客户生成专属地址，用于在多条区块链上接收稳定币充值。
2. 将外部管理的地址加入白名单，用于稳定币充值监控。
3. 自动归集：启用后，所有充值到专属地址的稳定币将自动归集到主钱包。
4. 提现：您可以轻松从主钱包地址向外部地址发起稳定币提现。

### 创建钱包

创建主钱包需要四个步骤：

1. 选择您要创建钱包的区块链。
2. 添加您需要此主钱包支持的稳定币。
3. 配置钱包 Webhook URL。当稳定币充值到通过此钱包生成的任何专属地址时，将使用此 URL 进行通知和数据同步。
4. 为主钱包充值。如果您希望启用从专属地址到主钱包的稳定币自动归集以及向外部地址提现，您需要在主钱包中保持一定数量的区块链原生资产余额。

<Note>
  通过任何一个主钱包生成的专属地址可以用于在所有其他区块链主钱包上接收充值，前提是这些区块链的 `isEvmCompatible: true`。

  这意味着您可以为客户提供单一的唯一地址，用于在多条区块链上接收稳定币充值，无需担心他们将稳定币发送到错误的区块链。
</Note>

#### 创建主钱包

要创建主钱包，请进入控制面板，导航到钱包部分，然后创建钱包以开始为您的客户构建无缝体验。

Blockradar 控制面板提供了简单易用的界面来生成主钱包。

<img className="block" src="https://mintcdn.com/blockradar/fWg7SGpNBqmitg8P/images/create-wallet1.png?fit=max&auto=format&n=fWg7SGpNBqmitg8P&q=85&s=8ad8eb393d945313ce0a2d993695df54" alt="创建钱包" width="3448" height="1600" data-path="images/create-wallet1.png" />

<Note>
  此截图演示了通过 Blockradar 控制面板生成新主钱包的过程。此方法适用于手动创建地址或偏好图形界面的团队。
</Note>

<Warning>
  环境隔离<br />
  在正式环境中创建的钱包与该环境隔离。同样，在测试环境中创建的钱包（包括为客户创建的专属地址）也是如此。
</Warning>

<Info>
  **每条区块链一个主钱包。** Blockradar 每个账户每条区块链网络只允许创建一个主钱包。如需支持新的区块链，必须为其单独创建一个主钱包。在单个主钱包下，您可以根据需要创建任意数量的子地址，以按用户、应用或其他用途分隔资金。不支持为同一条区块链创建多个主钱包。
</Info>

## 钱包配置

Blockradar 主钱包支持两个关键配置选项，帮助您管理资金和用户体验：**自动归集** 和 **免 Gas 交易**。

### 自动归集

**启用**
启用后，充值到此钱包下地址的资金将自动归集（转移）到主钱包。这有助于整合余额、提高安全性并简化资金管理。

**阈值**
设置触发自动归集所需的每个子地址最低余额。如果留空，任何金额的充值都将触发自动归集。这允许您控制归集频率并优化 Gas 费用。

* **默认设置：** 默认情况下，自动归集设置为 true，阈值为 0
* **地址覆盖：** 在生成或更新地址时，您可以为该特定地址覆盖自动归集的启用/禁用和阈值设置。

<Note>
  [地址](/zh/essentials/addresses)级别的 `auto-sweeping` 和 `threshold` 设置将覆盖该地址的主钱包配置。这允许对每个地址的自动归集行为进行精细控制。
</Note>

**最佳实践：**
启用自动归集并设置适当的阈值，以在及时的资金整合和最小化交易费用之间取得平衡。

<img className="block" src="https://mintcdn.com/blockradar/fWg7SGpNBqmitg8P/images/auto-sweeping1.png?fit=max&auto=format&n=fWg7SGpNBqmitg8P&q=85&s=1dc4ca3d57608051daca823853f547f1" alt="自动归集" width="3456" height="1552" data-path="images/auto-sweeping1.png" />

### 免 Gas 交易

配置主钱包何时为子地址提现支付 Gas 费用。

**启用免 Gas 提现**
启用后，符合条件的提现的 Gas 费用将由主钱包支付，为用户提供无缝体验。

**阈值设置**
设置免 Gas 提现的金额阈值。只有达到此阈值的交易才会由主钱包支付 Gas 费用。
您可以使用算术运算符指定阈值逻辑：

| 运算符   | 描述   | 示例（阈值 = 100）    |
| ----- | ---- | --------------- |
| `gt`  | 大于   | 仅限提现金额 `> 100`  |
| `gte` | 大于等于 | 仅限提现金额 `>= 100` |
| `lt`  | 小于   | 仅限提现金额 `< 100`  |
| `lte` | 小于等于 | 仅限提现金额 `<= 100` |
| `eq`  | 等于   | 仅限提现金额 `= 100`  |

* **默认设置：** 免 Gas 交易默认设置为 `false`，阈值设置为 0。
* **地址覆盖：** 在生成或更新地址时，您可以为该特定地址覆盖免 Gas 交易的启用/禁用和阈值设置。

<Note>
  [地址](/zh/essentials/addresses)级别的启用 `gasless transaction` 和 `threshold` 设置将覆盖该地址的主钱包配置。这允许对每个地址的免 Gas 提现行为进行精细控制。
</Note>

**最佳实践：**
启用免 Gas 提现并设置适当的阈值逻辑，以在用户体验和运营成本之间取得平衡。

* 根据您的业务需求和安全要求设置钱包级别配置。
* 仅在需要特定地址有不同行为时使用地址级别覆盖。

<img className="block" src="https://mintcdn.com/blockradar/fWg7SGpNBqmitg8P/images/gasless-transaction1.png?fit=max&auto=format&n=fWg7SGpNBqmitg8P&q=85&s=ad0f6958e27c1a9267cd1b27a94b8760" alt="免 Gas 交易" width="3456" height="1642" data-path="images/gasless-transaction1.png" />

### 充值

为主钱包充值对于支付区块链上的 Gas 费用至关重要，包括从专属地址`自动归集`稳定币到主钱包以及向外部钱包提现。

#### 在测试环境中

* **Ethereum**：在此获取测试 ETH：[Alchemy](https://www.alchemy.com/faucets/ethereum-sepolia) 或 [Infura](https://www.infura.io/faucet/sepolia)
* **Binance Smart Chain**：在此获取测试 BNB：[Faucet](https://www.bnbchain.org/en/testnet-faucet)
* **Polygon**：在此获取测试 MATIC：[Polygon PoS (Amoy)](https://faucet.polygon.technology/)
* **Base**：在此获取测试 ETH：[Alchemy](https://www.alchemy.com/faucets/base-sepolia)
* **Optimism**：在此获取测试 ETH：[Alchemy](https://www.alchemy.com/faucets/optimism-sepolia)
* **Arbitrum**：在此获取测试 ETH：[Alchemy](https://www.alchemy.com/faucets/arbitrum-sepolia)
* **Tron**：在此获取测试 TRX：[Faucet](https://nileex.io/join/getJoinPage)
* **Solana**：在此获取测试 SOL：[Faucet](https://faucet.solana.com/)
* **Celo**：在此获取测试 CELO：[Faucet](https://faucet.celo.org/alfajores)

#### 正式环境

对于正式环境，您可以从任何支持各区块链原生资产的钱包或交易所发送资产。

<Note>
  归集<br />
  请始终确保主钱包中有足够的余额，以避免自动归集或提现延迟。当您的主钱包余额不足时，我们会通知您。
</Note>

### Gas 费用：测试环境与正式环境

了解测试环境和正式环境之间 Gas 费用的差异对于高效开发和部署至关重要。

#### 测试环境 Gas 费用

在测试环境中，Gas 费用很低。测试网旨在模拟主网环境，但不会产生相关的实际成本。因此，测试网中少量的 Gas 代币可以使用很长时间。这使开发者能够测试和迭代其集成，而无需产生大量费用。

#### 正式环境 Gas 费用

在正式环境中，Gas 费用代表实际开支。这些成本可能会根据区块链和网络拥堵情况而有很大差异。正确估算和管理 Gas 费用对于确保应用程序的顺利运行和避免过高成本至关重要。

通过利用测试网进行开发和测试，您可以最大限度地减少开支，并确保您的解决方案在部署到主网之前是稳健的。

## 充值查找器

在极少数情况下，客户向其分配的任何地址发送稳定币后，您可能未收到我们系统的 Webhook。我们内部构建了充值查找机制，但您也可以使用 [充值查找器 API](/zh/api-reference/wallet/deposit-finder) 通过提供 `transactionHash` 来触发区块链上缺失交易的重新扫描。

<CodeGroup>
  ```bash Curl theme={null}
  curl --request POST \
    --url https://api.blockradar.co/v1/wallets/{id}/rescan/blocks \
    --header 'Content-Type: application/json' \
    --header 'x-api-key: <api-key>' \
    --data '{
    "transactionHash": "string<TRANSACTION_HASH_OPTIONAL>"
  }'
  ```

  ```js JavaScript theme={null}
  const options = {
    method: 'POST',
    headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
    body: '{"blockNumber":"number<BLOCK_NUMBER_OPTIONAL>","transactionHash":"string<TRANSACTION_HASH_OPTIONAL>"}'
  };

  fetch('https://api.blockradar.co/v1/wallets/{id}/rescan/blocks', options)
    .then(response => response.json())
    .then(response => console.log(response))
    .catch(err => console.error(err));
  ```

  ```php PHP theme={null}
  <?php

  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.blockradar.co/v1/wallets/{id}/rescan/blocks",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "{\n  \"blockNumber\": \"number<BLOCK_NUMBER_OPTIONAL>\",\n  \"transactionHash\": \"string<TRANSACTION_HASH_OPTIONAL>\"\n}",
    CURLOPT_HTTPHEADER => [
      "Content-Type: application/json",
      "x-api-key": '<api-key>'
    ],
  ]);

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  ```
</CodeGroup>

<Note>
  *请求体参数*<br />
  必需参数是 `transactionHash`，可以从原始交易记录中获取，或通过在区块链浏览器上查询交易获得。
</Note>

<br />

<br />

Happy hacking! 💚
