Coin Brief ENDE

solana-web3.js 3.0 moves the classic API onto Kit, with async keypairs and a new default commitment

The Solana Foundation published @solana/web3.js 3.0.0 on 1 October, the successor to the 1.x line of the classic class-based JavaScript library; its release notes cover the changes since 1.98.4. It is on npm under the next tag and is due to become latest on 19 October, so a plain install still gets 1.x until then. A new @solana/wallet-adapter 3.0 package ships alongside it, with Sign-In With Solana 1.1 and standalone signing.

What changes underneath. Connection now runs on Solana Kit's typed HTTP and websocket transports from end to end, replacing the old JSON-RPC plumbing while keeping the familiar API. Signing and verification follow WebCrypto and Kit, the library moves towards Uint8Array instead of Node's Buffer, and program encoding uses codecs and generated program clients. Keypair implements Kit's KeyPairSigner, so it can be passed directly to Kit APIs and generated clients.

Breaking changes most code will hit.

  • Keypair.generate(), fromSecretKey() and fromSeed() are now async, as are Transaction.serialize() and verifySignatures().
  • The implicit default commitment of Connection changes from finalized to confirmed.
  • Many Connection methods return bigint instead of number, and account data arrives as read-only Uint8Array with space as a bigint.
  • The old {publicKey, secretKey} signer shape, PublicKey.unique(), the legacy Account class and the deprecated fee-calculator methods, including getRecentBlockhash, are removed.
  • getMinimumBalanceForRentExemption now throws on RPC failure instead of logging a warning and returning zero. The notes give the reason: a failed rent query should not be mistaken for a rent-free account.

Hardening. Many of the fixes concern correctness at the edges: the message header is copied at construction so later mutation cannot change the bytes that were signed, signature status is reconciled before a transaction is reported as expired, websocket subscription failures stop retrying in an endless loop, and the wallet adapter refuses wallet output that drops the caller's signatures.

The honest caveat. The release notes include a section titled Migration Reality Check. The API is still class-based, but non-trivial TypeScript users should expect broad mechanical changes, mostly from bigint numbers, Uint8Array data, async helpers and read-only results. For apps that already use most of the library, the notes say the payoff is modernisation and future compatibility rather than a much smaller bundle.

solana-web3.js 3.0 moves the classic API onto Kit, with async keypairs and a new default commitment
solana-web3.js 3.0 moves the classic API onto Kit, with async keypairs and a new default commitment — Coin Brief

What it means

The date that matters is 19 October, when latest moves and unpinned installs start pulling 3.0. Projects that depend on @solana/web3.js without a version range should pin ^1 now and plan the upgrade. The commitment change is the subtle one: code that silently relied on finalized reads will start seeing confirmed state instead.

Primary source
Solana Foundation (GitHub release)
https://github.com/solana-foundation/solana-web3.js/releases/tag/v3.0.0