$ npm install @tetherto/wdk-pricing-bitfinex-httpNote: This package is in beta. Please test in a dev setup first.
HTTP client for prices from Bitfinex, it uses Bitfinex Public HTTP API to obtain the current price & historical data for given ticker.
It works as a PricingClient for @tetherto/wdk-pricing-provider.
This module is part of the WDK (Wallet Development Kit) project. Learn more at https://docs.wallet.tether.io.
npm install @tetherto/wdk-pricing-bitfinex-http
import { BitfinexPricingClient } from "@tetherto/wdk-pricing-bitfinex-http";
// Create the client
const client = new BitfinexPricingClient();
// Get latest price
const current = await client.getCurrentPrice("BTC", "USD");
// Get historical prices
const history = await client.getHistoricalPrice("BTC", "USD", {
start: 1709906400000, // optional
end: 1709913600000, // optional
});
Simple HTTP pricing client for Bitfinex.
new BitfinexPricingClient(options?)
Parameters:
options (optional): future use| Method | Description | Returns |
|---|---|---|
getCurrentPrice(base, quote) | Get latest price | Promise<number | null> |
getMultiCurrentPrices(pairs) | Get latest prices in a batch | Promise<Array<number | null>> |
getMultiPriceData(pairs) | Get last price + 24h change batch | Promise<Array<PriceData | null>> |
getHistoricalPrice(from, to, opts?) | Get price history | Promise<Array<any>> |
getCurrentPrice(base, quote)Uses the Bitfinex /calc/fx/batch endpoint. If Bitfinex cannot quote the pair
directly (typically a fiat currency it does not list), it falls back to a
two-leg conversion through USD: base → USD → quote. Returns null if the
pair cannot be resolved even through the pivot.
const price = await client.getCurrentPrice("BTC", "USD");
const brl = await client.getCurrentPrice("BTC", "BRL"); // resolved via USD pivot
getMultiCurrentPrices(pairs)Resolves many pairs in a single batch request, applying the same USD-pivot
fallback per pair. Results are returned in the same order as the input; a pair
that cannot be resolved even through the pivot is null.
const prices = await client.getMultiCurrentPrices([
{ from: "BTC", to: "USD" },
{ from: "ETH", to: "BRL" },
]);
getMultiPriceData(pairs)Returns the last price plus 24h absolute and relative change for each pair, from
the Bitfinex /tickers endpoint. Unlike the methods above, it does not use
the USD pivot, so a currency Bitfinex does not quote directly resolves to
null. Results are returned in the same order as the input.
const data = await client.getMultiPriceData([{ from: "BTC", to: "USD" }]);
// [{ lastPrice, dailyChange, dailyChangeRelative }]
getHistoricalPrice(from, to, opts?)If the list is longer than 100 points, it is downscaled by 2x steps until <= 100.
const series = await client.getHistoricalPrice("BTC", "USD");
UST (not
USDT), and some fiats are only available as tokenized assets such as CNHT
or MXNT. Unknown codes resolve to null. The full list is at
https://api-pub.bitfinex.com/v2/conf/pub:list:currency.getCurrentPrice and
getMultiCurrentPrices fall back to a from → USD → to conversion for fiat
Bitfinex does not quote directly. getHistoricalPrice does not — it
returns an empty array for such pairs (Bitfinex has no historical FX series
for them).getMultiPriceData does not support pivot currencies. It sources last
price and daily change from /tickers, which only exists for natively quoted
pairs. For a currency that requires the USD pivot (e.g. BRL, ARS) it returns
null for that entry.npm install
npm run lint
npm test
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
For support, please open an issue on the GitHub repository.