MCPcopy Index your code
hub / github.com/coinconvert/crypto-convert

github.com/coinconvert/crypto-convert @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
78 symbols 129 edges 10 files 19 documented · 24%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Crypto-Convert

npm npm

Convert crypto to fiat and vice-versa instantly.

  • Top 100+ Cryptocurrencies Supported
  • 20+ fiats Supported
  • Instantly convert, no slow promises.
  • Cross-compatible on Node.js & Browser
  • Price & Ticker information updated on a configurable interval from multiple secure sources (Binance, Bitfinex, Coinbase, Kraken)
  • Any pair can be converted, be it Crypto -> Crypto or Fiat -> Crypto.

HTTP API

Free public API

https://api.coinconvert.net/convert/btc/usd?amount=1

Installation

npm i crypto-convert

Import

import CryptoConvert from 'crypto-convert';

Or with require, import it like this to get TypeScript:

const CryptoConvert = require("crypto-convert").default;

CDN For Browsers

<script src='https://coinconvert.net/assets/js/crypto-convert.min.js'></script>

Usage

const convert = new CryptoConvert(/*options?*/);

(async function(){

    await convert.ready(); //Wait for the initial cache to load

    convert.BTC.USD(1);
    convert.ETH.JPY(255);
    convert.LINK.LTC(5);
    convert.USD.CRO(100.1256);

    //... convert any pair
    // prices are automatically updated on background

})();

Note: You should only initialize the CryptoConvert class once. It's recommend to make a seperate file for it.

Configuration

Here are some of the options you can specify on initialization:

new CryptoConvert({
    cryptoInterval: 5000, //Crypto prices update interval in ms (default 5 seconds on Node.js & 15 seconds on Browsers)
    fiatInterval: (60 * 1e3 * 60), //Fiat prices update interval (default every 1 hour)
    calculateAverage: true, //Calculate the average crypto price from exchanges
    binance: true, //Use binance rates
    bitfinex: true, //Use bitfinex rates
    coinbase: true, //Use coinbase rates
    kraken: true, //Use kraken rates
    onUpdate: (tickers, isFiatUpdate?)=> any //Callback on every crypto update
    HTTPAgent: null //HTTP Agent for server-side proxies (Node.js only)
});

Other Parameters

Get crypto prices last updated timestamp (ms)

console.log(convert.lastUpdated)
// Prints:
// 1664657163857

Get the list supported currencies

console.log(convert.list);
// Prints:
// {
//      crypto: ['BTC','ETH', ... + 148 more],
//      fiats: ['USD', 'EUR', ... + 25 more]    
// }

Get cryptocurrencies metadata (title/symbol/logo/rank)

console.log(convert.cryptoInfo);

// Prints:
// {
//      BTC: {
//          "id": 1,
//          "title": "Bitcoin",
//          "symbol": "BTC",
//          "logo": "[logo_url]",
//          "rank": 1
//      }
//      ETH: {
//          ...
//      }
//      ... +148 more
// }

Custom Plug-ins

In cases when you want to support a custom currency you can do so like this:

convert.addCurrency(
    'ANYCURRENCY',  //Your custom currency symbol here
    'USD', //The quote fiat price. Must be a supported fiat currency.
    async ()=>{
        //...call your api here
        return price;
    }, 
    5000 //Update interval in ms
);

Adding custom plugins is useful for supporting more fiats, precious metals, or anything that can be exchanged.

For removing custom currencies:

convert.removeCurrency('ANYCURRENCY');

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 41
Interface 22
Class 8
Function 7

Languages

TypeScript100%

Modules by API surface

src/api.d.ts23 symbols
src/index.ts22 symbols
src/worker.ts19 symbols
src/custom.ts6 symbols
src/helpers.ts5 symbols
src/api.ts2 symbols
src/paris.ts1 symbols

For agents

$ claude mcp add crypto-convert \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page