Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
@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 57 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 11 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
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.