Free · Public · JSON · Every 20 seconds

Live crypto to naira rates. Free for anyone to build on.

The same feed Monica's own rate pages read: seven coins, the naira rate Monica pays, the deposit fee and seven days of history in one JSON document. No key, no sign up.

GEThttps://monica.cash/live/rates
7 coinsNGN only20s cache7 day history$0 to use
LIVEjust nownext refresh in 20s
BTC₦110.03M
ETH₦3.18M
USDT₦1,370
USDC₦1,370
SOL₦137,456
BNB₦1.01M
TRX₦449.01
What comes back

One document, everything you need to quote naira.

Every call returns the full picture for all seven coins. coins.BTC.ngn is the naira per one coin before any fee, which is simply the dollar price usd times the naira rate fx, so you can show either side.

fee_usd and fee_ngn carry the deposit fee Monica charges on that coin: $2 on Bitcoin, nothing on the other six. daily_7d holds eight timestamped naira points covering the last seven days, ready for a sparkline.

Three flags tell you how much to trust what you are holding: ok, stale and ttl, the number of seconds to keep the document before asking again.

GET /live/rates · 200 · application/json
updated_at 2026-10-25T10:24:40Z
Seven coins, live

Rendered straight from the feed.

Nothing below is hard coded. The page calls the endpoint when it loads and again every twenty seconds, exactly as your app would.

BitcoinBTC · $2 deposit fee
-1.34%7 days ₦110,031,550
EthereumETH · free deposit
-3.04%7 days ₦3,176,846
TetherUSDT · free deposit
+0.00%7 days ₦1,370
USD CoinUSDC · free deposit
+0.00%7 days ₦1,370
SolanaSOL · free deposit
-2.58%7 days ₦137,456
BNBBNB · free deposit
+2.87%7 days ₦1,007,397
TronTRX · free deposit
-1.34%7 days ₦449.01
The quote rule

How the naira figure is worked out.

The document carries its own formula in quote_rule. It is the rule the Monica wallet credits with: take the dollar value of the amount, subtract the deposit fee, convert at the naira rate.

ngn = max(0, amount × usd − fee_usd) × fx

At the rates on this page, 100 USDT becomes ₦137,000, and 0.01 BTC, after the $2 deposit fee, becomes ₦1,097,576. This feed is for display and planning: the binding rate on a conversion is the one shown in the Monica app, or returned by the off ramp API, at the moment the network confirms the deposit.BTC $80,315 · ₦1,370/$ · $2 deposit fee

Use it

Four lines, any language.

Plain HTTPS, plain JSON, and the feed answers browsers directly. Call it from your server, a script, a spreadsheet tool or the page itself.

curl -s https://monica.cash/live/rates \
  | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['coins']['BTC']['ngn'])"
const r = await fetch('https://monica.cash/live/rates');
const { coins, ttl } = await r.json();
console.log(coins.USDT.ngn);   // naira per 1 USDT
// refresh no sooner than ttl seconds (20)
import requests
d = requests.get('https://monica.cash/live/rates', timeout=10).json()
if d['ok'] and not d['stale']:
    print(d['coins']['BTC']['ngn'])   # naira per 1 BTC
$d = json_decode(file_get_contents('https://monica.cash/live/rates'), true);
echo $d['coins']['SOL']['ngn'];   // naira per 1 SOL

Respect the ttl. Each response says how long it stays fresh, currently 20 seconds. Cache it and poll no faster; the edge caches it for the same time anyway. Check ok and stale. Show a rate only when ok is true, and when stale is true label the figure as older than normal. Mind the fee. ngn is the rate before the deposit fee; for what a user would receive, apply the quote rule with their amount.

Reference

Every field in the document.

Keys are stable. New keys may be added; existing ones will not change meaning without notice on this page.

FieldTypeMeaning
okbooleantrue when the feed answered normally. Treat anything else as "do not use".
currencystringAlways "NGN". Every ngn figure on the document is Nigerian naira.
updated_atISO 8601When the prices were last refreshed, in UTC.
age_sintegerSeconds since updated_at at the time the response was built.
stalebooleantrue when the upstream prices could not be refreshed and the figures are older than normal.
ttlintegerHow many seconds this response stays fresh. Cache it for that long and poll no faster.
quote_rulestringThe formula the Monica wallet credits with: ngn = max(0, amount × usd − fee_usd) × fx.
coins.{T}.namestringCoin name. T is one of BTC, ETH, USDT, USDC, SOL, BNB, TRX.
coins.{T}.usdnumberPrice of one coin in US dollars.
coins.{T}.fxnumberNaira per US dollar used for this coin.
coins.{T}.ngnnumberNaira per one coin before any fee (usd × fx).
coins.{T}.fee_usdnumberDeposit fee in dollars. $2 on Bitcoin, 0 on the other six coins.
coins.{T}.fee_ngnnumberThe same deposit fee in naira at the current fx.
coins.{T}.daily_7darrayEight points of [unix timestamp, ngn] covering the last seven days, oldest first, the last point is now.
Terms

Free, with three asks.

It is free. No key, no sign up, no invoice. Use it in apps, dashboards, bots, spreadsheets or articles. Be reasonable with how often you call it and we will keep it open.

Say where the numbers come from. When you show the rates, credit them as "Rates by Monica" with a link to monica.cash. That is all we ask in return.

Indicative, not a promise. The figures are for display and planning. Availability and format can change; the ok and stale flags tell you when not to rely on a value. Nothing here is investment advice.

Need the settlement, not just the rate?

The off ramp API issues deposit wallets to your users and settles naira to your corporate account within 60 seconds of the network confirming, with the rate locked at confirmation.

Get the app

Scan with your phone camera.

Point your camera at the code and tap the link that pops up. It takes you to the right store for your phone.

Free on iOS and Android

monica.cash/app