New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

bc-runes-js

Package Overview
Dependencies
Maintainers
0
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bc-runes-js

A package to be able to mint, etch or transfer bitcoin runes very easily.

  • 0.3.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
50
increased by21.95%
Maintainers
0
Weekly downloads
 
Created
Source

BC RUNES JS

A package that makes use of runelib library to allow minting, etching or transferring bitcoin runes very easily, by abstracting a bit more of what runelib does, creating the whole environment and scripts for transaction signing, submitting, and waiting.

USAGE

Preparing the address

  const {
    generateAddress,
    getRandomWif
  } = require('bc-runes-js')

  async function main() {
    // If getting an address for the first time, a random wif should be used.
    // Otherwise, skip the line below and invoke generateAddress($yourWif)
    const randomWif = getRandomWif()
    const address = generateAddress(randomWif).taprootAddress
    console.log(address)
  }

Will output the following

  {
    taprootAddress: 'tb1paygndrxzphwlgpn8utlcp592wf267jvk50wxnam6zuvszruhk3pqut4e6f',
    WIF: 'cMjdU3yAEif9P6eug1pa3MxYbpgPjd5vTnRP1cfzLPrWg85N5NAg'
  }

Save taprootAddress and WIF in an .env file or anywhere for later use in the project. This only taproot address will hold the runes sent to it, minted or premined, in outputs with a value of 546. It will need bigger utxos to pay the fees for the transactions it may send.

Note: the address is randomly generated and purely for this example, don't try to use it.

Example for etching a rune

const {
  etch,
  init
} = require('bc-runes-js')

const {
  TAPROOT_ADDRESS,
  WIF
} = process.env

async function main() {
  init({
    taprootAddress: TAPROOT_ADDRESS,
    wif: WIF,
    feePerVByte: 300
  })

  const res = await etch({
    amount: 1,
    cap: 100,
    divisibility: 0,
    name: 'YOUR•RUNE•NAME',
    symbol: '❤︎'
  })

  console.log({ res })
}

main()

Example for minting a rune

const {
  mint,
  init
} = require('bc-runes-js')

const {
  TAPROOT_ADDRESS,
  WIF
} = process.env

async function main() {
  init({
    taprootAddress: TAPROOT_ADDRESS,
    wif: WIF,
    feePerVByte: 300
  })

  // only one of these two arguments is mandatory
  const res = await mint({
    name: 'a rune name with or without spacers (•)',
    runeId: 'blockNumber:txIndex'
  })

  console.log({ res })
}

main()

Example for transferring a rune

const {
  transfer,
  init
} = require('bc-runes-js')

const {
  TAPROOT_ADDRESS,
  WIF
} = process.env

async function main() {
  init({
    taprootAddress: TAPROOT_ADDRESS,
    wif: WIF,
    feePerVByte: 300
  })

  // only the rune name or the id is needed in a transfer object
  const res = await transfer([
    { amount: 'how many runes to transfer',
      to: 'taproot address to send the runes to',
      runeId: 'the id of the rune',
      name: 'the full name of the rune, with or without spacers'
    },
    { 
      // other desired transfer objects
    }
  ])

  console.log({ res })
}

Keywords

FAQs

Package last updated on 29 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc