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

# 从 Privy 迁移

> 将现有的 Privy 内嵌钱包应用程序迁移到 Helius Wallet-as-a-Service

从 Privy 迁移是一个**代码迁移，而不是钱包迁移**。您将 Privy 的提供商和钩子替换为 Helius 的——心理模型（嵌入式、非托管、社交/密码登录）相同。**不会**继承的是用户现有的钱包：Privy 钱包无法导入到 Turnkey 中，因此每个用户在首次登录您的应用程序时都会获得一个**新的 Helius 内嵌钱包**。

另一个重大变化是经济模式：Privy 在您的 RPC 之外按月活跃钱包计费，而 Helius 通过您已有的[credits](/zh/billing/credits)按每个签名收取 200 点积分。

## 迁移内容与不迁移内容

* \*\*迁移（您的集成）：\*\*提供商、钩子、登录配置和 RPC。这是[下面步骤](#migrate-your-integration)中的代码替换——通常需要几个小时的工作。
* \*\*不迁移（您的用户的钱包）：\*\*现有的 Privy 钱包、密钥和余额。Turnkey 无法导入它们，因此每个用户在首次登录时创建一个新的 Helius 内嵌钱包。

<Warning>
  **如果您有 1,000 个有资金的 Privy 用户：**迁移后，每个用户登录并在不同的地址获得一个**新的、空的** Helius 内嵌钱包。
  他们的 Privy 余额保留在旧钱包中。转移资金是一个单独的、由用户发起的步骤，由您协调（参见[您的用户钱包和资金](#your-users-wallets-and-funds)）—— Helios 和 Turnkey 都无法代表用户转移资金。
</Warning>

## Privy 到 Helius WaaS 的映射

| Privy                                    | Helius WaaS                                                                              |
| ---------------------------------------- | ---------------------------------------------------------------------------------------- |
| `PrivyProvider` with `appId`             | `HeliusWalletProvider` with `{ apiKey }`                                                 |
| `usePrivy()` — `login`, `logout`, `user` | `useHeliusWallet()` — `login`, `logout`, `user`, `status`                                |
| `useSolanaWallets()` / embedded wallet   | `address`, `signTransaction`, `signAndSendTransaction`, `signMessage` from the same hook |
| Login methods set in the Privy dashboard | Sign-in methods set in Helius dashboard (**WaaS → Configuration**)                       |
| `exportWallet()`                         | `exportWallet()`                                                                         |
| Per-MAU billing + separate RPC provider  | One bill: 200 credits / signature via Helius credits, RPC included                       |

## 迁移您的集成

这些步骤将您的代码从 Privy 转换为 Helius。其中没有涉及最终用户的钱包——这是在[下面](#your-users-wallets-and-funds)中介绍的。

<Steps>
  <Step title="替换提供商">
    用 `HeliusWalletProvider` 替换 `PrivyProvider`，并传递您的 Helius API 密钥而不是您的 Privy `appId`。参见[设置](/zh/waas/quickstart#setup)。
  </Step>

  <Step title="替换钩子">
    将 `usePrivy()` / `useSolanaWallets()` 调用替换为 `useHeliusWallet()`。`login`，`logout`，`user` 和 `exportWallet` 直接映射；签名移到同一个钩子 (`signTransaction`, `signAndSendTransaction`, `signMessage`)。
  </Step>

  <Step title="将认证配置移动到仪表板">
    在仪表板中配置您的登录方法于 **WaaS → Configuration** 下，而不是在提供商属性中——参见[配置登录方法](/zh/waas/configuration#configure-sign-in-methods)。
  </Step>

  <Step title="将 RPC 指向 Helius">
    发送已通过 Helius 路由。丢弃独立的 RPC 提供商配置，并使用来自钩子的 `connection` / `rpcUrl`，或添加[路由处理程序](/zh/waas/quickstart#setup)以优化发送者着陆。
  </Step>
</Steps>

## 您的用户钱包和资金

在您进行切换后首次登录时，每个用户会获得一个**全新的嵌入式 Helius 钱包**——与他们的 Privy 钱包不同的地址，余额为零。旧的 Privy 钱包及其资金保持不变。

如果您需要用户保留其现有余额，请规划一个**迁移窗口**：

<Steps>
  <Step title="显示新地址">
    向每个登录用户展示他们的新 Helius 地址 (`address` 来自 `useHeliusWallet()`)。
  </Step>

  <Step title="让用户转移资金">
    用户将资金从旧的 Privy 钱包转移到他们的新 Helius 地址。这是一项每个用户自行发起的操作——无论是 Helius 还是 Turnkey 都不能代表他们转移资金。
  </Step>

  <Step title="退役旧的集成">
    一旦用户使用他们的 Helius 钱包，请移除 Privy SDK。
  </Step>
</Steps>

<Note>
  **用户不能继续使用他们的现有钱包吗？** 不能替代嵌入钱包。外部钱包作为**登录方法**提供——它将用户认证到 Helius 嵌入钱包中，而不是直接操作外部钱包的密钥。直接从外部钱包签名将完全绕过 Helius（没有 Turnkey 签名，无法计量），因此不能替代您的应用程序所运行的嵌入钱包。
</Note>
