esplora-js
v1.0.1
Published
NPM Package for blockstream.info API.
Downloads
20
Maintainers
Readme
Esplora JS API - Blockstream.info
Easy way to add BlockStream.info API to your JS application.
Donate
Help me to stack sats! :blush:
bc1qvyw5kfx0uhu7g5qeahzna8tl9c5jsuemjumxzj
Or donate via Lightning Network!
References
- Blockstream Info: https://blockstream.info
- API Documentation: https://github.com/Blockstream/esplora/blob/master/API.md
Features
- Fees
- Mempool
- Blocks
- Transactions
- Addresses
- Assets (Liquid Only)
Installation
Using npm:
$ npm install esplora-js
Using yarn:
$ yarn add esplora-js
Usage
Get Fees Recommended
Get an object where the key is the confirmation target (in number of blocks) and the value is the estimated feerate (in sat/vB).
import { fees } from 'esplora-js';
...
const feesRecommended = await fees.getFeesRecommended();
console.log(feesRecommended);
Get Mempool
Get mempool backlog statistics.
import { mempool } from 'esplora-js';
...
const getMempool = await mempool.getMempool();
console.log(getMempool);
Get Mempool Txids
Get the full list of txids in the mempool as an array. The order of the txids is arbitrary and does not match bitcoind's.
import { mempool } from './../src/';
...
const getMempoolTxids = await mempool.getMempoolTxids();
console.log(getMempoolTxids);
Get Mempool Recent
Get a list of the last 10 transactions to enter the mempool. Each transaction object contains simplified overview data, with the following fields: txid, fee, vsize and value.
import { mempool } from 'esplora-js';
...
const getMempoolRecent = await mempool.getMempoolRecent();
console.log(getMempoolRecent);
Get Block
Returns information about a block.
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
import { blocks } from 'esplora-js';
...
const block = await blocks.getBlock({
hash: '000000000000000015dc...'
});
console.log(block);
Get Block Status
Returns the block status.
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
import { blocks } from 'esplora-js';
...
const blockStatus = await blocks.getBlockStatus({
hash: '000000000000000015dc...'
});
console.log(blockStatus);
Get Block Header
Returns the hex-encoded block header.
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
import { blocks } from 'esplora-js';
...
const blockHeader = await blocks.getBlockHeader({
hash: '000000000000000015dc...'
});
console.log(blockStatus);
Get Block Txs
Returns a list of transactions in the block (up to 25 transactions beginning at start_index).
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
- {number} params.start_index - Default: 25
import { blocks } from 'esplora-js';
...
const blockTxs = await blocks.getBlockTxs({
hash: '000000000000000015dc...'
});
console.log(blockTxs);
Get Block Txids
Returns a list of all txids in the block.
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
import { blocks } from 'esplora-js';
...
const blockTxids = await blocks.getBlockTxids({
hash: '000000000000000015dc...'
});
console.log(blockTxids);
Get Block Txid
Returns the transaction at index :index within the specified block.
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
- {number} params.index - Index
import { blocks } from 'esplora-js';
...
const blockTxid = await blocks.getBlockTxid({
hash: '000000000000000015dc...',
index: 218
});
console.log(blockTxids);
Get Block Raw
Returns the raw block representation in binary.
Parameters:
- {Object} params - Params object.
- {string} params.hash - Hash from a block
import { blocks } from 'esplora-js';
...
const blockRaw = await blocks.getBlockRaw({
hash: '000000000000000015dc...'
});
console.log(blockRaw);
Get Blocks Height
Returns the hash of the block currently at height.
Parameters:
- {Object} params - Params object.
- {number} params.height - Height from a block
import { blocks } from 'esplora-js';
...
const blockHeight = await blocks.getBlockHeader({
height: 66666,
});
console.log(blockHeight);
Get Blocks
Returns the 10 newest blocks starting at the tip or at start_height if specified.
Parameters:
- {Object} params - Params object.
- {number} params.start_height - Height from a block
import { blocks } from 'esplora-js';
...
const getBlocks = await blocks.getBlocks({
start_height: 66666
});
console.log(getBlocks);
Get Blocks Tip Height
Returns the height of the last block.
Parameters:
- {Object} params - Params object.
- {number} params.start_height - Height from a block
import { blocks } from 'esplora-js';
...
const blocksTipHeight = await blocks.getBlocksTipHeight();
console.log(blocksTipHeight);
Get Blocks Tip Hash
Returns the hash of the last block.
Parameters:
- {Object} params - Params object.
- {number} params.start_height - Height from a block
import { blocks } from 'esplora-js';
...
const blocksTipHash = await blocks.getBlocksTipHash();
console.log(blocksTipHash);
Get Tx
Returns information about the transaction.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const tx = await transactions.getTx({
txid: '15e10745f15593...'
});
console.log(tx);
Get Tx Status
Returns the transaction confirmation status.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txStatus = await transactions.getTxStatus({
txid: '15e10745f15593...'
});
console.log(txStatus);
Get Tx Hex
Returns the transaction hex.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txHex = await transactions.getTxHex({
txid: '15e10745f15593...'
});
console.log(txHex);
Get Tx Raw
Returns the raw transaction in hex or as binary data.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txRaw = await transactions.getTxRaw({
txid: '15e10745f15593...'
});
console.log(txRaw);
Get Tx Merkle Block Proof
Returns a merkle inclusion proof for the transaction using bitcoind's merkleblock format.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txMerkleBlockProof = await transactions.getTxMerkleBlockProof({
txid: '15e10745f15593...'
});
console.log(txMerkleBlockProof);
Get Tx Merkle Proof
Returns a merkle inclusion proof for the transaction using Electrum's blockchain.transaction.get_merkle format.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txMerkleProof = await transactions.getTxMerkleProof({
txid: '15e10745f15593...'
});
console.log(txMerkleProof);
Get Tx Outspend
Returns the spending status of a transaction output.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txOutspend = await transactions.getTxOutspend({
txid: '15e10745f15593...',
vout: 3,
});
console.log(txOutspend);
Get Tx Outspends
Returns the spending status of all transaction outputs.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const txOutspends = await transactions.getTxOutspends({
txid: '15e10745f15593...'
});
console.log(txOutspends);
Post Tx Outspends
Broadcast a raw transaction to the network. The transaction should be provided as hex in the request body. The txid will be returned on success.
Parameters:
- {Object} params - Params object.
- {string} params.txid - Transactions id.
import { transactions } from 'esplora-js';
...
const postTx = await transactions.postTx({
txid: '15e10745f15593...'
});
console.log(postTx);
Get Address
Get information about an address.
Parameters:
- {Object} params - Params object.
- {string} params.address - Address id.
import { addresses } from 'esplora-js';
...
const addressTest = await addresses.getAddress({
address: '15e10745f15593a...'
});
console.log(addressTest);
Get Address Txs
Get transaction history for the specified address/scripthash, sorted with newest first.
Parameters:
- {Object} params - Params object.
- {string} params.address - Address id.
import { addresses } from 'esplora-js';
...
const addressTxs = await addresses.getAddressTxs({
address: '15e10745f15593a...'
});
console.log(addressTxs);
Get Address Txs Chain
Get confirmed transaction history for the specified address/scripthash, sorted with newest first.
Parameters:
- {Object} params - Params object.
- {string} params.address - Address id.
import { addresses } from 'esplora-js';
...
const addressTxsChain = await addresses.getAddressTxsChain({
address: '15e10745f15593a...'
});
console.log(addressTxsChain);
Get Address Txs Mempool
Get unconfirmed transaction history for the specified address/scripthash.
Parameters:
- {Object} params - Params object.
import { addresses } from 'esplora-js';
...
const addressTxsMempool = await addresses.getAddressTxsMempool({
address: '15e10745f15593a...'
});
console.log(addressTxsMempool);
Get Address Txs Utxo
Get the list of unspent transaction outputs associated with the address/scripthash.
Parameters:
- {Object} params - Params object.
- {string} params.address - Address id.
import { addresses } from 'esplora-js';
...
const addressTxsUtxo = await addresses.getAddressTxsUtxo({
address: '15e10745f15593a...'
});
console.log(addressTxsUtxo);
Get Asset (Liquid Only)
Get information about an asset.
Parameters:
- {Object} params - Params object.
- {string} params.asset_id - Asset id.
import { assets } from 'esplora-js';
...
const asset = await assets.getAsset({
asset_id: '6f0279e9ed04...'
});
console.log(asset);
Get Asset Txs (Liquid Only)
Get information about an asset txs.
Parameters:
- {Object} params - Params object.
- {string} params.asset_id - Asset id.
import { assets } from 'esplora-js';
...
const asset = await assets.getAssetTxs({
asset_id: `6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d`,
});
console.log(asset);
Get Asset Txs Mempool (Liquid Only)
Get information about an asset mempool txs.
Parameters:
- {Object} params - Params object.
- {string} params.asset_id - Asset id.
import { assets } from 'esplora-js';
...
const asset = await assets.getAssetTxsMempool({
asset_id: `6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d`,
});
console.log(asset);
Get Asset Txs Chain (Liquid Only)
Get information about an asset txs.
Parameters:
- {Object} params - Params object.
- {string} params.asset_id
- {string} params.last_seen
import { assets } from 'esplora-js';
...
const asset = await assets.getAssetTxsChain({
asset_id: `6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d`,
});
console.log(asset);
Get Asset Supply (Liquid Only)
Get the current total supply of the specified asset.
Parameters:
- {Object} params - Params object.
- {string} params.asset_id - Asset id.
import { assets } from 'esplora-js';
...
const asset = await assets.getAssetSupply({
asset_id: `6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d`,
});
console.log(asset);
Get Asset Supply Decimal (Liquid Only)
Get the current total supply of the specified asset.
Parameters:
- {Object} params - Params object.
- {string} params.asset_id - Asset id.
- {string} params.last_seen - Asset id.
import { assets } from 'esplora-js';
...
const asset = await assets.getAssetSupplyDecimal({
asset_id: `6f0279e9ed041c3d710a9f57d0c02928416460c4b722ae3457a11eec381c526d`,
});
console.log(asset);
Get Asset Registry (Liquid Only)
Get information about an asset mempool txs.
Parameters:
- {Object} params - Params object.
- {number} params.start_index
- {number} params.limit
- {string} params.sort_field
- {string} params.sort_dir
import { assets } from 'esplora-js';
...
const asset = await assets.getAssetRegistry();
console.log(asset);
Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.