Popular Liquid development tools, open source code, and examples
Before you start developing on Liquid you should familiarize yourself with some of the key concepts of Liquid.
Remember that Liquid is an implementation of Elements, so if works with Elements, it will work with Liquid!
Regardless of what language you end up using, the Elements project tutorial is a great place to start. You don’t need to be familiar with the command line to follow along and other language examples are provided. It also shows how to set up your own local Liquid development network, great for experimenting before you move onto the Liquid test network
Any language that can use RPC gives developers access to all the features of a full Liquid node.
Node.js and JavaScript
Node.js and JavaScript are very popular languages for building on Liquid. Here are a few of the tools and examples you can use to start your development journey.
- The Elements project tutorial has an example of how to interact with an Elements node over RPC with Node.js.
- The GitHub site of Vulpem Ventures has a lot of interesting tools, many of which work with Node.js and JavaScript. They include:
- LDK (Liquid Development Kit) - abstractions to speed-up implementation of elements-based wallets for browsers and Node.js.
- LiquidJS- a fork of bitcoinjs/bitcoinjs-lib containing modifications to support elements-based blockchains.
- Marina Wallet - a Liquid wallet browser extension.
- An example of an HTTP wrapper for Blockstream GDK, allowing GDK to be called from JavaScript or Node.js.
- The API for Blockstream AMP can easily be called from Node.js or JavaScript
- Crypto Garage has built development kits based on Libwally (Blockstream’s collection of useful primitives for cryptocurrency wallets) using WebAssembly (WASM) and JavaScript and they include plenty of great examples of how to use them.
Python
There are plenty of tools and examples written in Python for Liquid. Below are a few to help you get started on your journey.
- The Elements tutorial has an example of how to interact with an Elements node over RPC.
- The Blockstream Green Development Kit (GDK) allows people to build server, desktop and mobile applications that can interact with the Green server's '2of2' multisignature shield. You can build Python wrappers for GDK and try examples of handling Liquid and AMP assets.
- Blockstream AMP has many examples in Python.
- Libwally (Blockstream’s collection of useful primitives for cryptocurrency wallets) is provided with a Python wrapper and there are examples showing you how to handle both Liquid and AMP issued assets.
Command Line and Bash
Elements Core provides a command line interface (elements-cli) for interacting with a Liquid node. There are many examples out there for command line or bash use. Good starting points include the following.
- The Elements tutorial is the best place to start. You can following along and learn about the main features of Elements and the advanced examples give you an insight into some of the more low-level commands at your disposal.
- The RPC specification for Elements is a useful reference.
- Blockstream Green for Liquid can be accessed from the command line using the Green-cli command line interface.
Other languages (C#, Go, Ruby, Java, etc.)
Elements itself can be called by any language that supports RPC. Many examples are provided for Python, Flask, Desktop C# .NET app, MVC C# .NET Web app, Ruby, Java, Node.js, Go, Perl. If your preferred language is not included you can use one of them as a template and get a working version in your chosen language quite easily. Beyond that there are tools and development kits provided in many popular languages. Some of which are listed below.
- Vulpem Venture’s go-elements - Go support for confidential transactions on Elements-based blockchains.
- NBitcoin - an Elements enabled C# library. Used in the popular BTCPay Server payment processor.
- Blockstream’s GDK can be build with Java wrappers.
- Libwally can also be built with Java wrappers. A step by step guide on how to do this along with an example of how to form transactions is a good starting point.
- Blockstream AMP can also be called by any language capable of making HTTP requests. Examples are provided in Ruby, C# (.NET), Node.js, Go. These can be used as a template for any other language.
Join the Community,
Become a Contributor
Suggest new features, report issues, talk with developers and other users.