Glittr SDK

The Glittr SDK is a client-side library written in Typescript designed to facilitates interaction with the Glittr protocol, allowing developers to integrate Glittr with their dApps.

By utilizing this library, developers can create contracts, call contracs, and transfer Glittr assets on Bitcoin using the Glittr infrastructure.

Prerequisites:

Installation with npm

npm install @glittr-sdk/sdk

Installation with yarn

yarn add @glittr-sdk/sdk

Usage

Init SDK

Javascript

const { GlittrSDK } = require("@glittr-sdk/sdk");

const NETWORK = "regtest";

const client = new GlittrSDK({
  network: NETWORK,
  electrumApi: "https://devnet-electrum.glittr.fi",
  glittrApi: "https://devnet-core-api.glittr.fi",
  apiKey: "<your-api-key>"
});
console.log(client)

Typescript/ES6

import { GlittrSDK } from "@glittr-sdk/sdk";

const NETWORK = "regtest";

const client = new GlittrSDK({
  network: NETWORK,
  electrumApi: "https://devnet-electrum.glittr.fi",
  glittrApi: "https://devnet-core-api.glittr.fi",
  apiKey: "<your-api-key>"
});
console.log(client)

Load Account

Import Bitcoin account using private key hex:

import { Account } from "@glittr-sdk/sdk";

const NETWORK = "regtest";

const account = new Account({
    privateKey: "your bitcoin private key",
    network: NETWORK
})

console.log(account.p2pkh())
console.log(account.p2wpkh())

Or using WIF (Wallet Import Format) text

import { Account } from "@glittr-sdk/sdk";

const NETWORK = "regtest";

const account = new Account({
    wif: "your WIF text",
    network: NETWORK
})

console.log(account.p2pkh())
console.log(account.p2wpkh())

Construct Glittr Transaction

import { txBuilder } from "@glittr-sdk/sdk";

const c = txBuilder.freeMintContractInstantiate({
  simple_asset: {
    supply_cap: 2000n.toString(),
    divisibility: 18,
    live_time: 0,
  },
  amount_per_mint: 2n.toString(),
});

console.log(c)

Example Create and Send Glittr Transaction

Freemint Contract Creation

import { Account, GlittrSDK, txBuilder } from "@glittr-sdk/sdk";

async function main() {
  const NETWORK = "regtest";

  const client = new GlittrSDK({
    network: NETWORK,
    electrumApi: "https://devnet-electrum.glittr.fi",
    glittrApi: "https://devnet-core-api.glittr.fi",
    apiKey: "<your-api-key>"
  });
  const account = new Account({
    wif: "your WIF text",
    network: NETWORK,
  });

  const c = txBuilder.freeMintContractInstantiate({
    simple_asset: {
      supply_cap: 2000n.toString(),
      divisibility: 18,
      live_time: 0,
    },
    amount_per_mint: 2n.toString(),
  });

  const txid = await client.createAndBroadcastTx({
    account: account.p2pkh(),
    tx: c,
    outputs: []
  });
  
  console.log("TXID : ", txid);
}

main();

Last updated