https://github.com/exodusmovement/prices
JavaScript module to get historical prices for cryptocurrencies / blockchain assets.
https://github.com/exodusmovement/prices
Last synced: about 1 year ago
JSON representation
JavaScript module to get historical prices for cryptocurrencies / blockchain assets.
- Host: GitHub
- URL: https://github.com/exodusmovement/prices
- Owner: ExodusMovement
- License: mit
- Created: 2018-06-07T20:29:47.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-26T02:42:05.000Z (over 3 years ago)
- Last Synced: 2025-03-21T00:33:08.421Z (about 1 year ago)
- Language: JavaScript
- Size: 161 KB
- Stars: 4
- Watchers: 30
- Forks: 9
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
Historical Cryptocurrency Prices
=====================
[![npm][npm-image]][npm-url]
[![travis][travis-image]][travis-url]
[![standard][standard-image]][standard-url]
[npm-image]: https://img.shields.io/npm/v/@exodus/prices.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/@exodus/prices
[travis-image]: https://img.shields.io/travis/ExodusMovement/prices.svg?style=flat-square
[travis-url]: https://travis-ci.org/ExodusMovement/prices
[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square
[standard-url]: http://npm.im/standard
You can use this JavaScript module to get historical prices for cryptocurrencies / blockchain assets.
Install
-------
npm i --save @exodus/prices
Usage
-----
### Methods
### `fetchPrice()`
*parameters:*
- `fromSym`: ``: An asset or fiat string symbol.
- `toSym`: ``: An asset or fiat string symbol.
- `date`: ``: An instance of `Date` representing some date in the past.
*Example:*
```js
global.fetch = require('node-fetch') // not necessary in the browser
const { fetchPrice } = require('@exodus/prices')
const t1 = new Date('2017-01-10 12:25 CST')
const btcPrice = await fetchPrice('BTC', 'USD', t1)
console.log(btcPrice.toFixed(2)) // => 903.30
const ethPrice = await fetchPrice('ETH', 'USD', t1)
console.log(ethPrice.toFixed(2)) // => 10.47
```
### Notes
1. Requires `global.fetch`
this depends on [`fetch()`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch) being defined globally.
- If you are using this in Electron, it should work without any configuration assuming it's running in the renderer process.
- If you are using this in Node.js, you will need to use [`node-fetch`](https://www.npmjs.com/package/node-fetch).
2. This depends upon the [cryptocompare](https://github.com/ExodusMovement/cryptocompare) API.
3. Granularity is only limited to daily. Thus, anytime in the day uses a simple linear interpolation between the open and close prices.
4. Occasionally cryptocompare's historical data changes. See https://github.com/ExodusMovement/audit-pricing/commit/2f9cc8cb61eb2e38983c3fee704943d67c6a9ef5 as an example.
Work With Exodus?
-----------------
If cryptocurrencies are interesting to you and you want to help solve some insanely challenging computer science problems, maybe you'd like to work at Exodus? Reach out and apply here: https://www.exodus.io/careers/
License
-------
[MIT](LICENSE.md)