@solana/kit
v3.0.0 (2025-08-27)
Major Changes
-
[
@solana/codecs-data-structures] #691771f8aeThanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated functions:getDataEnumEncoder,getDataEnumDecoder,getDataEnumCodec,getScalarEnumEncoder,getScalarEnumDecoderandgetScalarEnumCodec. -
[
@solana/instructions] #691771f8aeThanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated types:IAccountMeta,IAccountLookupMeta,IInstruction,IInstructionWithAccountsandIInstructionWithData. -
[
@solana/kit,@solana/transactions] #48200d66fbThanks @lorisleiva! - BREAKING CHANGE: Transactions must now satisfy theSendableTransactiontype 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] #594733605dThanks @lorisleiva! - Extract lifetime token fromCompiledTransactionMessage.CompiledTransactionMessage & CompiledTransactionMessageWithLifetimemay now be used to refer to a compiled transaction message with a lifetime token. This enablesCompiledTransactionMessagesto be encoded without the need to specify a mock lifetime token. -
[
@solana/kit,@solana/signers,@solana/transactions] #462a74ea02Thanks @lorisleiva! - BREAKING CHANGE: TheFullySignedTransactionno longer extends theTransactiontype so it can be composed with other flags that also narrow transaction types. This means, wheneverFullySignedTransactionis used on its own, it will need to be replaced withFullySignedTransaction & Transaction. -
[
@solana/kit] #691771f8aeThanks @lorisleiva! - BREAKING CHANGE: Removes thegetComputeUnitEstimateForTransactionMessageFactorydeprecated function. -
[
@solana/rpc-spec-types] #73281c83b1Thanks @nonergodic! - BREAKING CHANGE: RenamestringifyJsonWithBigintstostringifyJsonWithBigIntsfor consistency with the rest of the API. -
[
@solana/signers,@solana/transactions] #5740bd053bThanks @lorisleiva! - Add theTransactionWithLifetimerequirement 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] #691771f8aeThanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated types:ITransactionMessageWithSigners,ITransactionMessageWithFeePayerSigner,ITransactionMessageWithSingleSendingSigner,IAccountSignerMetaandIInstructionWithSigners. -
[
@solana/transaction-messages] #691771f8aeThanks @lorisleiva! - BREAKING CHANGE: Removes the following deprecated types and functions:CompilableTransactionMessage,ITransactionMessageWithFeePayer,assertIsDurableNonceTransactionMessageandisDurableNonceTransaction. Removes the deprecatedreadableIndicesandwritableIndicesproperties from theAddressTableLookuptype — usereadonlyIndexesandwritableIndexesrespectively instead. -
[
@solana/transactions] #691771f8aeThanks @lorisleiva! - BREAKING CHANGE: Removes theassertTransactionIsFullySigneddeprecated function. -
[
@solana/transactions] #58155d6b04Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints to be compiled. RenamesTransactionFromCompilableTransactionMessageandSetTransactionLifetimeFromCompilableTransactionMessagetype helpers toTransactionFromTransactionMessageandSetTransactionLifetimeFromTransactionMessagerespectively, 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] #6649feba85Thanks @lorisleiva! - AddcreateTransactionPlanExecutorimplementation for theTransactionPlanExecutortype. -
[
@solana/errors,@solana/instruction-plans] #64801f159aThanks @lorisleiva! - AddcreateTransactionPlannerimplementation for theTransactionPlannertype. -
[
@solana/instruction-plans] #543358df82Thanks @lorisleiva! - Add newTransactionPlanResulttype 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] #54612d06d1Thanks @lorisleiva! - Add aTransactionPlannerfunction type that defines howInstructionPlansgets planned and turned intoTransactionPlans. -
[
@solana/instruction-plans] #54724967d1Thanks @lorisleiva! - Add aTransactionPlanExecutorfunction type that defines howTransactionPlansget executed and turned intoTransactionPlanResults. -
[
@solana/instruction-plans] #5337d48ccdThanks @lorisleiva! - Add a new@solana/instruction-planspackage offering a newInstructionPlantype 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] #542f79d05aThanks @lorisleiva! - Add newTransactionPlantype 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] #725ce8f9dbThanks @lorisleiva! - Re-export@solana/instruction-plansfrom@solana/kit. -
[
@solana/signers] #58293ae6f9Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints to be signed using the Signer API helpers such assignTransactionMessageWithSignersandpartiallySignTransactionMessageWithSigners. This is because someTransactionSignerssuch asTransactionModifyingSignershave 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] #58155d6b04Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints to be compiled. RenamesTransactionFromCompilableTransactionMessageandSetTransactionLifetimeFromCompilableTransactionMessagetype helpers toTransactionFromTransactionMessageandSetTransactionLifetimeFromTransactionMessagerespectively, to reflect that they can now be used with transaction messages that do not have a lifetime constraint. -
[
@solana/transactions] #583a894d53Thanks @lorisleiva! - Allow transaction messages with no lifetime constraints in transaction size helpers — i.e.getTransactionMessageSize,isTransactionMessageWithinSizeLimitandassertIsTransactionMessageWithinSizeLimit.
Patch Changes
-
[
@solana/codecs-core] #68598eabacThanks @steveluscher! -padBytesnow strips extra types from the input array, but otherwise returns the same flavour ofUint8Arrayyou gave it, in terms of writability -
[
@solana/codecs-data-structures] #7019205484Thanks @mcintyre94! - Make Union codecs FixedSize if all their variants are FixedSize -
[
@solana/errors] #6746a183bfThanks @lorisleiva! - AllowSolanaErrorcontext objects to use non-enumerable properties. This is useful when it's appropriate for an object to appear in the error context at runtime, but when that object can't be serialized for use by the production mode error decoder. Prior to this, non-enumerable properties would be deleted from context objects when creating newSolanaErrors. -
[
@solana/errors] #65823d2fa1Thanks @steveluscher! - Added three missing error messages/contextsJSON_RPC_SERVER_ERROR_EPOCH_REWARDS_PERIOD_ACTIVE: -32017JSON_RPC_SERVER_ERROR_SLOT_NOT_EPOCH_BOUNDARY: -32018JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_UNREACHABLE: -32019
-
[
@solana/instruction-plans] #727018479fThanks @lorisleiva! - Export more types and functions from the@solana/instruction-planspackage. -
[
@solana/instruction-plans] #742c6e8568Thanks @lorisleiva! - Fix theonTransactionMessageUpdatedsignature of thecreateTransactionPlannerhelper by removing the unnecessaryTTransactionMessagetype parameter. -
[
@solana/instruction-plans] #741a4310a5Thanks @lorisleiva! - Fix theexecuteTransactionMessagesignature of thecreateTransactionPlanExecutorhelper by removing the unnecessaryTTransactionMessagetype parameter. -
[
@solana/kit,@solana/signers,@solana/transaction-messages] #584760fb83Thanks @lorisleiva! - DeprecateCompilableTransactionMessagein favour ofTransactionMessage & TransactionMessageWithFeePayer