> ## 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.

# Di chuyển từ Privy

> Chuyển một ứng dụng ví nhúng Privy hiện có sang Helius Wallet-as-a-Service

Di chuyển từ Privy là **di chuyển mã, không phải di chuyển ví**. Bạn thay provider và hook của Privy bằng các thành phần tương ứng của Helius — mô hình khái niệm (ví nhúng, không lưu ký, đăng nhập qua mạng xã hội/passkey) vẫn giữ nguyên. Phần **không** được chuyển sang là các ví hiện có của người dùng: không thể nhập ví Privy vào Turnkey, vì vậy mỗi người dùng sẽ nhận được một **ví nhúng Helius mới trong lần đầu tiên họ đăng nhập** vào ứng dụng của bạn.

Thay đổi lớn còn lại liên quan đến chi phí: Privy tính phí theo số ví hoạt động hằng tháng ngoài chi phí RPC, trong khi Helius tính 200 credit cho mỗi chữ ký thông qua [credit](/docs/vi/billing/credits) mà bạn đã có.

## Những gì được di chuyển — và những gì không

* **Được di chuyển (tích hợp của bạn):** provider, hook, cấu hình đăng nhập và RPC. Đây là phần thay đổi mã trong [các bước bên dưới](#di-chuyển-tích-hợp-của-bạn) — thường chỉ mất vài giờ.
* **Không được di chuyển (ví của người dùng):** ví, khóa và số dư Privy hiện có. Turnkey không thể nhập chúng, vì vậy mỗi người dùng sẽ tạo một ví nhúng Helius mới trong lần đăng nhập đầu tiên.

<Warning>
  **Nếu bạn có 1.000 người dùng Privy đang có tiền:** sau khi bạn di chuyển, mỗi người
  đăng nhập và nhận một ví nhúng Helius **mới, trống** tại một địa chỉ khác.
  Số dư Privy của họ vẫn nằm trong các ví cũ. Việc chuyển tiền là một bước riêng
  do người dùng khởi tạo và bạn điều phối (xem [Ví và tiền của người dùng
  của bạn](#ví-và-tiền-của-người-dùng)) — cả Helius lẫn Turnkey đều không thể chuyển
  tiền thay cho người dùng.
</Warning>

## Ánh xạ từ Privy sang Helius WaaS

| Privy                                                            | Helius WaaS                                                                                  |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `PrivyProvider` với `appId`                                      | `HeliusWalletProvider` với `{ apiKey }`                                                      |
| `usePrivy()` — `login`, `logout`, `user`                         | `useHeliusWallet()` — `login`, `logout`, `user`, `status`                                    |
| `useSolanaWallets()` / ví nhúng                                  | `address`, `signTransaction`, `signAndSendTransaction`, `signMessage` từ cùng một hook       |
| Phương thức đăng nhập được thiết lập trong bảng điều khiển Privy | Phương thức đăng nhập được thiết lập trong bảng điều khiển Helius (**WaaS → Configuration**) |
| `exportWallet()`                                                 | `exportWallet()`                                                                             |
| Tính phí theo MAU + nhà cung cấp RPC riêng                       | Một hóa đơn: 200 credit / chữ ký qua credit Helius, bao gồm RPC                              |

## Di chuyển tích hợp của bạn

Các bước này chuyển mã của bạn từ Privy sang Helius. Không bước nào tác động đến ví của người dùng cuối — nội dung đó được trình bày [bên dưới](#ví-và-tiền-của-người-dùng).

<Steps>
  <Step title="Swap the provider">
    Thay `PrivyProvider` bằng `HeliusWalletProvider` và truyền khóa API Helius thay cho `appId` của Privy. Xem [Thiết lập](/docs/vi/waas/quickstart#thiết-lập).
  </Step>

  <Step title="Swap the hook">
    Thay các lệnh gọi `usePrivy()` / `useSolanaWallets()` bằng `useHeliusWallet()`. `login`, `logout`, `user` và `exportWallet` được ánh xạ trực tiếp; chức năng ký được chuyển sang cùng hook đó (`signTransaction`, `signAndSendTransaction`, `signMessage`).
  </Step>

  <Step title="Move auth config to the dashboard">
    Cấu hình các phương thức đăng nhập trong bảng điều khiển tại **WaaS → Configuration** thay vì trong props của provider — xem [Cấu hình phương thức đăng nhập](/docs/vi/waas/configuration#cấu-hình-phương-thức-đăng-nhập).
  </Step>

  <Step title="Point RPC at Helius">
    Hoạt động gửi đã được định tuyến qua Helius. Loại bỏ cấu hình nhà cung cấp RPC độc lập và sử dụng `connection` / `rpcUrl` từ hook, hoặc thêm [trình xử lý route](/docs/vi/waas/quickstart#thiết-lập) để tối ưu hóa việc đưa giao dịch lên chuỗi bằng Sender.
  </Step>
</Steps>

## Ví và tiền của người dùng

Trong lần đăng nhập đầu tiên sau khi bạn triển khai thay đổi, mỗi người dùng sẽ nhận được một **ví nhúng Helius hoàn toàn mới** — có địa chỉ khác với ví Privy và số dư bằng 0. Các ví Privy cũ và tiền trong đó không bị ảnh hưởng.

Nếu cần giúp người dùng giữ lại số dư hiện có, hãy lên kế hoạch cho một **khoảng thời gian di chuyển**:

<Steps>
  <Step title="Surface the new address">
    Hiển thị địa chỉ Helius mới cho từng người dùng đã đăng nhập (`address` từ `useHeliusWallet()`).
  </Step>

  <Step title="Have users move their funds">
    Người dùng chuyển tiền từ ví Privy cũ sang địa chỉ Helius mới. Đây là thao tác riêng cho từng người dùng và do người dùng khởi tạo — cả Helius lẫn Turnkey đều không thể chuyển tiền thay cho họ.
  </Step>

  <Step title="Retire the old integration">
    Sau khi người dùng đã chuyển sang ví Helius, hãy loại bỏ SDK Privy.
  </Step>
</Steps>

<Note>
  **Người dùng không thể tiếp tục sử dụng ví hiện có của họ sao?** Không thể dùng ví đó
  để thay thế ví nhúng. Ví bên ngoài được cung cấp như một
  **phương thức đăng nhập** — ví này xác thực người dùng vào một ví nhúng Helius nhưng
  không trực tiếp vận hành các khóa của ví bên ngoài. Việc ký trực tiếp từ
  ví bên ngoài sẽ hoàn toàn bỏ qua Helius (không ký bằng Turnkey, không đo lường mức sử dụng),
  nên đây không phải là phương án thay thế cho ví nhúng mà ứng dụng của bạn sử dụng.
</Note>
