Releases: hiero-ledger/hiero-sdk-js
Release list
v2.85.0
This release centers on aligning the examples set with the Java SDK and adding HIP-1313 TCK support, alongside several bug fixes. The remaining merged PRs are internal — a large round of
unit/integration test-coverage additions and dependency updates — with no user-facing impact.
Enhancements
-
Examples aligned with the Java SDK — added 13 new examples and aligned an existing one so the example set stays consistent across SDKs (#621).
#4047New examples:
construct-client,generate-key-with-mnemonic,transfer-crypto,create-file,delete-file,update-account-public-key,consensus-pub-sub-with-submit-key,
topic-with-admin-key,multi-app-transfer,consensus-pub-sub-chunked,schedule-multi-sig-transaction,scheduled-transfer,schedule-identical-transaction.
Bug Fixes
- Mnemonic: throw on invalid BIP-44 derivation paths instead of deriving silently. #3992
- FreezeTransaction: stop emitting a spurious
endTime is deprecatedwarning when deserializing a transaction, and clarify the deprecation message with a migration path.
#4095
Full Changelog: v2.84.0...v2.85.0
v2.84.0
This stable release ships support for HIP-1137 — the Registered Node Address Book — adding a new family of transactions, queries, and service endpoint types for managing registered nodes alongside the existing consensus node lifecycle. All changes were previewed in v2.84.0-beta.1; no additional user-facing changes were merged after the beta. No breaking changes.
Enhancements
-
RegisteredNodeCreateTransaction,RegisteredNodeUpdateTransaction,RegisteredNodeDeleteTransaction: new transactions for the registered node lifecycle. #3846 HIP-1137 -
RegisteredNodeAddressBookQuery: query the registered node address book, with paging support. #3846 -
New service endpoint types —
BlockNodeServiceEndpoint,MirrorNodeServiceEndpoint,RpcRelayServiceEndpoint,GeneralServiceEndpoint,RegisteredServiceEndpoint— describing the various service kinds a node can expose. #3846 -
NodeUpdateTransaction.addAssociatedRegisteredNode: associate a registered node with a consensus node from an existing node update flow. #3846Usage Example:
import { BlockNodeServiceEndpoint, Client, RegisteredNodeAddressBookQuery, RegisteredNodeCreateTransaction, } from "@hiero-ledger/sdk"; const client = Client.forTestnet().setOperator(operatorId, operatorKey); // Create a registered node exposing a block-node service endpoint. const createTx = await new RegisteredNodeCreateTransaction() .setAccountId(operatorId) .addServiceEndpoint( new BlockNodeServiceEndpoint() .setIpAddressV4("127.0.0.1") .setPort(50211), ) .freezeWith(client) .sign(operatorKey); const receipt = await (await createTx.execute(client)).getReceipt(client); const registeredNodeId = receipt.registeredNodeId; // Read it back from the address book. const addressBook = await new RegisteredNodeAddressBookQuery() .setLimit(25) .execute(client);
See examples/registered-node-lifecycle.js for a full create → wait → associate → update → delete flow.
v2.84.0-beta.1
v2.84.0-beta.1
This beta introduces support for HIP-1137 — the Registered Node Address Book — adding a new family of transactions, queries, and service endpoint types for managing registered nodes alongside the existing consensus node lifecycle. No breaking changes.
Enhancements
-
RegisteredNodeCreateTransaction,RegisteredNodeUpdateTransaction,RegisteredNodeDeleteTransaction: new transactions for the registered node lifecycle. #3846 HIP-1137 -
RegisteredNodeAddressBookQuery: query the registered node address book, with paging support. #3846 -
New service endpoint types —
BlockNodeServiceEndpoint,MirrorNodeServiceEndpoint,RpcRelayServiceEndpoint,GeneralServiceEndpoint,RegisteredServiceEndpoint— describing the various service kinds a node can expose. #3846 -
NodeUpdateTransaction.addAssociatedRegisteredNode: associate a registered node with a consensus node from an existing node update flow. #3846Usage Example:
import { BlockNodeServiceEndpoint, Client, RegisteredNodeAddressBookQuery, RegisteredNodeCreateTransaction, } from "@hiero-ledger/sdk"; const client = Client.forTestnet().setOperator(operatorId, operatorKey); // Create a registered node exposing a block-node service endpoint. const createTx = await new RegisteredNodeCreateTransaction() .setAccountId(operatorId) .addServiceEndpoint( new BlockNodeServiceEndpoint() .setIpAddressV4("127.0.0.1") .setPort(50211), ) .freezeWith(client) .sign(operatorKey); const receipt = await (await createTx.execute(client)).getReceipt(client); const registeredNodeId = receipt.registeredNodeId; // Read it back from the address book. const addressBook = await new RegisteredNodeAddressBookQuery() .setLimit(25) .execute(client);
See examples/registered-node-lifecycle.js for a full create → wait → associate → update → delete flow.
v2.83.0
What's Changed
This release introduces new FeeEstimateQuery for off-network fee estimation, and HIP-1313 high-volume throttling for entity creation. It also adds ContractId support to HookEntityId, fixes Ethereum access-list typing for EIP-2930/1559/7702 transactions.
Enhancements
FeeEstimateQuery(HIP-1261): New query type for estimating transaction fees against the mirror node REST API (POST /api/v1/network/fees) without submitting to consensus. Supports two modes —INTRINSIC(default) andSTATE— and auto-freezes the transaction if needed. #3478- HIP-1313 high-volume throttling: Transactions can now opt into the high-volume throttle bucket, which qualifies them for reduced fees during periods of elevated network throughput. Exposed via
setHighVolume()onTransaction. - ContractId support on HookEntityId: HookEntityId now accepts a contract identifier in addition to an account identifier. Setting one clears the other. #3930
- Transaction record multiplier: New configurability for the transaction record fee multiplier on supported transactions. #3977
Dependency Changes
- Bumped protobufjs from 8.0.0 to 8.0.1. #3941
- Bumped next from 16.1.7 to 16.2.3 (examples). #3933
- Bumped axios from 1.13.5 to 1.15.0 (examples). #3934
- Bumped vite from 7.3.1 to 7.3.2 (examples). #3926
New Contributors
- @HarK-github made their first contribution in #3895
- @alaasouabni made their first contribution in #3906
- @ddeskov-limechain made their first contribution in #3928
- @vinod765 made their first contribution in #3923
Full Changelog: v2.82.0...v2.83.0
v2.83.0-beta.3
What's Changed
- chore(deps): bump protobufjs from 8.0.0 to 8.0.1 by @dependabot[bot] in #3941
- fix: reduce slack spam by @ivaylonikolov7 in #3946
- chore(release): v2.83.0 beta.3 by @ivaylonikolov7 in #3947
Full Changelog: v2.83.0-beta.2...v2.83.0-beta.3
v2.83.0-beta.2
What's Changed
- fix: flaky tests by @venilinvasilev in #3915
- feat: verify and document FileAppendTransaction chunk size limits by @ddeskov-limechain in #3928
- fix(ethereum): add proper access list support for tx types 1, 2 and 4 by @venilinvasilev in #3913
- chore(release): v2.83.0-beta.2 by @ivaylonikolov7 in #3938
New Contributors
- @ddeskov-limechain made their first contribution in #3928
Full Changelog: v2.83.0-beta.1...v2.83.0-beta.2
v2.83.0-beta.1
What's Changed
- chore(deps): bump path-to-regexp and express in /tck by @dependabot[bot] in #3905
- chore(deps): bump yaml from 2.8.2 to 2.8.3 in /tck by @dependabot[bot] in #3896
- chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /tck by @dependabot[bot] in #3893
- fix: align AccountInfoQuery typing and registry pattern by @HarK-github in #3895
- feat: rewrite react-native example with Expo and deprecate old version by @Jexsie in #3886
- refactor(token): replace wildcard Client typedefs with explicit channel generics by @alaasouabni in #3906
- fix: pretty pino worker spawn by @venilinvasilev in #3909
- chore(refactor): executable by @venilinvasilev in #3880
- chore: update solo version to latest by @venilinvasilev in #3912
- chore: re-enable hooks by @ivaylonikolov7 in #3911
- chore(release): v2.83.0 beta.1 by @ivaylonikolov7 in #3914
New Contributors
- @HarK-github made their first contribution in #3895
- @alaasouabni made their first contribution in #3906
Full Changelog: v2.82.0...v2.83.0-beta.1
v2.82.0
What's Changed
This release adds string support for pending airdrop transactions, migrates to ethers v6 to eliminate known security vulnerabilities, updates key dependencies, and fixes a bug in node update transactions.
Enhancements
-
String support for
PendingAirdropId: ThePendingAirdropIdconstructor and setter methods (setSenderId,setReceiverId,setTokenId,setNftId) now accept string inputs in addition to object instances. Strings are converted internally usingfromString(). #3844Usage Example:
const airdropId = new PendingAirdropId({ senderId: "0.0.1234", receiverId: "0.0.5678", tokenId: "0.0.9012", }); // Or using setters airdropId.setSenderId("0.0.1234"); airdropId.setReceiverId("0.0.5678");
-
Migration to ethers v6: Ethers v5 contained transitive dependencies (e.g.
elliptic) with known security vulnerabilities that would not be fixed upstream. Migrating to ethers v6 resolves these entirely. #3870
Bug Fixes
- NodeUpdateTransaction description clearing: Fixed a bug where executing a
NodeUpdateTransactionwithout explicitly setting the description field would inadvertently clear the node's existing description. #3889
Dependency Changes
- Upgraded
bignumber.jsfrom 9.1.1 to 10.0.2. #3807 - Migrated
ethersfrom v5 to v6. #3870 - Upgraded
typescriptfrom 5.7.2 to 5.9.3 (dev dependency). #3871 - Upgraded
@types/nodefrom 24.0.8 to 25.5.0 (dev dependency). #3871
New Contributors
- @Rohanarora17 made their first contribution in #3844
- @AgrimTawani made their first contribution in #3836
- @Aman-Singh-Kushwaha made their first contribution in #3849
- @adi-rajput made their first contribution in #3861
- @parvninama made their first contribution in #3828
Full Changelog: v2.81.0...v2.82.0
v2.81.0
This release includes a fix for inconsistent handling of multiple transaction bodies within the SDK. The update ensures transactions are built and processed consistently, improving reliability when serializing and verifying transactions.
Bug Fixes
- Multiple Transaction Bodies Inconsistency: Fixed an issue where transactions could contain inconsistent or mismatched transaction bodies during processing or serialization. The SDK now ensures a single consistent transaction body is used throughout the transaction lifecycle, preventing unexpected validation or verification errors. #3832
Full Changelog: v2.80.0...v2.81.0
v2.81.0-beta.1
What's Changed
- docs: improve solo quick reference by @venilinvasilev in #3649
- chore: update maintainer guidelines link in MAINTAINERS.md by @jwagantall in #3658
- chore(deps): bump renovatebot/github-action from 44.2.3 to 44.2.6 by @dependabot[bot] in #3655
- chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in #3650
- chore(deps): bump actions/setup-java from 5.1.0 to 5.2.0 by @dependabot[bot] in #3651
- chore(deps): bump step-security/harden-runner from 2.14.0 to 2.14.1 by @dependabot[bot] in #3654
- chore(deps): bump actions/setup-node from 6.1.0 to 6.2.0 by @dependabot[bot] in #3636
- fix(TCK): update airdrop method by @mariodimitrovv in #3685
- docs: Good First Issue Initiative by @rwalworth in #3665
- feat(TCK): implement FileContentsResponse endpoint by @mariodimitrovv in #3633
- chore(TCK): update token info query match the java response by @mariodimitrovv in #3694
- chore(deps): bump step-security/conventional-pr-title-action from 3.2.5 to 3.2.6 by @dependabot[bot] in #3695
- chore(deps): bump renovatebot/github-action from 44.2.6 to 46.0.2 by @dependabot[bot] in #3693
- chore(deps): bump step-security/harden-runner from 2.14.1 to 2.14.2 by @dependabot[bot] in #3692
- chore(deps): bump @isaacs/brace-expansion from 5.0.0 to 5.0.1 in /tck by @dependabot[bot] in #3686
- chore(deps): bump next from 15.4.10 to 16.1.6 by @dependabot[bot] in #3677
- chore(deps): bump dotenv from 14.3.2 to 17.2.3 by @dependabot[bot] in #3676
- chore(deps): bump axios from 1.13.2 to 1.13.5 by @dependabot[bot] in #3699
- chore(deps): bump vite from 4.5.14 to 7.3.1 by @dependabot[bot] in #3674
- chore(deps): bump @testing-library/jest-dom from 5.17.0 to 6.9.1 by @dependabot[bot] in #3672
- chore(deps): bump react-native-get-random-values from 1.11.0 to 2.0.0 by @dependabot[bot] in #3679
- chore(deps): bump react and @types/react by @dependabot[bot] in #3675
- fix: build not working on windows by @venilinvasilev in #3691
- chore(deps): bump codecov/codecov-action from 5.0.2 to 5.5.2 by @dependabot[bot] in #3574
- feat(TCK): implement AddressBookQuery endpoint by @mariodimitrovv in #3624
- fix(deps): dependabot support for pnpm workspaces by @PavelSBorisov in #3702
- feat: Add Updated Setup For Windows To Readme by @aceppaluni in #3703
- chore(deps): bump mocha from 10.6.0 to 11.7.5 by @dependabot[bot] in #3729
- chore(deps-dev): bump chromedriver from 142.0.0 to 145.0.1 by @dependabot[bot] in #3727
- chore(deps): bump @testing-library/user-event from 13.5.0 to 14.6.1 by @dependabot[bot] in #3724
- chore(deps): bump chai from 4.3.6 to 6.2.2 by @dependabot[bot] in #3720
- chore(deps): bump express and @types/express by @dependabot[bot] in #3728
- chore(deps-dev): bump nyc from 15.1.0 to 17.1.0 by @dependabot[bot] in #3725
- chore(deps): bump web-vitals from 2.1.4 to 5.1.0 by @dependabot[bot] in #3714
- chore(deps): bump eslint-plugin-mocha from 10.5.0 to 11.2.0 by @dependabot[bot] in #3716
- chore(deps-dev): bump @eslint/js from 9.39.2 to 10.0.1 by @dependabot[bot] in #3717
- chore(deps-dev): bump dpdm from 3.11.0 to 4.0.1 by @dependabot[bot] in #3723
- chore(deps): bump @testing-library/react from 13.4.0 to 16.3.2 by @dependabot[bot] in #3709
- chore(deps-dev): bump globals from 15.15.0 to 17.3.0 by @dependabot[bot] in #3710
- chore(deps): bump react-dom from 18.3.1 to 19.2.4 by @dependabot[bot] in #3718
- chore(deps): bump eslint-plugin-jsdoc from 46.10.1 to 62.5.4 by @dependabot[bot] in #3713
- chore(deps-dev): bump @eslint/compat from 1.4.1 to 2.0.2 by @dependabot[bot] in #3678
- chore(deps-dev): bump jsdom from 27.0.0 to 28.0.0 by @dependabot[bot] in #3715
- chore(deps-dev): bump eslint-config-next from 15.3.3 to 16.1.6 by @dependabot[bot] in #3719
- chore(deps-dev): bump eslint-plugin-deprecation from 2.0.0 to 3.0.0 by @dependabot[bot] in #3707
- chore(deps): bump protobufjs from 7.5.4 to 8.0.0 by @dependabot[bot] in #3721
- chore(deps): bump eslint-plugin-compat from 4.2.0 to 6.1.0 by @dependabot[bot] in #3708
- chore(deps): bump hiero-ledger/hiero-solo-action from 0.16.0 to 0.17.0 by @dependabot[bot] in #3739
- chore(deps): bump renovatebot/github-action from 46.0.2 to 46.1.1 by @dependabot[bot] in #3740
- fix: remove the unnecessary validation #3619 by @GrimNej in #3738
- chore(deps-dev): bump @vitest/coverage-v8 from 3.1.2 to 4.0.18 by @dependabot[bot] in #3726
- feat: allow multiple nodes on record/receipt by @venilinvasilev in #3741
- chore(deps-dev): bump @vitest/browser from 3.1.2 to 4.0.18 by @dependabot[bot] in #3722
- fix(examples): correct error logging in get-account-balance.js by @Rachit753 in #3746
- feat: hip-1195 by @ivaylonikolov7 in #3535
- chore(release): v2.81.0 beta.1 by @ivaylonikolov7 in #3757
New Contributors
- @rwalworth made their first contribution in #3665
- @aceppaluni made their first contribution in #3703
- @GrimNej made their first contribution in #3738
- @Rachit753 made their first contribution in #3746
Full Changelog: v2.80.0...v2.81.0-beta.1