npm.io
0.0.76 • Published 4d ago

@buildonspark/bare

Licence
Apache-2.0
Version
0.0.76
Deps
3
Size
37 kB
Vulns
0
Weekly
1.3K

Spark SDK for Bare Runtime

Spark SDK optimized for the Bare JavaScript runtime environment. For other environments see @buildonspark/spark-sdk.

Spark is the fastest, cheapest, and most UX-friendly way to build financial apps and launch assets natively on Bitcoin. It’s a Bitcoin L2 that lets developers move Bitcoin and Bitcoin-native assets (including stablecoins) instantly, at near-zero cost, while staying fully connected to Bitcoin’s infrastructure.

For complete documentation, visit https://docs.spark.money

Overview

This package provides Spark SDK support for Bare, a lightweight JavaScript runtime. It uses native addons for FROST cryptographic operations.

Installation

npm install @buildonspark/bare bare

Quick Start

Create a JavaScript file and run it with the bare CLI:

get-balance.js

import { SparkWallet } from "@buildonspark/bare";
import process from "bare-process";

async function main() {
  const { wallet, mnemonic } = await SparkWallet.initialize({
    mnemonicOrSeed: undefined, // Or provide existing mnemonic
    options: {
      network: "MAINNET", // or "REGTEST" for testing
    },
  });

  const balance = await wallet.getBalance();
  const sparkAddress = await wallet.getSparkAddress();

  console.log("Mnemonic:", mnemonic);
  console.log("Balance:", balance);
  console.log("Spark Address:", sparkAddress);

  await wallet.cleanup();
}

main().catch((error) => {
  console.error(error);
  process.exit(1);
});

Run with:

bare get-balance.js

Examples

Get Static Deposit Address
import { SparkWallet } from "@buildonspark/bare";

const { wallet } = await SparkWallet.initialize({
  mnemonicOrSeed: "your mnemonic phrase here...",
  options: { network: "MAINNET" },
});

const address = await wallet.getStaticDepositAddress();
console.log("Deposit address:", address);

await wallet.cleanup();
Transfer Bitcoin
import { SparkWallet } from "@buildonspark/bare";

const { wallet } = await SparkWallet.initialize({
  mnemonicOrSeed: "your mnemonic phrase here...",
  options: { network: "MAINNET" },
});

const transfer = await wallet.transfer({
  receiverSparkAddress: "sp1q...",
  amountSats: 1000,
});

console.log("Transfer result:", transfer);
Create Lightning Invoice
import { SparkWallet } from "@buildonspark/bare";

const { wallet } = await SparkWallet.initialize({
  mnemonicOrSeed: "your mnemonic phrase here...",
  options: { network: "MAINNET" },
});

const invoice = await wallet.createLightningInvoice({
  amountSats: 1000,
  memo: "Payment",
});

console.log("Invoice:", invoice.invoice.encodedInvoice);

Keywords