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

# 配置 SDK

> 只需几行代码即可开始并设置 LI.FI SDK。

## 创建配置

要开始使用，您需要为 LI.FI SDK 创建初始配置。此配置包含开发人员将使用的其他 SDK 功能正常运行所需的共享设置和数据。此外，配置可以根据需要稍后更新。

```typescript theme={"system"}
import { createConfig } from "@lifi/sdk";

createConfig({
  integrator: "Your dApp/company name",
});
```

## 参数

| 参数                    | 必需 | 默认值                   | 描述                                                                                                                          |
| --------------------- | -- | --------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `integrator`          | 是  |                       | LI.FI SDK 需要集成商选项来识别合作伙伴并允许他们在合作伙伴仪表板上监控其活动，例如交易量，从而实现更好的管理和支持。通常，集成商选项是您的 dApp 或公司名称。此字符串必须仅由字母、数字、连字符、下划线和点组成，最长为 23 个字符。 |
| `apiKey`              | 否  |                       | 用于访问 LI.FI API 服务的唯一 API 密钥。对于更高的速率限制是必需的。阅读更多[速率限制和 API 密钥](/zh-hans-api-reference/rate-limits)                            |
| `apiUrl`              | 否  | `https://li.quest/v1` | LI.FI API 的基本 URL。这是所有 API 请求路由通过的端点。例如，它可以更改为测试环境以测试新功能。                                                                   |
| `userId`              | 否  |                       | 您的应用程序用户的唯一标识符。这可用于跟踪用户特定数据和与 LI.FI 的交互。                                                                                    |
| `routeOptions`        | 否  |                       | 路由的自定义选项，在使用 `getQuote`、`getRoutes` 和 `getContractCallsQuote` 端点时应用。这些选项可以在 SDK 初始化期间配置一次，或每次调用这些函数时传递。                     |
| `rpcUrls`             | 否  |                       | 链 ID 到 RPC URL 数组的映射。这些 URL 可用于交易执行和数据检索。                                                                                   |
| `chains`              | 否  | 在初始化期间从 LI.FI API 获取  | SDK 将支持的链数组。每个链必须配置必要的详细信息，如链 ID、名称、RPC 等。此信息在报价和路由执行期间使用。                                                                  |
| `preloadChains`       | 否  | `true`                | 指示是否预加载链配置的标志。默认情况下，SDK 将在初始化期间加载链详细信息。                                                                                     |
| `disableVersionCheck` | 否  | `false`               | 禁用 SDK 版本检查的标志。默认情况下，SDK 在初始化时检查其版本，如果有新版本可用，则在控制台中记录消息，提示用户更新 SDK。                                                         |
| `providers`           | 否  |                       | SDK 使用的提供程序配置数组。提供程序是可选的，仅当您计划通过 SDK 执行报价或路由时才需要。阅读更多[配置 SDK 提供程序](/zh-Hans/sdk/configure-sdk-providers)。                   |

<Tip>
  要了解如何使用 `routeOptions` 进行货币化，包括配置费用，请参阅[货币化 SDK](/zh-Hans/sdk/monetize-sdk) 指南。
</Tip>

<Note>
  如果您仅使用 SDK 访问 LI.FI API 而不使用报价/路由 SDK 执行功能并计划独立处理执行，则不需要设置提供程序。
</Note>

## 设置自定义 RPC URL

```typescript theme={"system"}
import { createConfig, ChainId } from "@lifi/sdk";

createConfig({
  integrator: "Your dApp/company name",
  rpcUrls: {
    [ChainId.ARB]: ["https://arbitrum-example.node.com/"],
    [ChainId.SOL]: ["https://solana-example.node.com/"],
  },
});
```

<Warning>
  在生产应用中，建议传递您的经过身份验证的 RPC 提供程序 URL（Alchemy、Infura、Ankr 等）。

  如果未提供 RPC URL，LI.FI SDK 将默认使用公共 RPC 提供程序。

  公共 RPC 端点（尤其是 Solana）有时会根据位置或在高负载期间对用户进行速率限制，导致问题，例如余额显示不正确或交易模拟错误。
</Warning>

## 更新 SDK 配置

LI.FI SDK 提供了各种方法来动态管理和操作 SDK 设置。要更新配置，您需要导入全局配置对象并使用其方法。

```typescript theme={"system"}
import { config } from "@lifi/sdk";
```

使用 `createConfig` 函数创建配置后，`config` 充当全局配置对象。

## 配置方法

| 方法                                       | 描述                                                          |
| ---------------------------------------- | ----------------------------------------------------------- |
| `get()`                                  | 返回当前 SDK 配置。                                                |
| `set(options: SDKConfig)`                | 使用提供的选项设置 SDK 配置。                                           |
| `setProviders(providers: SDKProvider[])` | 在 SDK 配置中设置提供程序。如果提供程序已存在，它将使用新信息进行更新。                      |
| `getChains()`                            | 返回一个解析为配置的链列表的 Promise。如果配置仍在加载中，Promise 将等待加载完成。           |
| `setChains(chains: ExtendedChain[])`     | 在 SDK 配置中设置链并更新链 RPC URL。此方法还会清除加载状态。                       |
| `getChainById(chainId: ChainId)`         | 返回一个解析为指定链 ID 的链配置的 Promise。如果配置仍在加载中，Promise 将等待加载完成。      |
| `getRPCUrls()`                           | 返回一个解析为配置的链的 RPC URL 列表的 Promise。如果配置仍在加载中，Promise 将等待加载完成。 |
| `setRPCUrls(rpcUrls: RPCUrls)`           | 为 SDK 配置中的链设置 RPC URL。如果链的某些 RPC URL 已存在，新 URL 将附加到现有 URL。  |
