NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4867 most downloaded on npm
Codecs for numbers of different sizes and endianness
Last release today
28 Sep 2026
Ships fairly regularly
a new release about every 8 days
Nearly every release is documented
notes for 39 of 39 stable releases
1 version withdrawn
withdrawn after publishing
3 years old
2248 releases · first in 2023
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per month.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[ @solana/errors , @solana/keys , @solana/signers ] #1534 43bc570 Thanks @lorisleiva ! - Add grindKeyPair , grindKeyPairs , grindKeyPairSigner , and g
[@solana/errors, @solana/keys, @solana/signers] #1534 43bc570 Thanks @lorisleiva! - Add grindKeyPair, grindKeyPairs, grindKeyPairSigner, and grindKeyPairSigners for mining vanity key pairs whose base58-encoded public key matches a RegExp or a custom predicate. Supports amount for mining multiple key pairs, extractable for forwarding to the underlying generateKeyPair call, concurrency (defaulting to 32) for batched parallel key generation, and abortSignal for cancellation. Regex matchers are statically checked for base58-alphabet violations at runtime (after stripping escapes, character classes, quantifiers, and groups) to catch common typos like /^sol0/.
[@solana/errors] #1526 ffb7665 Thanks @mcintyre94! - Add SOLANA_ERROR__WALLET__NOT_CONNECTED error code for when a wallet operation is attempted without a connected wallet.
[@solana/keys, @solana/signers] #1531 d79f8d1 Thanks @lorisleiva! - Add an optional extractable argument to generateKeyPair and generateKeyPairSigner. It defaults to false, preserving the existing secure-by-default behavior, but can be set to true when you need to export the generated private key bytes via crypto.subtle.exportKey().
[@solana/keys, @solana/signers] #1537 fdfcb6c Thanks @lorisleiva! - Add writeKeyPair and writeKeyPairSigner helpers for persisting an extractable key pair to disk as a JSON byte array, matching the format produced by solana-keygen. Missing parent directories are created automatically, and written files use mode 0600. These helpers are Node-only and refuse to overwrite an existing file unless the caller sets unsafelyOverwriteExistingKeyPair: true.
[@solana/kit] #1528 09a7509 Thanks @mcintyre94! - Add createReactiveStoreWithInitialValueAndSlotTracking(), a helper that combines an initial RPC fetch with an ongoing subscription into a single ReactiveStore. Uses slot-based comparison to ensure only the most recent value is kept, regardless of arrival order. The store state is a SolanaRpcResponse<TItem>. Compatible with useSyncExternalStore, Svelte stores, and other reactive primitives.
[@solana/kit] #1536 cec688e Thanks @mcintyre94! - Add createAsyncGeneratorWithInitialValueAndSlotTracking, an async generator alternative to createReactiveStoreWithInitialValueAndSlotTracking that yields values from both an RPC fetch and an ongoing subscription, silently dropping any value at a slot older than the last seen.
[@solana/plugin-interfaces] #1530 f8d6131 Thanks @lorisleiva! - Add ClientWithIdentity interface for clients that provide a default identity signer. Whereas ClientWithPayer describes the signer responsible for paying transaction fees and storage costs, ClientWithIdentity describes the signer whose assets the application is acting upon — such as the authority over accounts, tokens, or other on-chain assets owned by the current user. In many apps the payer and identity refer to the same signer, but they can differ when a service pays fees on behalf of a user.
[@solana/rpc-subscriptions-spec, @solana/subscribable] #1524 f53ce07 Thanks @mcintyre94! - Add ReactiveStore type and createReactiveStoreFromDataPublisher() to @solana/subscribable, and a reactive() method to pending subscriptions in @solana/rpc-subscriptions-spec that returns a reactive store compatible with useSyncExternalStore, Svelte stores, and other reactive primitives.
@solana/accounts, @solana/addresses, @solana/assertions, @solana/codecs, @solana/codecs-core, @solana/codecs-data-structures, @solana/codecs-numbers, @solana/codecs-strings, @solana/compat, @solana/errors, @solana/fast-stable-stringify, @solana/functional, @solana/instruction-plans, @solana/instructions, @solana/keys, @solana/kit, @solana/nominal-types, @solana/offchain-messages, @solana/options, @solana/plugin-core, @solana/plugin-interfaces, @solana/program-client-core, @solana/programs, @solana/promises, @solana/rpc, @solana/rpc-api, @solana/rpc-graphql, @solana/rpc-parsed-types, @solana/rpc-spec, @solana/rpc-spec-types, @solana/rpc-subscriptions, @solana/rpc-subscriptions-api, @solana/rpc-subscriptions-channel-websocket, @solana/rpc-subscriptions-spec, @solana/rpc-transformers, @solana/rpc-transport-http, @solana/rpc-types, @solana/signers, @solana/subscribable, @solana/sysvars, @solana/transaction-confirmation, @solana/transaction-messages, @solana/transactions, @solana/wallet-account-signer, @solana/webcrypto-ed25519-polyfill] #1532 667a0f0 Thanks @mcintyre94! - Update the TypeScript peer dependency from ^5.0.0 to >=5.0.0 to allow TypeScript 6 and above.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
The old createEmptyClient is preserved as a deprecated re-export.
@solana/plugin-core] #1509 2763d0c Thanks @lorisleiva! - Add createClient function that replaces createEmptyClient and accepts an optional initial value. The old createEmptyClient is preserved as a deprecated re-export.Nothing published for this version
Nothing published for this version
Nothing published for this version
The existing TRANSACTION_SIZE_LIMIT , TRANSACTION_PACKET_SIZE , and TRANSACTION_PACKET_HEADER constants are now deprecated in favour of getTransaction…
[@solana/errors, @solana/transaction-messages] #1496 7f02d23 Thanks @mcintyre94! - compileTransactionMessage now enforces four Solana protocol limits at compile time, throwing a typed SolanaError instead of silently producing a transaction that would be rejected by the network:
SOLANA_ERROR__TRANSACTION__TOO_MANY_ACCOUNT_ADDRESSESSOLANA_ERROR__TRANSACTION__TOO_MANY_SIGNER_ADDRESSESSOLANA_ERROR__TRANSACTION__TOO_MANY_INSTRUCTIONSSOLANA_ERROR__TRANSACTION__TOO_MANY_ACCOUNTS_IN_INSTRUCTIONAll four error codes (and their context types / human-readable messages) are exported from @solana/errors.
[@solana/instruction-plans, @solana/transactions] #1499 742ffca Thanks @mcintyre94! - Add version-aware transaction size limits. Version 1 transactions now allow up to 4096 bytes, while legacy and v0 transactions continue to use the existing 1232-byte limit. Two new helper functions are exported from @solana/transactions: getTransactionSizeLimit for compiled Transaction objects, and getTransactionMessageSizeLimit for TransactionMessage objects.
The existing TRANSACTION_SIZE_LIMIT, TRANSACTION_PACKET_SIZE, and TRANSACTION_PACKET_HEADER constants are now deprecated in favour of getTransactionSizeLimit and will be removed in a future major version.
[@solana/plugin-core] #1480 9c4fd6e Thanks @mcintyre94! - Add withCleanup function to @solana/plugin-core. Plugin authors can use it to register teardown logic (e.g. closing connections or clearing timers) on a client, making it Disposable. If the client already implements Symbol.dispose, the new cleanup function is chained so both run on disposal.
[@solana/instruction-plans] #1497 f055201 Thanks @mcintyre94! - The transaction planner now handles the four new transaction compilation constraint errors (TOO_MANY_ACCOUNT_ADDRESSES, TOO_MANY_SIGNER_ADDRESSES, TOO_MANY_INSTRUCTIONS, TOO_MANY_ACCOUNTS_IN_INSTRUCTION) gracefully. When adding an instruction to an existing candidate transaction would violate a constraint, the planner splits it into a new transaction — the same behaviour it already had for transactions that exceed the byte size limit. If even a fresh transaction cannot accommodate the instruction, the constraint error propagates to the caller.
[@solana/signers] #1492 0fa54a4 Thanks @lorisleiva! - Allow deduplicateSigners to handle structurally equivalent signers (e.g. two createNoopSigner calls with the same address) instead of throwing.
7f02d23]:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
[ @solana/kit ] #1485 4a4c217 Thanks @lorisleiva ! - Deprecated getMinimumBalanceForRentExemption . The minimum balance for an account is being active…
[@solana/plugin-interfaces] #1486 10cb920 Thanks @lorisleiva! - Add ClientWithGetMinimumBalance plugin interface for computing the minimum balance required for an account. Implementations can use any strategy (e.g., RPC call, cached value) to provide this value through a uniform API.
[@solana/signers] #1487 9e05736 Thanks @lorisleiva! - Add partiallySignTransactionWithSigners, signTransactionWithSigners, and signAndSendTransactionWithSigners functions that accept a set of signers and a compiled Transaction directly, without requiring signers to be embedded in a transaction message. Also add assertContainsResolvableTransactionSendingSigner to validate that a set of signers contains an unambiguously resolvable sending signer. The existing transaction message helpers now delegate to these new functions internally.
@solana/kit] #1485 4a4c217 Thanks @lorisleiva! - Deprecated getMinimumBalanceForRentExemption. The minimum balance for an account is being actively reduced (see SIMD-0437) and is expected to become dynamic in future Solana upgrades (see SIMD-0194 and SIMD-0389). Use the getMinimumBalanceForRentExemption RPC method or a ClientWithGetMinimumBalance plugin instead. This function will be removed in v7.Nothing published for this version
Nothing published for this version
Nothing published for this version
[@solana/kit] #1476 `3e9e0a2` Thanks @lorisleiva! - Add compute unit limit estimation utilities: estimateComputeUnitLimitFactory, estimateAndSetComput
[@solana/kit] #1476 3e9e0a2 Thanks @lorisleiva! - Add compute unit limit estimation utilities: estimateComputeUnitLimitFactory, estimateAndSetComputeUnitLimitFactory, and fillTransactionMessageProvisoryComputeUnitLimit. These replace the external @solana-program/compute-budget estimation functions with Kit-native equivalents that work across all transaction versions.
[@solana/plugin-core] #1479 abeca1b Thanks @mcintyre94! - Add extendClient helper for plugin authors to merge client objects while preserving property descriptors (getters, symbol-keyed properties, and non-enumerable properties).
Plugin authors should migrate plugins to use this instead of spreading the input client.
- return { ...client, rpc };
+ return extendClient(client, { rpc });
[@solana/transaction-messages] #1472 084e92e Thanks @lorisleiva! - Add legacy and v0 transaction support to compute budget setters and getters. Priority fees are now handled by version-gated helpers: (get|set)TransactionMessagePriorityFeeLamports for v1 (total lamports) and (get|set)TransactionMessageComputeUnitPrice for legacy/v0 (micro-lamports per compute unit).
[@solana/wallet-account-signer] #1368 938ca94 Thanks @dpsi9! - Add functions to create Kit signers from Wallet Standard UiWalletAccount objects.
createSignerFromWalletAccount returns a TransactionSigner that can sign transactions using the solana:signTransaction and the solana:signAndSendTransaction features. At least one of these must be present in the wallet account. If the solana:signMessage feature is available, then this signer is also a MessageSigner.
There are also more specific helpers:
createTransactionSignerFromWalletAccount(account, chain) returns a TransactionModifyingSigner that uses the wallet's solana:signTransaction feature.createTransactionSendingSignerFromWalletAccount(account, chain) returns a TransactionSendingSigner that uses the wallet's solana:signAndSendTransaction feature.createMessageSignerFromWalletAccount(account) returns a MessageModifyingSigner that uses the wallet's solana:signMessage feature.These enable any wallet-standard wallet to be used as a Kit signer.
[@solana/codecs-core, @solana/codecs-strings] #1391 27c3975 Thanks @holps-7! - Fix unnecessary array slicing/cloning when using negative offsets matching the array length.
[@solana/instruction-plans] #1470 896412d Thanks @lorisleiva! - Add trailing newline to multi-line error messages so that chained error causes render on their own line.
[@solana/kit] #1468 304436f Thanks @amilz! - Include source files in published packages so IDE "Go to Definition" navigates to TypeScript source instead of .d.ts type declarations
27c3975]:
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →