BTC
The Bitcoin SDK provides an interface to interact with Bitcoin blockchains using SegWit (P2WPKH) transactions. It supports wallet connectivity, transaction preparation, and balance checking, using the bitcoinjs-lib library for core functionality.
Wallet setup
To generate new Bitcoin WIF (Wallet Import Format) private keys for P2WPKH wallets, you can use the following tools:
Bitcoin Tools (testnet)
Get tokens on the testnet
For testing process, you can use following links to get token on the testnet
Initialization
Import the SDK and create a new instance:
import { BTC } from "@kynesyslabs/demosdk/xm-websdk"
const rpc_url = "https://blockstream.info/testnet/api";
const network = BTC.networks.testnet;
const instance = await BTC.create(rpc_url, network);
Wallet connect
Connect your wallet using a private key in WIF format:
const privateKeyWIF = "cTb..."; // Your WIF private key
await instance.connectWallet(privateKeyWIF);
You can view the connected wallet’s address using the getAddress
method:
const address = instance.getAddress();
console.log(`Address: ${address}`);
Create payload for the token transfer
Prepare a signed transaction to transfer BTC using preparePay
method:
const receiverAddress = "tb1q...";
const amount = "560"; // Amount in satoshis
const signedTx = await instance.preparePay(receiverAddress, amount);
The signedTx
is a hex-encoded signed transaction ready for use in a DEMOS transaction.
Create payload for the multiple transfers
You can create multiple Bitcoin transfer payloads by using the preparePays
method as shown:
const transfers = [
{ address: "tb1q...", amount: "550" },
];
const signedTxs = await instance.preparePays(transfers);
The signedTxs
is an array of hex-encoded signed transaction payloads.
Checking Balance
You can check the balance of the connected wallet, including change addresses as shown:
const balance = await instance.getBalance();
console.log(`Balance: ${balance} satoshis`);
Resources
Last updated