Skip to content

Bump @solana/web3.js from 1.98.4 to 3.1.1 - #12

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/solana/web3.js-3.1.1
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/solana/web3.js-3.1.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 26, 2026

Copy link
Copy Markdown

Bumps @solana/web3.js from 1.98.4 to 3.1.1.

Release notes

Sourced from @​solana/web3.js's releases.

v3.1.1

V3 Migration Details

Full changelog: v3.1.0...v3.1.1

Published Packages

Installation

pnpm add @solana/web3.js@3.1.1 @solana/wallet-adapter@3.1.1

v3.1.0

Full changelog: v3.0.2...v3.1.0

Published Packages

Installation

pnpm add @solana/web3.js@3.1.0 @solana/wallet-adapter@3.1.0

What's Changed

Connection now implements a Kit client

That means you can pass it straight to Kit-native libraries like Anchor 2 and the Codama-generated @solana-program/* clients, without building a second RPC.

... (truncated)

Changelog

Sourced from @​solana/web3.js's changelog.

Release Notes for 3.0.0

These notes summarize the user-facing changes that landed since 1.98.4.

Highlights

  • Connection now runs on typed Solana Kit HTTP and websocket transports end-to-end, replacing the older JSON-RPC plumbing while preserving the class-based web3.js API shape.
  • Websocket subscription setup failures no longer spin through indefinite retry loops; failed opens now become terminal until listener demand changes or the transport reconnects.
  • The library has moved much further toward Uint8Array-first and async-first behavior, reducing Buffer-specific behavior and aligning signing and verification with WebCrypto/Kit.
  • Program and account encode/decode paths have been modernized around codecs and vendored generated program clients.
  • Packaging, build, and install flows were refreshed, including esbuild-based bundling, generated lib/ output for git installs, and updated validator/dependency tooling.

Migration Reality Check

  • The public API is still class-based, but non-trivial TypeScript consumers should still expect broad mechanical migration work. In practice, the largest sources of churn are bigint numerics, Uint8Array account data, async key/serialization helpers, and readonly RPC results, and more specific SDK types for values such as addresses, blockhashes, slots, lamports, and timestamps.
  • For full-app consumers already using most of the class surface, the immediate payoff is usually API modernization and future compatibility rather than a dramatic bundle-size reduction.

Breaking Changes

  • PublicKey.unique() was removed.
  • Legacy BN-era PublicKey constructor inputs such as PublicKeyData or { _bn: BN } are no longer accepted.
  • Keypair.generate(), Keypair.fromSecretKey(...), and Keypair.fromSeed(...) are now async. Tests and stories that previously used sync key generation often need to become async or switch to app-local dummy public-key helpers.
  • Keypair.address is now a Kit branded base58 address string for signer API compatibility. Use Keypair.publicKey when you need the web3.js Address class methods such as .toBytes(), .equals(...), or .toBase58().
  • Transaction.verifySignatures() is now async and returns a promise.
  • Transaction.serialize() is now async and must be awaited.
  • Remaining sync signing helpers that existed earlier in the range were removed in favor of the async signing surface.
  • The legacy Web3Signer shape ({publicKey, secretKey}) and the MessageSigner type alias were removed. The exported Signer type is now MessagePartialSigner & TransactionPartialSigner from @solana/kit, and transaction signing APIs accept any Kit TransactionPartialSigner, which Signer satisfies. Pass Keypair instances or other Kit transaction signers; migrate any remaining {publicKey, secretKey} literals via await Keypair.fromSecretKey(legacySigner.secretKey).
  • The implicit Connection default commitment changed from finalized to confirmed.
  • Many migrated Connection methods now return Kit-native bigint values instead of legacy number values.
  • Slot-like and minContextSlot inputs were widened to number | bigint and now reject unsafe numeric inputs.
  • AccountInfo-like responses now use Uint8Array payloads, readonly wrappers, and space: bigint instead of the old mutable Buffer-centric shapes.
  • The deprecated FeeCalculator surface was removed, including FeeCalculator, getRecentBlockhash, getRecentBlockhashAndContext, and getFeeCalculatorForBlockhash.
  • The legacy Account class was removed.
  • Deprecated BufferLayout-based internals and compatibility surfaces were removed in favor of codec-backed implementations.
  • Connection.getMinimumBalanceForRentExemption(...) now propagates RPC and transport failures instead of logging a warning and resolving 0n. Callers that relied on the zero fallback must handle the rejection, because a failed rent query should not be mistaken for a rent-free account.
  • Transaction.add(...) now narrows its inputs with instanceof Transaction and instanceof TransactionInstruction instead of the previous 'instructions' in item / 'data' in item duck-typing checks. Loose "Transaction-like" or "TransactionInstruction-like" objects that aren't real instances will no longer be accepted at runtime. Well-typed TypeScript callers are unaffected.

API And Runtime Changes

Connection

  • HTTP requests now go through typed Kit RPC calls instead of the legacy request pipeline.
  • Websocket subscriptions now run on a Kit-backed subscription runtime with stronger request/response shaping and broader payload coverage.
  • Websocket subscriptions now match Kit's default 100-subscription channel limit for improved stability.
  • Added Connection.awaitSubscriptionReady(...) so callers can await websocket subscription establishment, explicit setup failure, or listener invalidation.
  • Shared websocket subscriptions now invalidate readiness per client listener, so removing one deduplicated listener before acknowledgement no longer resolves readiness for the wrong listener.
  • Signature-confirmation fallback now treats failed or inactive subscription setup as terminal and continues via getSignatureStatuses() when needed.
  • ConnectionConfig.fetch and fetchMiddleware remain available as compatibility hooks on top of the typed HTTP path.
  • Additional RPC coverage and stricter typing landed across account, block, transaction, token, simulation, and node metadata methods.
  • Connection.simulateTransaction(...) now surfaces the RPC's fee, preBalances, postBalances, preTokenBalances, postTokenBalances, and loadedAddresses on the simulation result when the RPC returns them, matching Kit's simulation response.

... (truncated)

Commits
  • 3921a61 chore: bump program clients, update migration docs, release v3.1.1 (#3993)
  • 63b4f87 chore: bump version to v3.1.0 (#3989)
  • 57fd673 fix(web3.js): skip ws error log when the socket closes with no active subscri...
  • bd879f1 feat(web3.js): make Connection a Kit client (rpc, rpcSubscriptions, getMinimu...
  • 6c7cd06 chore(web3.js): bump to @​solana/kit 8.5 ^8.5.0 and support verifySignature ch...
  • 8837d96 docs(web3.js): note planned durable nonce deprecation on nonce APIs (#3979)
  • d4e4bd0 fix(web3.js): reject unsupported memcmp encodings in getProgramAccounts filte...
  • f456382 fix(web3.js): handle nullish memcmp in data-size filters (#3977)
  • 7c8b33e chore: bump version to v3.0.2 (#3974)
  • f120283 chore: release web3.js and wallet-adapter 3.0.1 (#3969)
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for @​solana/web3.js since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [@solana/web3.js](https://github.com/solana-foundation/solana-web3.js/tree/HEAD/packages/web3.js) from 1.98.4 to 3.1.1.
- [Release notes](https://github.com/solana-foundation/solana-web3.js/releases)
- [Changelog](https://github.com/solana-foundation/solana-web3.js/blob/main/packages/web3.js/RELEASE_NOTES.md)
- [Commits](https://github.com/solana-foundation/solana-web3.js/commits/v3.1.1/packages/web3.js)

---
updated-dependencies:
- dependency-name: "@solana/web3.js"
  dependency-version: 3.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from nicechunk as a code owner October 26, 2026 03:11
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants