Migrating to Kit

If you are coming from @solana/web3.js (v1), @solana/wallet-adapter-*, or the earlier framework-kit packages (@solana/client, @solana/react-hooks, @solana/web3-compat), those approaches are superseded. New apps build directly on @solana/kit and the kit plugins. This page maps the concepts you already know onto their Kit equivalents.

Concept mapping

web3.js v1 / wallet-adapterKit
new Connection(url)createSolanaRpc(url), or .use(solanaRpc({ rpcUrl })) on a client
PublicKeyAddress — coerce a string with address("...")
KeypairgenerateKeyPairSigner() or the @solana/kit-plugin-signer plugins
SystemProgram.transfer(...)getTransferSolInstruction(...) from @solana-program/system
LAMPORTS_PER_SOL mathlamports(...) from @solana/kit
Transaction / VersionedTransactionTransaction messages built and packed by the transaction planner
sendAndConfirmTransaction(...)client.sendTransaction([...]) (planner signs, sends, and confirms)
@solana/wallet-adapter-*@solana/kit-plugin-wallet + Wallet Standard discovery

Coming from web3.js?

If you maintain a large @solana/web3.js v1 codebase and a full rewrite to Kit isn't practical yet, web3.js v3 is the bridge. It currently ships as @solana/web3.js@rc (the 3.0.0-rc line) and rebuilds the classic class-based API — Connection, Keypair, Transaction — on top of @solana/kit internals. Because it sits on Kit, interop is tight: PublicKey is a deprecated alias of Address, and a v3 Keypair structurally satisfies Kit's KeyPairSigner, so you can pass it directly to Kit APIs, plugins, and Codama-generated clients.

v3 is still a release candidate — pin exact versions and expect some API churn between RCs. It is a legacy-interop path, not a default for new work; new apps should build directly on Kit. For the migration itself, see the official web3.js v1 → v3 migration guide.

Wallets

Kit does not use wallet-adapter. @solana/kit-plugin-wallet discovers Wallet Standard wallets and exposes them through client.wallet and the React hooks. Modern wallets (Phantom, Solflare, Backpack, and others) advertise themselves through Wallet Standard, so no per-wallet adapter package is required.

You may also use pre-built tools like @solana/connector, which uses Kit primitives directly to connect to wallets.

Still on wallet-adapter?

If you maintain an app built on @solana/wallet-adapter-* and are not ready to migrate, the wallet-adapter repository remains the reference for that stack. For anything new, prefer the Kit wallet plugin.

Where to go next

Is this page helpful?

Table of Contents

Edit Page
© 2026 Solana Foundation. All rights reserved.