New Product: Open-Source Key Management System for Node.js

New Product: Open-Source Key Management System for Node.js

Blockchain Announcements

Crypto APIs Team

Aug 4, 2022 • 3 min

The open-source Key Management System (KMS) is the latest addition to our blockchain suite of infrastructure, data and tools. 

Crypto APIs KMS is an open-source Node.js SDK library that allows businesses and organizations to have full control of master private keys, master seeds, and mnemonics. The KMS is a secure enterprise-grade solution for operating with digital assets, creating wallets and addresses, and signing transactions.

The library allows businesses to create HD wallets (xPub, yPub, zPub) and sign transactions locally without a network connection (offline). It can be used in combination with Crypto APIs product suite for syncing xPubs, deriving wallet addresses, listing wallet addresses, getting fee recommendations, preparing transactions, broadcasting locally signed transactions and more. 

Secure KMS for Custodial and Non-custodial Solutions

The KMS is perfect for any crypto and blockchain company operating with end users. It’s a great solution for both custodial and non-custodial businesses, including hardware wallets, digital wallets, mobile applications, payment services providers, crypto exchanges and more.

The flexibility and scalability of the KMS make it suitable for multiple use cases. By using Crypto API's open-source library, businesses can easily scale to satisfy the demand and create wallets and addresses for millions of users. They can decide whether to hold custody of their clients' master keys, master seed, and mnemonic or pass them on to their customers instead.

The key management system is integrated with Crypto APIs infrastructure, providing access to a collection of powerful endpoints to securely manage wallet addresses and transactions.

How the Key Management System Works?

The open-source KMS library is developed to provide the highest level of security and transparency. 

Customers can create HD wallets and sign transactions only locally, meaning on their premise and without a network connection. This ensures that the generated keys and mnemonic are visible only to them. 

KMS: Create HD Wallet (xPub, yPub, zPub) 
When a new HD wallet is created for a specific blockchain and network, the customer needs to keep the response from the endpoint in a safe place, otherwise the data is lost and cannot be recovered. Crypto APIs doesn’t keep a record or data generated from this endpoint. 

Sync New HD Wallet (xPub, yPub, zPub)
Through this endpoint customers can add and sync a brand new xPub to the Crypto APIs  system. After initial sync we keep updating the synced xPub all the time.

Derive And Sync New Receiving Addresses
Through this endpoint users can derive 100 receiving addresses, starting from the last index we have data for, which are then added to the xPub, subscribed for syncing, and start recording data. If no data is available, it will start from index 0.

Derive And Sync New Change Addresses
Through this endpoint customers can derive 100 change addresses, starting from the last index we have data for, which are then added to the xPub, subscribed for syncing, and start recording data. If no data is available, it will start from index 0.

List Synced Addresses
Through this endpoint, customers can list all addresses that Crypto APIs has synced for a specific xPub. This includes previous and current/new xPubs’ addresses we’ve synced for them, etc.

Prepare A UTXO-Based Transaction From HD Wallet (xPub, yPub, zPub)
With this API endpoint customers can prepare a transaction for signing from all addresses for the specific xPub synced with Crypto APIs. This is based on the selectionStrategy and the addresses’ balances. In the case a user has an address not synced with Crypto APIs, it will not be included. This endpoint applies to all supported UTXO-based blockchain protocols.

Prepare An Account-Based Transaction From HD Wallet (xPub, yPub, zPub)
Using this API, customers can prepare a transaction for signing from a synced with Crypto APIs address from the specific xPub. This endpoint applies to all supported account-based blockchain protocols, e.g. Ethereum, BSC, etc.

KMS: Sign Prepared Transaction Locally
After a transaction is prepared, using this endpoint users sign it locally (offline) using the transaction response from Prepare Transaction From HD Wallet endpoint, both for account-based and UTXO-based

Broadcast Locally Signed Transaction
When a transaction has been already signed locally, with this endpoint customers can broadcast it to the blockchain. We then keep the user posted about the status by sending a callback with a success or failure status.


Your keys, your coins. View KMS on GitHub.


Related articles

Share