Skip to main content
Миграция с Privy — это миграция кода, а не кошельков. Вы заменяете провайдер и хук Privy на соответствующие компоненты Helius. При этом концепция остается прежней: встроенный некастодиальный кошелек и вход через социальные сети или ключ доступа. Однако существующие кошельки пользователей не переносятся: кошельки Privy нельзя импортировать в Turnkey, поэтому каждый пользователь получает новый встроенный кошелек Helius при первом входе в ваше приложение. Еще одно важное отличие — модель оплаты: Privy взимает плату за каждый ежемесячно активный кошелек в дополнение к расходам на RPC, а Helius списывает 200 кредитов за подпись из уже доступных вам кредитов.

Что переносится, а что нет

  • Переносится (ваша интеграция): провайдер, хук, конфигурация входа и RPC. Это замена кода, описанная в шагах ниже, которая обычно занимает несколько часов.
  • Не переносится (кошельки ваших пользователей): существующие кошельки Privy, ключи и балансы. Turnkey не может импортировать их, поэтому каждый пользователь создает новый встроенный кошелек Helius при первом входе.
Если у вас есть 1 000 пользователей Privy со средствами: после миграции каждый из них войдет в систему и получит новый пустой встроенный кошелек Helius с другим адресом. Балансы Privy останутся в старых кошельках. Перевод средств — это отдельный шаг, который пользователь выполняет по вашей инструкции (см. Кошельки и средства пользователей). Ни Helius, ни Turnkey не могут переводить средства от имени пользователя.

Соответствие компонентов Privy и Helius WaaS

Перенос интеграции

Выполните следующие шаги, чтобы заменить Privy на Helius в своем коде. Они не затрагивают кошельки конечных пользователей — это описано ниже.
1

Swap the provider

Замените PrivyProvider на HeliusWalletProvider и передайте ключ API Helius вместо appId от Privy. См. раздел Настройка.
2

Swap the hook

Замените вызовы usePrivy() / useSolanaWallets() на useHeliusWallet(). login, logout, user и exportWallet имеют прямые аналоги; функции подписи доступны через тот же хук (signTransaction, signAndSendTransaction, signMessage).
3

Move auth config to the dashboard

Настройте способы входа в панели управления в разделе WaaS → Configuration, а не в свойствах провайдера. См. раздел Настройка способов входа.
4

Point RPC at Helius

Отправка уже выполняется через Helius. Удалите конфигурацию отдельного провайдера RPC и используйте connection / rpcUrl из хука либо добавьте обработчик маршрута для оптимизированного через Sender включения транзакций в блок.

Кошельки и средства пользователей

При первом входе после выпуска обновления каждый пользователь получает совершенно новый встроенный кошелек Helius с нулевым балансом и адресом, отличным от адреса кошелька Privy. Старые кошельки Privy и средства в них остаются без изменений. Если пользователям нужно сохранить существующие балансы, запланируйте окно миграции:
1

Surface the new address

Покажите каждому вошедшему пользователю его новый адрес Helius (address из useHeliusWallet()).
2

Have users move their funds

Пользователи переводят средства из старого кошелька Privy на новый адрес Helius. Каждый пользователь должен выполнить это действие самостоятельно. Ни Helius, ни Turnkey не могут перевести средства от его имени.
3

Retire the old integration

После перехода пользователей на кошельки Helius удалите SDK Privy.
Могут ли пользователи просто продолжить использовать существующий кошелек? Нет, он не может заменить встроенный кошелек. Внешний кошелек предлагается как способ входа: он аутентифицирует пользователя для доступа к встроенному кошельку Helius, но не управляет ключами внешнего кошелька напрямую. Подписание непосредственно через внешний кошелек полностью обходит Helius — без подписания Turnkey и учета использования, поэтому он не заменяет встроенный кошелек, на котором работает ваше приложение.