Documentation

Javascript SDK

What's new in 12.5.0

  • Resolved a minor issue in the MPC code.

Breaking change

Version 12.5.0 introduces a small breaking change:

  • It is not possible anymore to create multiple instances of the SDK for the same device id.
  • If trying to do it, a FireblocksError exception will be thrown with error code INSTANCE_ALREADY_INITIALIZED (109)
  • Instead, you must re-use the instance you already created.
  • This is done by calling getFireblocksNCWInstance(deviceId) before creating an instance with FireblocksNCWFactory(options).

We recommend visiting our ncw-web-demo repo to understand how to adapt your app to the SDK changes. Specifically, you can always jump to this commit and see the changes we added to the web demo.


What's new in 12.4.1

  • Resolved an issue when dealing with multiple concurrent calls to generateMPCKeys
  • Improved error visibility: wrong passphrase in the recovery process is now explicitly mentioned in the returned error as WRONG_RECOVERY_PASSPHRASE (603)

What's new in 12.3.1

  • Resolved an issue when trying to sign a transaction that has failed or will fail before it can even be signed.

What's new in 12.2.1

  • Resolved an issue in the MPC ceremony process that previously caused exceptions in cases of poor connectivity.
  • Enhanced the robustness of the MPC ceremony process by extending the retry mechanism.

What's new in 12.2.0

In version 12.2.0, we've introduced a few major enhancements.

  • Direct reporting of errors to Fireblocks. This will ease the process of supporting and debugging issues in the future. More information can be found here.
  • Our MPC ceremony processes have been enhanced for greater robustness. MPC messages will now undergo multiple retry attempts before failing.
  • You can now dynamically extend wallets! Expand the range of algorithms available in a wallet by adding, for instance, EdDSA alongside ECDSA. Learn more here.

What's new in 12.1.0

In version 12.1.0, we've expanded the capabilities of the NCW SDK to support Solana and Algorand, now including the EdDSA algorithm alongside our existing ECDSA support. This enhancement enables a single wallet to seamlessly interact with Bitcoin, various EVMs, and Solana.

More information about the supported NCW networks may be found here .

Additionally, we're excited to announce that support for more blockchains, including Stellar, is on the horizon. Stay tuned for further updates!

Upgrade guidelines

To successfully utilize the generateMPCKeys function with MPC_EDDSA_ED25519, it's essential that your workspace supports EdDSA. Learn more about supporting multiple algorithms within a single wallet here.


What's new in 12.0.0

In version 12.0.0, we introduced a more structured approach to error handling in our JavaScript SDK. With the inclusion of an exported FireblocksError class, developers can now access detailed error information using the new FireblocksError.message and FireblocksError.key properties.

If issues arise during SDK activities, these structured error responses aim to provide you with better insights, enabling efficient debugging or informed inquiries to our support team.

Upgrade guidelines

If your previous code relied on specific error responses from the NCW SDK, incorporating these new error codes may improve the accuracy of your try/catch flows. Refer to this PR to see how we handled the SDK upgrade in our web demo.


What's new in 11.0.2

In version 11.0.2, fixed a bug that may occur during a call to generateMPCKeys.


What's new in 11.0.1

In version 11.0.1, we have implemented significant performance improvements in key generation and transactions. For additional tips on enhancing overall performance, refer to our documentation here.


What's new in 11.0.0

In version 11.0.0, we upgraded some of our JavaScript SDK infrastructure in preparation for upcoming versions, which include performance improvements in MPC key creation and transactions.

We also added these features and made these changes:

  • The SDK logger utility lets you choose to keep historical data of all NCW SDK activity.
  • The fetch log utility can now fetch SDK logs from your app.
  • Reduced package size for faster loading times.

Breaking change

Version 11.0.0 introduces a breaking change since we renamed the following interfaces:

  • Instead of initializing via the FireblocksNCW.initialize(options) class function, call FireblocksNCWFactory(options).
  • Do not declare variables with type FireblocksNCW but refer to it via the IFireblocksNCW interface.
  • Instead of initializing the logger via the new ConsoleLogger() function, call ConsoleLoggerFactory().
  • Instead of calling the FireblocksNCW.version function, call version directly.
  • Instead of calling the FireblocksNCW.generateDeviceId() function, call generateDeviceId() directly.

We recommend visiting our ncw-web-demo repo to understand how to adapt your app to the SDK changes. Specifically, you can always jump to this commit and see the changes we added to the web demo.


What's new in 10.0.7

In version 10.0.7, we added the ability to work with multiple devices in a single wallet. You can find more information about implementing multiple devices here.


What's new in 10.0

In version 10.0, we added a safer backup and recovery mechanism.

Breaking change

Version 10.0 introduces a breaking change since the following two functions in the interface will receive different parameters:

  • backupKeys
  • recoverKeys

You can find more details about the implementation in our ncw-web-demo repo and the backup procedure here.

Upgrade guidelines

When upgrading to version 10.0 and later, you should require the user to run another backup procedure so that the new encrypted backup share on the Fireblocks servers will be associated with a passphraseId.