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-adapter | Kit |
|---|---|
new Connection(url) | createSolanaRpc(url), or .use(solanaRpc({ rpcUrl })) on a client |
PublicKey | Address — coerce a string with address("...") |
Keypair | generateKeyPairSigner() or the @solana/kit-plugin-signer plugins |
SystemProgram.transfer(...) | getTransferSolInstruction(...) from @solana-program/system |
LAMPORTS_PER_SOL math | lamports(...) from @solana/kit |
Transaction / VersionedTransaction | Transaction 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
- Kit client — assemble a client from plugins.
- React —
@solana/reactbindings and wallet hooks. - Next.js tutorial — a full app end to end.
Is this page helpful?