NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4918 most downloaded on npm
Core types and helpers for encoding and decoding byte arrays on Solana
Last release 6 days ago
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
2267 releases · first in 2023
One column per quarter.
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
Nothing published for this version
Updated dependencies \[`6ccbf01`, `363e3cc`, `eeac21d`, `bbcb913`, `93609aa`, `b7dfe03`, `810d6ab`]:
810d6ab Thanks @lorisleiva! - Remove the I prefix on the following types: IInstruction, IInstructionWithAccounts, IInstructionWithData, IInstructionWithSigners, IAccountMeta, IAccountLookupMeta and IAccountSignerMeta. The old names are kept as aliases but marked as deprecated.6ccbf01, 363e3cc, eeac21d, bbcb913, 93609aa, b7dfe03, 810d6ab]:
b7dfe03 Thanks @lorisleiva! - Deprecate the I 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 -> TransactionMessageWithFeePayerITransactionMessageWithFeePayerSigner -> TransactionMessageWithFeePayerSignerITransactionMessageWithSigners -> TransactionMessageWithSignersITransactionMessageWithSingleSendingSigner -> TransactionMessageWithSingleSendingSigner#566 363e3cc Thanks @steveluscher! - The unitsConsumed property in simulation result errors was incorrectly marked as a number when it is in fact a bigint
#567 eeac21d Thanks @steveluscher! - Added replacementBlockhash to the simulation result type. This field materializes in cases where simulation was performed with the replaceRecentBlockhash param set to true.
#425 93609aa Thanks @lorisleiva! - Add a variety of types, constants and functions to help with transaction sizes and their limits
810d6ab Thanks @lorisleiva! - Remove the I prefix on the following types: IInstruction, IInstructionWithAccounts, IInstructionWithData, IInstructionWithSigners, IAccountMeta, IAccountLookupMeta and IAccountSignerMeta. The old names are kept as aliases but marked as deprecated.363e3cc, eeac21d, 93609aa, b7dfe03]:
#426 b7dfe03 Thanks @lorisleiva! - Deprecate the I 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 -> TransactionMessageWithFeePayerITransactionMessageWithFeePayerSigner -> TransactionMessageWithFeePayerSignerITransactionMessageWithSigners -> TransactionMessageWithSignersITransactionMessageWithSingleSendingSigner -> TransactionMessageWithSingleSendingSigner#488 810d6ab Thanks @lorisleiva! - Remove the I prefix on the following types: IInstruction, IInstructionWithAccounts, IInstructionWithData, IInstructionWithSigners, IAccountMeta, IAccountLookupMeta and IAccountSignerMeta. The old names are kept as aliases but marked as deprecated.
#520 043d8c1 Thanks @lorisleiva! - Deprecate the getComputeUnitEstimateForTransactionMessageFactory function in favor of the estimateComputeUnitLimitFactory function from the @solana-program/compute-budget client.
Updated dependencies [6ccbf01, 53e1336, 363e3cc, eb61d94, eeac21d, bbcb913, 93609aa, b7dfe03, e6c0568, 810d6ab]:
#468 6ccbf01 Thanks @lorisleiva! - Add, remove and forward the TransactionMessageWithinSizeLimit and TransactionWithinSizeLimit types in all helpers that may affect the size of a transaction or transaction message.
#426 b7dfe03 Thanks @lorisleiva! - Deprecate the I 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 -> TransactionMessageWithFeePayerITransactionMessageWithFeePayerSigner -> TransactionMessageWithFeePayerSignerITransactionMessageWithSigners -> TransactionMessageWithSignersITransactionMessageWithSingleSendingSigner -> TransactionMessageWithSingleSendingSigner#488 810d6ab Thanks @lorisleiva! - Remove the I prefix on the following types: IInstruction, IInstructionWithAccounts, IInstructionWithData, IInstructionWithSigners, IAccountMeta, IAccountLookupMeta and IAccountSignerMeta. The old names are kept as aliases but marked as deprecated.
6ccbf01, 53e1336, 363e3cc, eb61d94, eeac21d, bbcb913, 93609aa, b7dfe03, e6c0568, 810d6ab]:
#468 6ccbf01 Thanks @lorisleiva! - Add, remove and forward the TransactionMessageWithinSizeLimit and TransactionWithinSizeLimit types in all helpers that may affect the size of a transaction or transaction message.
#427 eb61d94 Thanks @lorisleiva! - Rename isDurableNonceTransaction to isTransactionMessageWithDurableNonceLifetime and assertIsDurableNonceTransactionMessage to assertIsTransactionMessageWithDurableNonceLifetime for consistency with the blockhash lifetime. The old names are kept as aliases but marked as deprecated.
#426 b7dfe03 Thanks @lorisleiva! - Deprecate the I 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 -> TransactionMessageWithFeePayerITransactionMessageWithFeePayerSigner -> TransactionMessageWithFeePayerSignerITransactionMessageWithSigners -> TransactionMessageWithSignersITransactionMessageWithSingleSendingSigner -> TransactionMessageWithSingleSendingSigner#488 810d6ab Thanks @lorisleiva! - Remove the I prefix on the following types: IInstruction, IInstructionWithAccounts, IInstructionWithData, IInstructionWithSigners, IAccountMeta, IAccountLookupMeta and IAccountSignerMeta. The old names are kept as aliases but marked as deprecated.
#432 53e1336 Thanks @lorisleiva! - Keep type safety when appending or prepending instructions to transaction messages
#430 e6c0568 Thanks @lorisleiva! - Introduce a new TransactionMessageWithLifetime type and special Exclude type helpers to remove information from transaction messages
Updated dependencies [363e3cc, eeac21d, 93609aa, b7dfe03, 810d6ab]:
#468 6ccbf01 Thanks @lorisleiva! - Add, remove and forward the TransactionMessageWithinSizeLimit and TransactionWithinSizeLimit types in all helpers that may affect the size of a transaction or transaction message.
#479 bbcb913 Thanks @lorisleiva! - Adds isFullySignedTransaction helper and renames assertTransactionIsFullySigned to assertIsFullySignedTransaction. The old name was kept as an alias but marked as deprecated.
#426 b7dfe03 Thanks @lorisleiva! - Deprecate the I 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 -> TransactionMessageWithFeePayerITransactionMessageWithFeePayerSigner -> TransactionMessageWithFeePayerSignerITransactionMessageWithSigners -> TransactionMessageWithSignersITransactionMessageWithSingleSendingSigner -> TransactionMessageWithSingleSendingSigner#425 93609aa Thanks @lorisleiva! - Add a variety of types, constants and functions to help with transaction sizes and their limits
Updated dependencies [6ccbf01, 53e1336, 363e3cc, eb61d94, eeac21d, 93609aa, b7dfe03, e6c0568, 810d6ab]:
363e3cc, eeac21d, 93609aa, 304a44f, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
6ccbf01, 363e3cc, eeac21d, bbcb913, 93609aa, b7dfe03, 810d6ab]:
363e3cc, eeac21d, 93609aa, 304a44f, b7dfe03]:
6ccbf01, 53e1336, 363e3cc, eb61d94, eeac21d, bbcb913, 93609aa, 304a44f, b7dfe03, e6c0568, 810d6ab]:
#508 304a44f Thanks @calintje! - Fix RPC objects incorrectly appearing as thenable Promises which caused silent program termination when awaited.
Updated dependencies [363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 304a44f, 93609aa, b7dfe03]:
6ccbf01, 53e1336, eb61d94, bbcb913, 304a44f, 93609aa, b7dfe03, e6c0568, 810d6ab]:
363e3cc, eeac21d, 304a44f, 93609aa, b7dfe03]:
#508 304a44f Thanks @calintje! - Fix RPC objects incorrectly appearing as thenable Promises which caused silent program termination when awaited.
Updated dependencies [363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, 304a44f, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
363e3cc, eeac21d, 93609aa, b7dfe03]:
6ccbf01, 53e1336, 363e3cc, eb61d94, eeac21d, bbcb913, 93609aa, b7dfe03, e6c0568, 810d6ab]:
Nothing published for this version
Nothing published for this version
Nothing published for this version
@solana/codecs-data-structures@2.2.1
e881fca]:
e881fca]:
e881fca]:
#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 calling AbortController#abort()
Updated dependencies []:
`85925d6` Thanks @nickfrosty! - Added an OffCurveAddress type to represent addresses for which there is no associated private key. These are addresses
85925d6 Thanks @nickfrosty! - Added an OffCurveAddress 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 an Address to an OffCurveAddress, as well as an isOffCurveAddress() guard function, and a assertIsOffCurveAddress() assertion function.
85925d6]:
85925d6]:
85925d6]:
85925d6]:
85925d6]:
85925d6 Thanks @nickfrosty! - Added AffinePoint; 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.85925d6]:
85925d6]:
85925d6]:
85925d6]:
85925d6]:
85925d6, 85925d6]:
85925d6, 85925d6]:
85925d6]:
85925d6, 85925d6]:
85925d6, 85925d6]:
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →