Express
Prerequisites
To complete this guide, you will need the following:
1. Create a Node.js project
Start with a brand new empty directory called express-example
and run the following command to initiate a Node.js project:
npm init -y
2. Install Express.js
Inside your project directory, run the following command to install Express.js:
yarn add express
3. Install @zbd/node Node.js SDK
Inside your Express.js
yarn add @zbd/node
4. Send and receive Bitcoin
Create a new file called index.js
and add the following code:
import express from "express";
import { zbd } from "@zbd/node";
const ZBD_API_KEY = 'b7YW3s2JzZKGcXjIf5Dqof8wjKT2RuWr8';
const ZBD = new zbd(ZBD_API_KEY);
// Create Express app
const app = express();
// Creating a Bitcoin Lightning payment request
app.get("/request", async (req, res) => {
try {
// @ts-ignore
const data = await ZBD.createCharge({
amount: "100000", // 100 satoshis (100,000 msats)
description: "Express + ZBD!",
});
res.status(200).json({ data });
} catch (error) {
res.status(500).json({ error });
}
});
// Send a payment to a Bitcoin Lightning Address
app.get("/send", async (req, res) => {
try {
const data = await ZBD.sendLightningAddressPayment({
lnAddress: "andre@zbd.gg", // Who is the recipient?
amount: "100000", // 100 satoshis (100,000 msats)
comment: "Express + ZBD!",
});
res.status(200).json({ data });
} catch (error) {
res.status(500).json({ error });
}
});
app.listen(3000, () => {
console.log("Express server w/ ZBD listening on http://localhost:3000");
});
Run the following command to start your Express.js server:
yarn start
Opening your browser to the following URL: http://localhost:3000/request
should return a JSON response with a payment request.
You can also test this using curl command:
curl http://localhost:3000/request
You’re looking for the data.invoice.request
property in the JSON response. It starts with lnbc1
and is the payment request anyone in the Bitcoin Lightning Network can use to pay you.
lnbc1u1pjdlax9pp5t7jhkd7h2wntd4f2v7xp22dknmjxp0q8nm7hfcny4p7a5mr7x3rsdp9f4hkueteypshggrfde6x2unwv46zqumsv4jkgcqzzsxqzjcsp5dsayu6m6632p28rnkeeqsr7d54amrkv6wh46yrv42gdgca8xl8gs9qyyssqgj2zrkax733rzulfkzc5mqsr8fpwrva82stpa7e0frw32722trv37jlq8mvlqfp8y75lr6mz63zd7qnxar8hhsehuy22pvfq6wjxwqqqa60lx3
Opening your browser to the following URL: http://localhost:3000/send
should return a JSON response with the payment sent message.
You can also test this using curl command:
curl http://localhost:3000/send
You’re looking for the status
of completed
to know that the payment settled successfully.
processing
. This is expected — use the callbackUrl
property to receive updates about your payments.3. Try it yourself
You can now send and receive instant Bitcoin payments using Express.js + ZBD!
Was this page helpful?