![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
@xchainjs/xchain-bitcoin
Advanced tools
Custom Bitcoin client and utilities used by XChainJS clients
@xchainjs/xchain-bitcoin
client
- Custom client for communicating with Bitcoin using BIP39 bitcoinjs-lib and WIFyarn add @xchainjs/xchain-bitcoin
Following peer dependencies have to be installed into your project. These are not included in @xchainjs/xchain-bitcoin
.
yarn add @xchainjs/xchain-client @xchainjs/xchain-crypto @xchainjs/xchain-util axios bitcoinjs-lib wif
xchain bitcoin
How xchain-bitcoin works
How to use xchain-bitcoin
This package uses the following service providers:
Function | Service | Notes |
---|---|---|
Balances | Sochain | https://sochain.com/api#get-balance |
Transaction history | Sochain | https://sochain.com/api#get-display-data-address, https://sochain.com/api#get-tx |
Transaction details by hash | Sochain | https://sochain.com/api#get-tx |
Transaction fees | Bitgo | https://app.bitgo.com/docs/#operation/v2.tx.getfeeestimate |
Transaction broadcast | Sochain | https://sochain.com/api#send-transaction |
Explorer | Blockstream | https://blockstream.info |
Sochain API rate limits: https://sochain.com/api#rate-limits (300 requests/minute)
Bitgo API rate limits: https://app.bitgo.com/docs/#section/Rate-Limiting (10 requests/second)
If you plan on using the publically accessible endpoints provided by Nine Realms(listed below), ensure that you add a valid 'x-client-id' to all requests
Example
import cosmosclient from '@cosmos-client/core'
import axios from 'axios'
import { register9Rheader } from '@xchainjs/xchain-util'
register9Rheader(axios)
register9Rheader(cosmosclient.config.globalAxios)
For a complete example please see this test
Creating a no-arg BTC Client will default to the following settings:
const defaultBTCParams: UtxoClientParams = {
network: Network.Mainnet,
phrase: '',
explorerProviders: blockstreamExplorerProviders,
dataProviders: [BlockcypherDataProviders],
rootDerivationPaths: {
[Network.Mainnet]: `84'/0'/0'/0/`,
[Network.Testnet]: `84'/1'/0'/0/`,
[Network.Stagenet]: `84'/0'/0'/0/`,
},
feeBounds: {
lower: LOWER_FEE_BOUND,
upper: UPPER_FEE_BOUND,
},
}
Note: BlockCypher is the default online data provider (to fetch realtime utxos, balances, etc)
You can specify own array of providers, whoch will be executed in array-order, to provide automated failover to the subsequent providers if calls to the first providers fail
import { Client, defaultBTCParams, AssetBTC, SochainDataProviders, BlockcypherDataProviders } from '@xchainjs/xchain-bitcoin'
import { SochainNetwork, SochainProvider } from '@xchainjs/xchain-utxo-providers'
import { Network, UtxoClientParams } from '@xchainjs/xchain-client'
// override with your API key
SochainDataProviders[Network.Mainnet].apiKey = 'YOUR_SOCHAIN_API_KEY'
// or set in env variables so default config can access.
`SOCHAIN_API_KEY={YOUR_SOCHAIN_API_KEY}`
`BLOCKCYPHER_API_KEY={YOUR_BLOCKCYPHER_API_KEY}`
//Default config can access.
process.env.BLOCKCYPHER_API_KEY
process.env.SOCHAIN_API_KEY
//overridde the default init params with your onfig
const initParams: UtxoClientParams = {
...defaultBTCParams,
dataProviders: [SochainDataProviders, BlockcypherDataProviders]// use sochain first and blockcypher as fallback
phrase: process.env.PHRASE,
}
const btcClient = new Client(sochainParams)
FAQs
Custom Bitcoin client and utilities used by XChainJS clients
The npm package @xchainjs/xchain-bitcoin receives a total of 80 weekly downloads. As such, @xchainjs/xchain-bitcoin popularity was classified as not popular.
We found that @xchainjs/xchain-bitcoin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.