The Solana Foundation has released @solana/web3.js v3, a rebuild of Solana's classic JavaScript library that keeps the Connection, PublicKey, Keypair, and Transaction classes and runs them on Solana Kit underneath. Version 3.0.0 was tagged on October 1, 2026, and it becomes the default npm install on October 19.
October 19, 2026.
@solana/web3.js3.x moves from npm'snexttag tolatest. From then on,npm install @solana/web3.jswith no version gets v3. Until then you need@solana/web3.js@3.
May 29, 2026. Blueshift's David Leung and Dean Little publish the proposal for web3.js 3.0 alongside a release candidate.
October 1, 2026. Version 3.0.0 is tagged, with a new
@solana/wallet-adapterpackage.October 5, 2026. Version 3.0.1 follows as a maintenance release.
From web3.js v1 to Kit
Web3.js v1 was the default way to talk to Solana from JavaScript for about five years. Its core API sits in most of the ecosystem's documentation, tutorials, SDKs, and wallets. Its classes resist tree-shaking, so apps ship code they never call, and the library fell behind the protocol as Solana development sped up.
Kit began as the 2.x line of web3.js and was later renamed. It drops the classes for small composable functions that bundlers can tree-shake, and it adds a typed RPC, WebCrypto signing, codecs, and program clients generated by Codama.
Kit has no Connection or Transaction, so moving to it means learning a new API and rewriting working code. Adoption was slower than hoped and the ecosystem split, with wrappers such as Kite and Gill filling the gap. In the week of September 28, 2026, npm counted 3.14 million downloads of web3.js and 3.19 million of Kit.
web3.js v1 | Kit | web3.js v3 | |
|---|---|---|---|
API style | Classes | Functions | Classes |
Internals | Its own | Kit | Kit |
Bundle size | Largest | Smallest | Between the two |
Works with Codama clients | No | Yes | Yes |
Status | Critical fixes only | Recommended for new apps | New features land here |
What web3.js v3 keeps and changes
Web3.js v3 aims for the best of both, with v1's class names on the outside and Kit on the inside. The proposal sums it up as "Kit as the foundation. Web3.js as the front door to our Typescript ecosystem."
The two libraries now share types. PublicKey.toBase58() returns Kit's Address, a v3 Keypair works as a Kit signer, and Transaction.add() accepts Kit instructions. That lets you call a Codama-generated program client from v1-style code.
Most of the migration is adding await. Key generation, signing, serializing, and PDA derivation are all async in v3.
Six other changes break v1 code.
Numbers. Lamports, slots, and block heights come back as
bigint, and mixing them withnumberthrowsBytes. Account data and serialized transactions are
Uint8Array, where v1 returnedBufferDefault commitment. A
Connectioncreated without one now usesconfirmed, where v1 usedfinalizedPDAs.
findProgramAddressSyncis gone, and youawait PublicKey.findProgramAddressin its placeRemoved.
PublicKey.unique(), theAccountclass,getRecentBlockhash, the fee-calculator methods, and the plain{ publicKey, secretKey }signer objectSPL tokens.
@solana/spl-tokendepends on v1 types and doesn't work with v3, so token code moves to@solana-program/token
The commitment default and the bigint values both compile cleanly and then behave differently at runtime. Set 'finalized' explicitly anywhere finality matters, and run your tests against a real node, since mocks that return plain numbers will hide the problem.
How do you migrate?
Install v3 next to Kit, then work through the type errors.
npm install @solana/web3.js@3 @solana/kit @solana-program/system
Quicknode's v1 to v3 migration guide walks through each change with before and after code. If you use a coding agent, the repository ships a migration skill that has the agent start at your shared Solana wrapper modules, fix removed APIs first, and re-check the project one slice at a time.
Frontends also get a new @solana/wallet-adapter package at version 3. It finds wallets through Wallet Standard, so you no longer construct an adapter per wallet, and it supports Sign In With Solana 1.1.
Web3.js v3 is for teams with v1 code they don't want to rewrite. Solana's docs call it "the bridge" for large legacy codebases and still point new apps to Kit, and a v3 bundle is smaller than v1 without getting as small as a pure Kit app. Web3.js v1 now gets critical fixes only.
The Foundation is betting that the 3 million weekly web3.js installs will take web3.js v3, an upgrade made mostly of await and type fixes, where they wouldn't take a rewrite.