Releases: anza-xyz/kit
v4.0.0
@solana/kit
v4.0.0 (2025-10-08)
Major Changes
-
[
@solana/react
,@solana/signers
] #927c035ab8
Thanks @mcintyre94! - Update the signer API to return Transaction & TransactionWithLifetimeThe
modifyAndSignTransactions
function for aTransactionModifyingSigner
must now return aTransaction & TransactionWithLifetime & TransactionWithinSizeLimit
. Previously it technically needed to return a type derived from the inputTransactionMessage
, but this wasn't checked.If you have written a
TransactionModifyingSigner
then you should review the changes touseWalletAccountTransactionSigner
in the React package for guidance. You may need to use the newgetTransactionLifetimeConstraintFromCompiledTransactionMessage
function to obtain a lifetime for the transaction being returned.If you are using a
TransactionModifyingSigner
such asuseWalletAccountTransactionSigner
, then you will now receive a transaction withTransactionWithLifetime
when you would previously have received a type with a lifetime matching the input transaction message. This was never guaranteed to match at runtime, but we incorrectly returned a stronger type than can be guaranteed. You may need to use the newisTransactionWithBlockhashLifetime
orisTransactionWithDurableNonceLifetime
functions to check the lifetime type of the returned transaction. For example, if you want to pass it to a function returned bysendAndConfirmTransactionFactory
then you must useisTransactionWithBlockhashLifetime
orassertIsTransactionWithBlockhashLifetime
to check its lifetime first. -
[
@solana/rpc-graphql
,@solana/rpc-subscriptions-api
,@solana/rpc-types
] #550ce7f91c
Thanks @steveluscher! - RemovedrentEpoch
from theAccountInfoBase
type. This property is no longer relevant post SIMD-215. Developers whose applications rely on this property being numeric should either eliminate it or hardcode it to18_446_744_073_709_551_615n
.
Minor Changes
- [
@solana/rpc-transport-http
] #88805970df
Thanks @prashanFOMO! - The React Native and Node builds now permit you to set theOrigin
header. This header continues to be forbidden in the browser build, as it features on the list of forbidden request headers: https://developer.mozilla.org/en-US/docs/Glossary/Forbidden\_request\_header
Patch Changes
-
[
@solana/codecs-core
,@solana/errors
] #94422f18d0
Thanks @mcintyre94! - Add a function to create a decoder that checks the size of the input bytes -
[
@solana/compat
] #906eabeb3a
Thanks @guibescos! - Fixed a bug where callingfromVersionedTransaction()
with aVersionedTransaction
that uses address table lookups would result in a runtime fatal -
[
@solana/errors
,@solana/transactions
] #9185408f52
Thanks @mcintyre94! - Add a function to extract the lifetime from a CompiledTransactionMessage -
[
@solana/errors
,@solana/transaction-messages
,@solana/transactions
] #871cb11699
Thanks @mcintyre94! - Do not allow decoding transactions with an unsupported version -
[
@solana/errors
] #8739fa8465
Thanks @steveluscher! - When you use the@solana/errors
CLI you will now always get version 5.6.2 ofchalk
and version 14.0.0 ofcommander
, which themselves are zero-dependency. -
[
@solana/errors
,@solana/react
] #919c87cada
Thanks @mcintyre94! - Update useWalletAccountTransactionSigner to return a LifetimeConstraint for the updated transaction -
[
@solana/keys
] #901f591dea
Thanks @guibescos! - Added assertion (assertIsSignatureBytes
), guard (isSignatureBytes
), and coercion (signatureBytes
) methods to make it easier to work with callsites that demand aSignatureBytes
type -
[
@solana/kit
] #52198bde94
Thanks @tao-stones! - Add loadedAccountsDataSize to simulateTransaction response -
[
@solana/rpc-subscriptions
] #9049e8bfe4
Thanks @steveluscher! - yExported all of the channel creators that form part ofcreateDefaultSolanaRpcSubscriptionsChannelCreator()
so that developers can configure their own custom channels -
[
@solana/transaction-confirmation
] #793cfc1d92
Thanks @steveluscher! - Fixed a bug where transaction errors discovered during recent transaction confirmation might not be thrown -
[
@solana/transaction-messages
] #95154d8445
Thanks @tanmay5114! -compressTransactionMessageUsingAddressLookupTables()
will no longer convert an account to a lookup table account, if the address of that account is used as a program address anywhere in the transaction. -
[
@solana/transactions
] #925af01f27
Thanks @mcintyre94! - Add functions to narrow a TransactionWithLifetime to a specific lifetime -
[
@solana/webcrypto-ed25519-polyfill
] #806f254415
Thanks @steveluscher! - The Ed25519 polyfill now correctly returnsArrayBuffer
fromexportKey()
andsign()
rather thanUint8Array
v3.0.3
@solana/kit
v3.0.3 (2025-09-11)
Patch Changes
- [
@solana/errors
] #874a085209
Thanks @github-actions! - When you use the@solana/errors
CLI you will now always get version 5.6.2 ofchalk
and version 14.0.0 ofcommander
, which themselves are zero-dependency.
v3.0.2
@solana/kit
v3.0.2 (2025-09-03)
Patch Changes
- [
@solana/kit
] #8216e095fb
Thanks @github-actions! - Add loadedAccountsDataSize to simulateTransaction response
v3.0.1
@solana/kit
v3.0.1 (2025-08-29)
Patch Changes
- [
@solana/transaction-confirmation
] #803eb0a122
Thanks @github-actions! - Fixed a bug where transaction errors discovered during recent transaction confirmation might not be thrown
v3.0.0
@solana/kit
v3.0.0 (2025-08-27)
Major Changes
-
[
@solana/codecs-data-structures
] #691771f8ae
Thanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated functions:getDataEnumEncoder
,getDataEnumDecoder
,getDataEnumCodec
,getScalarEnumEncoder
,getScalarEnumDecoder
andgetScalarEnumCodec
. -
[
@solana/instructions
] #691771f8ae
Thanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated types:IAccountMeta
,IAccountLookupMeta
,IInstruction
,IInstructionWithAccounts
andIInstructionWithData
. -
[
@solana/kit
,@solana/transactions
] #48200d66fb
Thanks @lorisleiva! - BREAKING CHANGE: Transactions must now satisfy theSendableTransaction
type before being provided to helper functions that send transactions to the network. On top of ensuring the transaction is fully signed, this type also ensures the transaction is within size limit. -
[
@solana/kit
,@solana/transaction-messages
] #594733605d
Thanks @lorisleiva! - Extract lifetime token fromCompiledTransactionMessage
.CompiledTransactionMessage & CompiledTransactionMessageWithLifetime
may now be used to refer to a compiled transaction message with a lifetime token. This enablesCompiledTransactionMessages
to be encoded without the need to specify a mock lifetime token. -
[
@solana/kit
,@solana/signers
,@solana/transactions
] #462a74ea02
Thanks @lorisleiva! - BREAKING CHANGE: TheFullySignedTransaction
no longer extends theTransaction
type so it can be composed with other flags that also narrow transaction types. This means, wheneverFullySignedTransaction
is used on its own, it will need to be replaced withFullySignedTransaction & Transaction
. -
[
@solana/kit
] #691771f8ae
Thanks @lorisleiva! - BREAKING CHANGE: Removes thegetComputeUnitEstimateForTransactionMessageFactory
deprecated function. -
[
@solana/rpc-spec-types
] #73281c83b1
Thanks @nonergodic! - BREAKING CHANGE: RenamestringifyJsonWithBigints
tostringifyJsonWithBigInts
for consistency with the rest of the API. -
[
@solana/signers
,@solana/transactions
] #5740bd053b
Thanks @lorisleiva! - Add theTransactionWithLifetime
requirement when signing transactions. This is because, whilst a lifetime may not always be required before compile a transaction message, it is always required when signing a transaction. Otherwise, the transaction signatures will be invalid when one is added later. -
[
@solana/signers
] #691771f8ae
Thanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated types:ITransactionMessageWithSigners
,ITransactionMessageWithFeePayerSigner
,ITransactionMessageWithSingleSendingSigner
,IAccountSignerMeta
andIInstructionWithSigners
. -
[
@solana/transaction-messages
] #691771f8ae
Thanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated types and functions:CompilableTransactionMessage
,ITransactionMessageWithFeePayer
,assertIsDurableNonceTransactionMessage
andisDurableNonceTransaction
. Removes the deprecatedreadableIndices
andwritableIndices
properties from theAddressTableLookup
type — usereadonlyIndexes
andwritableIndexes
respectively instead. -
[
@solana/transactions
] #691771f8ae
Thanks @lorisleiva! - BREAKING CHANGE: Removes theassertTransactionIsFullySigned
deprecated function. -
[
@solana/transactions
] #58155d6b04
Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints to be compiled. RenamesTransactionFromCompilableTransactionMessage
andSetTransactionLifetimeFromCompilableTransactionMessage
type helpers toTransactionFromTransactionMessage
andSetTransactionLifetimeFromTransactionMessage
respectively, to reflect that they can now be used with transaction messages that do not have a lifetime constraint.
Minor Changes
-
[
@solana/errors
,@solana/instruction-plans
] #6649feba85
Thanks @lorisleiva! - AddcreateTransactionPlanExecutor
implementation for theTransactionPlanExecutor
type. -
[
@solana/errors
,@solana/instruction-plans
] #64801f159a
Thanks @lorisleiva! - AddcreateTransactionPlanner
implementation for theTransactionPlanner
type. -
[
@solana/instruction-plans
] #543358df82
Thanks @lorisleiva! - Add newTransactionPlanResult
type with helpers. This type describes the execution results of transaction plans with the same structural hierarchy — capturing the execution status of each transaction message whether executed in parallel, sequentially, or as a single transaction. -
[
@solana/instruction-plans
] #54612d06d1
Thanks @lorisleiva! - Add aTransactionPlanner
function type that defines howInstructionPlans
gets planned and turned intoTransactionPlans
. -
[
@solana/instruction-plans
] #54724967d1
Thanks @lorisleiva! - Add aTransactionPlanExecutor
function type that defines howTransactionPlans
get executed and turned intoTransactionPlanResults
. -
[
@solana/instruction-plans
] #5337d48ccd
Thanks @lorisleiva! - Add a new@solana/instruction-plans
package offering a newInstructionPlan
type that aims to describe a set of instructions with constraints on how they should be executed — e.g. sequentially, in parallel, divisible, etc. -
[
@solana/instruction-plans
] #542f79d05a
Thanks @lorisleiva! - Add newTransactionPlan
type with helpers. This type defines a set of transaction messages with constraints on how they should be executed — e.g. sequentially, in parallel, divisible, etc. -
[
@solana/kit
] #725ce8f9db
Thanks @lorisleiva! - Re-export@solana/instruction-plans
from@solana/kit
. -
[
@solana/signers
] #58293ae6f9
Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints to be signed using the Signer API helpers such assignTransactionMessageWithSigners
andpartiallySignTransactionMessageWithSigners
. This is because someTransactionSigners
such asTransactionModifyingSigners
have the ability to update the transaction before signing it, meaning that the lifetime constraint may not be known until the transaction is signed. -
[
@solana/signers
,@solana/transaction-messages
] #58155d6b04
Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints to be compiled. RenamesTransactionFromCompilableTransactionMessage
and `SetTransactionLifetimeFromCompilableTransacti...
v2.3.0
2.3.0 (2025-07-08)
@solana/[email protected]
Minor Changes
- #488
810d6ab
Thanks @lorisleiva! - Remove theI
prefix on the following types:IInstruction
,IInstructionWithAccounts
,IInstructionWithData
,IInstructionWithSigners
,IAccountMeta
,IAccountLookupMeta
andIAccountSignerMeta
. The old names are kept as aliases but marked as deprecated.
Patch Changes
- Updated dependencies [
6ccbf01
,363e3cc
,eeac21d
,bbcb913
,93609aa
,b7dfe03
,810d6ab
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Minor Changes
- #426
b7dfe03
Thanks @lorisleiva! - Deprecate theI
prefix of four transaction message types to stay consistent with the rest of them. Namely, the following types are renamed and their old names are marked as deprecated:ITransactionMessageWithFeePayer
->TransactionMessageWithFeePayer
ITransactionMessageWithFeePayerSigner
->TransactionMessageWithFeePayerSigner
ITransactionMessageWithSigners
->TransactionMessageWithSigners
ITransactionMessageWithSingleSendingSigner
->TransactionMessageWithSingleSendingSigner
Patch Changes
-
#566
363e3cc
Thanks @steveluscher! - TheunitsConsumed
property in simulation result errors was incorrectly marked as anumber
when it is in fact abigint
-
#567
eeac21d
Thanks @steveluscher! - AddedreplacementBlockhash
to the simulation result type. This field materializes in cases where simulation was performed with thereplaceRecentBlockhash
param set totrue
. -
#425
93609aa
Thanks @lorisleiva! - Add a variety of types, constants and functions to help with transaction sizes and their limits
@solana/[email protected]
Minor Changes
- #488
810d6ab
Thanks @lorisleiva! - Remove theI
prefix on the following types:IInstruction
,IInstructionWithAccounts
,IInstructionWithData
,IInstructionWithSigners
,IAccountMeta
,IAccountLookupMeta
andIAccountSignerMeta
. The old names are kept as aliases but marked as deprecated.
Patch Changes
- Updated dependencies [
363e3cc
,eeac21d
,93609aa
,b7dfe03
]:- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Minor Changes
-
#426
b7dfe03
Thanks @lorisleiva! - Deprecate theI
prefix of four transaction message types to stay consistent with the rest of them. Namely, the following types are renamed and their old names are marked as deprecated:ITransactionMessageWithFeePayer
->TransactionMessageWithFeePayer
ITransactionMessageWithFeePayerSigner
->TransactionMessageWithFeePayerSigner
ITransactionMessageWithSigners
->TransactionMessageWithSigners
ITransactionMessageWithSingleSendingSigner
->TransactionMessageWithSingleSendingSigner
-
#488
810d6ab
Thanks @lorisleiva! - Remove theI
prefix on the following types:IInstruction
,IInstructionWithAccounts
,IInstructionWithData
,IInstructionWithSigners
,IAccountMeta
,IAccountLookupMeta
andIAccountSignerMeta
. The old names are kept as aliases but marked as deprecated.
Patch Changes
-
#520
043d8c1
Thanks @lorisleiva! - Deprecate thegetComputeUnitEstimateForTransactionMessageFactory
function in favor of theestimateComputeUnitLimitFactory
function from the@solana-program/compute-budget
client. -
Updated dependencies [
6ccbf01
,53e1336
,363e3cc
,eb61d94
,eeac21d
,bbcb913
,93609aa
,b7dfe03
,e6c0568
,810d6ab
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Minor Changes
-
#468
6ccbf01
Thanks @lorisleiva! - Add, remove and forward theTransactionMessageWithinSizeLimit
andTransactionWithinSizeLimit
types in all helpers that may affect the size of a transaction or transaction message. -
#426
b7dfe03
Thanks @lorisleiva! - Deprecate theI
prefix of four transaction message types to stay consistent with the rest of them. Namely, the following types are renamed and their old names are marked as deprecated:ITransactionMessageWithFeePayer
->TransactionMessageWithFeePayer
ITransactionMessageWithFeePayerSigner
->TransactionMessageWithFeePayerSigner
ITransactionMessageWithSigners
->TransactionMessageWithSigners
ITransactionMessageWithSingleSendingSigner
->TransactionMessageWithSingleSendingSigner
-
#488
810d6ab
Thanks @lorisleiva! - Remove theI
prefix on the following types:IInstruction
,IInstructionWithAccounts
,IInstructionWithData
,IInstructionWithSigners
,IAccountMeta
,IAccountLookupMeta
andIAccountSignerMeta
. The old names are kept as aliases but marked as deprecated.
Patch Changes
v2.2.1
2.2.1 (2025-07-08)
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
e881fca
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
e881fca
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
e881fca
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
#633
e881fca
Thanks @steveluscher! - Repaired a bug that could cause subscriptions to become 'stuck' and fail to send their unsubscribe message to the RPC, despite the last consumer in your app having released the subscription by callingAbortController#abort()
-
Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
@solana/[email protected]
@solana/[email protected]
@solana/[email protected]
@solana/p...
v2.2.0
2.2.0 (2025-07-07)
@solana/[email protected]
Minor Changes
-
85925d6
Thanks @nickfrosty! - Added anOffCurveAddress
type to represent addresses for which there is no associated private key. These are addresses that can not be signed for by keyholders, only by programs. An example of such an address is the address of an associated token account, for which only the Token Program can sign transactions that seek to modify its contents.Also added an
offCurveAddress()
function that you can use to assert and coerce anAddress
to anOffCurveAddress
, as well as anisOffCurveAddress()
guard function, and aassertIsOffCurveAddress()
assertion function.
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
85925d6
Thanks @nickfrosty! - AddedAffinePoint
; a nominal type that you can use to tag a value as representing an affine point over some field that is either valid or invalid from the perspective of some curve. Typically this will be used to tag an address as either on or off curve.
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies []:
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
,85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
85925d6
,85925d6
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
- ...
v2.1.1
2.1.1 (2025-05-12)
@solana/[email protected]
Patch Changes
-
#473
36a9dee
Thanks @steveluscher! - The identity of all branded types has changed in such a way that the types from v2.1.1 will be compatible with any other version going forward, which is not the case for versions v2.1.0 and before.If you end up with a mix of versions in your project prior to v2.1.1 (eg.
@solana/[email protected]
and@solana/[email protected]
) you may discover that branded types likeAddress
raise a type error, even though they are runtime compatible. Your options are:- Always make sure that you have exactly one instance of each
@solana/*
dependency in your project at any given time - Upgrade all of your
@solana/*
dependencies to v2.1.1 at minimum, even if their minor or patch versions differ. - Suppress the type errors using a comment like the following:
const myAddress = address('1234..5678'); // from @solana/[email protected] const myAccount = await fetchEncodedAccount( // imports @solana/[email protected] rpc, // @ts-expect-error Address types mismatch between installed versions of @solana/addresses myAddress, );
- Always make sure that you have exactly one instance of each
-
#236
ca1d4ec
Thanks @steveluscher! - The minimum TypeScript version is now 5.3.3 -
Updated dependencies [
36a9dee
,ca1d4ec
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
#473
36a9dee
Thanks @steveluscher! - The identity of all branded types has changed in such a way that the types from v2.1.1 will be compatible with any other version going forward, which is not the case for versions v2.1.0 and before.If you end up with a mix of versions in your project prior to v2.1.1 (eg.
@solana/[email protected]
and@solana/[email protected]
) you may discover that branded types likeAddress
raise a type error, even though they are runtime compatible. Your options are:- Always make sure that you have exactly one instance of each
@solana/*
dependency in your project at any given time - Upgrade all of your
@solana/*
dependencies to v2.1.1 at minimum, even if their minor or patch versions differ. - Suppress the type errors using a comment like the following:
const myAddress = address('1234..5678'); // from @solana/[email protected] const myAccount = await fetchEncodedAccount( // imports @solana/[email protected] rpc, // @ts-expect-error Address types mismatch between installed versions of @solana/addresses myAddress, );
- Always make sure that you have exactly one instance of each
-
#236
ca1d4ec
Thanks @steveluscher! - The minimum TypeScript version is now 5.3.3
@solana/[email protected]
Patch Changes
-
#473
36a9dee
Thanks @steveluscher! - The identity of all branded types has changed in such a way that the types from v2.1.1 will be compatible with any other version going forward, which is not the case for versions v2.1.0 and before.If you end up with a mix of versions in your project prior to v2.1.1 (eg.
@solana/[email protected]
and@solana/[email protected]
) you may discover that branded types likeAddress
raise a type error, even though they are runtime compatible. Your options are:- Always make sure that you have exactly one instance of each
@solana/*
dependency in your project at any given time - Upgrade all of your
@solana/*
dependencies to v2.1.1 at minimum, even if their minor or patch versions differ. - Suppress the type errors using a comment like the following:
const myAddress = address('1234..5678'); // from @solana/[email protected] const myAccount = await fetchEncodedAccount( // imports @solana/[email protected] rpc, // @ts-expect-error Address types mismatch between installed versions of @solana/addresses myAddress, );
- Always make sure that you have exactly one instance of each
-
#236
ca1d4ec
Thanks @steveluscher! - The minimum TypeScript version is now 5.3.3 -
Updated dependencies [
36a9dee
,ca1d4ec
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
#374
2fb1fbc
Thanks @steveluscher! - TheSysvarEpochRewards
encoder/decoder no longer produces malformed data -
#473
36a9dee
Thanks @steveluscher! - The identity of all branded types has changed in such a way that the types from v2.1.1 will be compatible with any other version going forward, which is not the case for versions v2.1.0 and before.If you end up with a mix of versions in your project prior to v2.1.1 (eg.
@solana/[email protected]
and@solana/[email protected]
) you may discover that branded types likeAddress
raise a type error, even though they are runtime compatible. Your options are:- Always make sure that you have exactly one instance of each
@solana/*
dependency in your project at any given time - Upgrade all of your
@solana/*
dependencies to v2.1.1 at minimum, even if their minor or patch versions differ. - Suppress the type errors using a comment like the following:
const myAddress = address('1234..5678'); // from @solana/[email protected] const myAccount = await fetchEncodedAccount( // imports @solana/[email protected] rpc, // @ts-expect-error Address types mismatch between installed versions of @solana/addresses myAddress, );
- Always make sure that you have exactly one instance of each
-
#379
e143797
Thanks @steveluscher! - TheSysvarStakeHistory
encoder/decoder no longer produces malformed data -
#236
ca1d4ec
Thanks @steveluscher! - The minimum TypeScript version is now 5.3.3 -
Updated dependencies [
36a9dee
,41b679c
,ca1d4ec
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
#473
36a9dee
Thanks @steveluscher! - The identity of all branded types has changed in such a way that the types from v2.1.1 will be compatible with any other version going forward, which is not the case for versions v2.1.0 and before.If you end up with a mix of versions in your project prior to v2.1.1 (eg.
@solana/[email protected]
and@solana/[email protected]
) you may discover that branded types likeAddress
raise a type error, even though they are runtime compatible. Your options are:- Always make sure that you have exactly one instance of each
@solana/*
dependency in your project at any given time - Upgrade all of your
@solana/*
dependencies to v2.1.1 at minimum, even if their minor or patch versions differ. - Suppress the type errors using a comment like the following:
const myAddress = address('1234..5678'); // from @solana/[email protected] const myAccount = await fetchEncodedAccount( // imports @solana/[email protected] rpc, // @ts-expect-error Address types mismatch between installed versions of @solana/addresses myAddress, );
- Always make sure that you have exactly one instance of each
-
#236
ca1d4ec
Thanks [@steveluscher](https://github....
v2.1.0
2.1.0 (2025-02-27)
🎉 @solana/kit
is the new name for the 2.x line of @solana/web3.js
.
This should make it easier to adopt in projects that will continue to depend on the legacy 1.x line of web3.js for the time being. It will also prevent confusion for new developers who might install the 2.x line while following a legacy 1.x tutorial.
In time, more guide-based content will be released; in the meantime take a look at the READMEs, the examples/
directory, and https://tsdocs.dev/docs/@solana/kit. If you have questions, please post at https://sola.na/sse.
@solana/[email protected]
Minor Changes
Patch Changes
-
1adf435
Thanks @leantOnSol! - A two-versions-old version of Node LTS is now specified everywhere via theengines
field, including the one in the root of thepnpm
workspace, and engine-strictness is delegated to the.npmrc
files. -
Updated dependencies [
1adf435
,c7b7dd9
,5af7f20
,704d8a2
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Minor Changes
-
5af7f20
Thanks @steveluscher! - When the HTTP transport throws an error, you can now access the response headers throughe.context.headers
. This can be useful, for instance, if the HTTP error is a 429 Rate Limit error, and the response contains aRetry-After
header.try { const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); } catch (e) { if (isSolanaError(e, SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR)) { if (e.context.code === 429 /* rate limit error */) { const retryAfterHeaderValue = e.context.headers.get('Retry-After'); if (retryAfterHeaderValue != null) { // ... } } } }
Patch Changes
-
1adf435
Thanks @leantOnSol! - A two-versions-old version of Node LTS is now specified everywhere via theengines
field, including the one in the root of thepnpm
workspace, and engine-strictness is delegated to the.npmrc
files. -
#130
c7b7dd9
Thanks @lorisleiva! - Gracefully handle JSON RPC errors that do not provide acode
attribute in their response -
704d8a2
Thanks @mcintyre94! - Changedata
field of transaction message instructions to useReadonlyUint8Array
@solana/[email protected]
Minor Changes
-
5af7f20
Thanks @steveluscher! - When the HTTP transport throws an error, you can now access the response headers throughe.context.headers
. This can be useful, for instance, if the HTTP error is a 429 Rate Limit error, and the response contains aRetry-After
header.try { const { value: latestBlockhash } = await rpc.getLatestBlockhash().send(); } catch (e) { if (isSolanaError(e, SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR)) { if (e.context.code === 429 /* rate limit error */) { const retryAfterHeaderValue = e.context.headers.get('Retry-After'); if (retryAfterHeaderValue != null) { // ... } } } }
Patch Changes
- Updated dependencies [
1adf435
,c7b7dd9
,5af7f20
,704d8a2
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Minor Changes
-
c880687
Thanks @steveluscher! - Removed the fees sysvar which has been disabled on the network for a year, and has now been removed from the test validator in Agave 2.0% solana feature status JAN1trEUEtZjgXYzNBYHU9DYd7GnThhXfFP7SzPXkPsG Feature | Status | Activation Slot | Description JAN1trEUEtZjgXYzNBYHU9DYd7GnThhXfFP7SzPXkPsG | active since epoch 483 | 208656004 | disable fees sysvar
Patch Changes
-
1adf435
Thanks @leantOnSol! - A two-versions-old version of Node LTS is now specified everywhere via theengines
field, including the one in the root of thepnpm
workspace, and engine-strictness is delegated to the.npmrc
files. -
Updated dependencies [
1adf435
,c7b7dd9
,9b179dc
,400f4d5
,5af7f20
,704d8a2
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
9b179dc
Thanks @lorisleiva! - Add missingspace
attribute toAccountInfoBase
andBaseAccount
-
Updated dependencies [
1adf435
,0c577eb
,c7b7dd9
,9b179dc
,400f4d5
,5af7f20
,704d8a2
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
1adf435
Thanks @leantOnSol! - A two-versions-old version of Node LTS is now specified everywhere via theengines
field, including the one in the root of thepnpm
workspace, and engine-strictness is delegated to the.npmrc
files. -
Updated dependencies [
1adf435
,c7b7dd9
,5af7f20
,704d8a2
]:- @solana/[email protected]
@solana/[email protected]
Patch Changes
- Updated dependencies [
1adf435
,cfe6910
]:- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
- @solana/[email protected]
@solana/[email protected]
Patch Changes
-
1adf435
Thanks @leantOnSol! - A two-versions-old version of Node LTS is now specified everywhere via theengines
field, including the one in the root of thepnpm
workspace, and engine-strictness is delegated to the.npmrc
files. -
Updated dependencies [
1adf435
, [c7b7dd9
](https://github.c...