Glittr
  • Introduction
  • Protocol Overview
  • Contract Primitives
    • MOAs - Mint Only Assets
    • MBAs - Mint and Burn Assets
      • Vaults
    • Spec Contracts
    • Oracle Commitments
  • Building on Glittr
    • Setup
    • Faucet
    • Glittr SDK
    • Glittr Transactions
    • Glittr Contracts
    • Installing Glittr Wallet
    • Local Development Guide
  • GLIP
  • Node
    • Run a Bitcoin Node
    • Run a Glittr Node
  • Examples & Guide
    • Creating Tokens
    • Contract Custody
    • Complex Tokens
    • Vesting and Freemint Contract
    • Wrapped BTC Contract
    • USD Contract
    • Oracle Implementation Guide
    • Glittr Output Structure
    • AMM Contract
  • API Reference
    • Getting Assets API
  • APP EXAMPLES
    • Freemint App (NextJS)
    • Freemint App (React + Vite)
    • NFT App (React + Vite)
Powered by GitBook
On this page
  • Prerequisites:
  • Usage
  • Example Create and Send Glittr Transaction
  1. Building on Glittr

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();
PreviousFaucetNextGlittr Transactions

Last updated 3 months ago