cardano-js-sdk: Empowering the community through open source

At Lace, we're all about using cardano-js-sdk to the fullest. The tool's versatility enables you to expand Lace, create your own wallets, and even launch all kinds of cool stuff. Give a try, you never know what you might create!

cardano-js-sdk: empowering the community through open source

Key takeaways

  • cardano-js-sdk ('SDK') is a domain model of Cardano written in Typescript
  • The SDK now contains 19 individual packages that serve to encapsulate the functionality required by developers to interact with and realize their visions on Cardano
  • Developers, SPOs, and ecosystem builders among many others can benefit from using the SDK to contribute to and enrich the foundations that help realize Lace or build their own applications
  • The SDK forms the foundations that developers require to build on Cardano by providing a robust and well-tested, and understood framework to build applications on
  • Using the SDK streamlines onboarding to Cardano and lowers development costs
  • The SDK includes a fully-fledged test suite per package to provide much-needed quality and confidence to all users, and a local network that users can run and test applications on

Ready to get started with the SDK? Check the link at the end of the article.

Introduction

The launch of the Lace light wallet platform on the Cardano mainnet in early April represented the culmination of much work and dedication by many people. And we are so excited about it! Designed to become a gateway to the Web3 ecosystem, one of Lace's most remarkable aspects is that it uses an open source component, cardano-js-sdk. Collaboration is key! This opens Lace up for developers, SPOs, and ecosystem builders to expand Lace's versatility and also apply cardano-js-sdk to a wide range of new use cases.

This article takes a deep dive into the cardano-js-sdk component and explores its usability for Lace, looks into current and expanded use cases, and offers people interested in using it a pathway to do so.

cardano-js-sdk explained

cardano-js-sdk (henceforth 'SDK') is a domain model of Cardano written in Typescript.

The SDK has expanded over time, and it now contains 19 packages, which serve to encapsulate the features and behavior required by applications building on Cardano. This may include transaction construction, key management, input selection, and much more. The SDK begins to form the foundations necessary for developers building on Cardano with a robust, well-tested and understood framework to build applications on. Developers can construct their designs on a platform with solid underlying engineering.

Why does Lace use the SDK?

Typescript is a type-safe language widely used across many other Cardano libraries. Developers are writing smart contracts applications in Typescript, for example.

This language is hugely popular for people building scalable backends, type-safe applications, and much more, making it almost the de facto standard in the industry. There are many reasons for this, including improved tooling and better integration with other technologies.

One of the key considerations for using Typescript for the SDK was the desire to maximize getting the product right. Otherwise, the risk is not that the user will have a bad user experience, but rather that they might lose funds. This inherent risk means that solid testing and constant quality are some of the highest necessities within a product-building ecosystem. This is why Lace uses, and was developed hand-in-hand with, the SDK. Any developers intending to build their product in an environment where their development stack offers just a few test cases might find this concerning. To address this concern, the SDK includes a fully-fledged test suite per package to strive for that much-needed quality, security, and confidence to all users. Thorough testing of application behavior before deployment is part of the acceptance criteria for any new applications.

What are the benefits of the SDK for the community?

The SDK is currently driven towards satisfying wallet requirements. Its many components may specifically be appropriate for wallet developers who: require a dapp-connector package, input selection functionality, convert raw data into human readable formats, derive addresses, etc.

The main idea is that the SDK greatly and quite readily improves the developer experience and supports rapid standardization of any given stack. Developers can quickly add any new features and functionality and establish a reliable framework for subsequent development.

IOG’s Marlowe team could use the SDK to realize the Marlowe domain (Marlowe contract templates, Marlowe transaction building, etc.) These features could be realized on Lace quite quickly, allowing the richness of Marlowe to lend more color and nuance to the Lace platform.

The same can be extrapolated to external developers and ecosystem builders. By using the SDK, DApp developers, ecosystem builders, etc., could construct their designs quickly and rely on the SDK's robust and tested engineering for all subsequent applications.

Using the SDK streamlines onboarding to Cardano, lowers development costs, and expands the SDK's usability to far more use cases than just wallets.

How can developers use the SDK?

Currently, developers can leverage the SDK in two different ways:

  • to raise an issue for a feature request
  • to create a pull request to implement a feature request

Many developers and stake pool operators (SPOs) for instance have already raised several issues requesting new features.

How can Web3 applications leverage the SDK?

Lace is built as a Web3 platform. As such, Lace enables non-custodial digital asset management (including NFTs) and acts as a portal to a constellation of Web3 environments. DApps, the metaverse, decentralized finance, and much more, are all within reach through Lace, and the SDK is the engine that drives this Web3 evolution.

Expanded use cases

Besides building DApps and wallets, developers can leverage the SDK to create entirely new use cases, including:

CIP implementation

Cardano Improvement Proposals (CIPs) are design documents that describe a proposed change for Cardano. People intending to implement new CIPs could realize a CIP in the SDK by building the necessary features and functionalities the CIP defines. The SDK makes this task easier by delivering and providing many features to help ease the development process.

Key management

SPOs can draw substantial benefits from new SDK functionality. For example, many SPOs are keen on having a key management package built on Libsodium, to manage keys on node.js environments. This could enable SPOs implement voting or proving key ownership.

Microservice APIs

The SDK can support microservice APIs that communicate on-chain state. This is a necessary feature for any DApp or NFT project to reduce development cost and curate the custom on-chain views their users desire without incurring substantial infrastructure cost.

Future features

Web3 is largely built on blockchain technology, so most Web3 applications will need a way to communicate on-chain states and, per a set of constraints, allow users to change those states. A wallet allows a user to interact with these Web3 applications, and empowers the user to construct and sign transactions to purchase NFTs, send funds to their friends, or deposit liquidity into a decentralized exchange (DEX).

Modularised by design, the SDK hopes to be able to serve the many needs of not only Cardano developers, but also to help facilitate a fantastic experience for Cardano application users: from allowing developers to construct APIs that curate views of on-chain information with minimal infrastructure overhead, to transaction building functionalities necessary to interact with ecosystem DApps. These are just a few examples of the features that are within the grasp of the SDK.

Conclusion

The SDK plays a fundamental role in maintaining a healthy development ecosystem thanks to its robust engineering, battle-tested tooling, and low costs. The combination of these factors creates a favorable environment for developers, SPOs, ecosystem builders, etc., to build on Cardano, whether it is to expand Lace or to create novel Web3 applications.

To start using or contributing to the SDK, head over to this GitHub repo.

Stay updated on Lace

Lace is for everyone everywhere – regardless of their blockchain knowledge or background – to discover and enjoy a new world of digital experiences. More than just a wallet for the Cardano ecosystem. Lace brings together digital assets, network participation, and access to NFTs, DApps, and DeFi services in one secure, quick, and easy-to-use platform.

Register for updates, add the Lace extension to your browser, and check out its features.


Fernando Sanchez