Настройте минимальную интеграцию Solana кошелька в Next.js (App Router) с помощью
@solana/kit, плагинов kit и @solana/react. Вы создадите выпадающее меню для подключения кошелька и компонент перевода SOL.
Next.js Kit App
Ресурсы
Предварительные требования
- Node 20+
- npm
Создание проекта Next.js
$npx create-next-app@latest my-app$cd my-app
В ответ на запросы примите все значения по умолчанию (стартовый шаблон включает Tailwind, который используется в этом руководстве для простых утилитарных стилей).
Два изменения в шаблоне
Стандартный вывод create-next-app требует двух небольших изменений для этого руководства:
- В
tsconfig.jsonустановите"target": "ES2020"(или выше). Суммы переводов используют литералыbigint, например1_000_000_000n, для которых требуется ES2020. - В
app/globals.cssудалите сгенерированный блок@media (prefers-color-scheme: dark)и правило фонаbody. Этот интерфейс только со светлой темой; тёмные настройки по умолчанию иначе переопределят утилитуbg-whiteи сделают страницу нечитаемой в тёмном режиме.
Установка зависимостей Solana
$npm install @solana/kit @solana/kit-plugin-rpc @solana/kit-plugin-wallet @solana/react @solana-program/system
Это руководство ориентировано на Kit 7+, пакеты @solana/kit-plugin-* версии 0.13+
(0.14+ для @solana/kit-plugin-wallet) и @solana/react 7+.
1. Создание Solana Provider
app/providers.tsx создаёт один клиент на уровне модуля и публикует его через
ClientProvider. Плагин walletSigner назначает подключённый кошелёк плательщиком
комиссии и идентификатором; экспортируйте тип клиента, чтобы компоненты могли
типизировать useClient.
2. Обновление Layout
Оберните приложение компонентом Providers. Обновите app/layout.tsx, добавив
импорт и использование:
Это оборачивает всё приложение в контекст Solana, так что все дочерние компоненты могут получить доступ к клиенту и хукам кошелька.
3. Кнопка подключения кошелька
Выпадающее меню для подключения/отключения кошельков Wallet Standard. useWallets
возвращает кошельки, обнаруженные в браузере; useConnect / useDisconnect
возвращают ActionResult — этот компонент использует его поля dispatch,
isRunning и error. Каждый хук кошелька принимает клиент первым аргументом,
поэтому сначала получите его через useClient<AppClient>().
Варианты выпадающего меню кошелька
Выпадающее меню кошелька подключено
4. Перевод SOL
Создайте инструкцию перевода с помощью @solana-program/system и отправьте её через
client.sendTransaction. Подключённый кошелёк подписывает транзакцию и оплачивает комиссию.
Заполненная форма перевода SOL
Успешный перевод SOL
Кошельки обнаруживаются через Wallet Standard; после подключения перевод SOL использует подключённый подписант в качестве плательщика комиссии.
5. Страница
app/page.tsx отображает компоненты подключения кошелька и перевода SOL:
6. Запуск приложения
$npm run dev
Откройте http://localhost:3000, подключите кошелёк в сети Devnet и отправьте перевод SOL.
Is this page helpful?