Data Sources & Algorithms

Last updated: February 18, 2026

MUSD fetches exchange rate data from multiple publicly available APIs. We do not operate any intermediary data servers. All requests go directly from your device to the data provider. This page documents every data source, its provider, and how we process the data.

1. Fiat Currency Exchange Rates

The App supports 5 different data sources for fiat currency exchange rates. Users can switch between them to compare rates.

Source 1: ECB (European Central Bank)

ProviderFrankfurter API (open-source proxy for ECB data)
Endpointhttps://api.frankfurter.dev/v1/latest?base=USD
Original DataEuropean Central Bank reference rates
Update FrequencyDaily (ECB publishes around 16:00 CET on business days)
Currencies~30 major currencies
LicenseOpen source, free for commercial use
Data SentNone (GET request only)

ECB rates are reference rates, not transaction rates. They represent the average of buy/sell rates from major European banks.

Source 2: Open Exchange Rates (BOC-compatible)

ProviderOpen ER API
Endpointhttps://open.er-api.com/v6/latest/USD
Update FrequencyApproximately every 24 hours
Currencies150+ currencies
LicenseFree tier, public API
Data SentNone (GET request only)

Source 3: ExchangeRate-API (XE-compatible)

ProviderExchangeRate-API
Endpointhttps://api.exchangerate-api.com/v4/latest/USD
Update FrequencyApproximately every 24 hours
Currencies160+ currencies
LicenseFree tier, public API
Data SentNone (GET request only)

Source 4: Wise-compatible Rates

ProviderCommunity-maintained currency data via jsDelivr CDN
Endpointhttps://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/usd.json
Update FrequencyDaily
Currencies150+ currencies
LicenseOpen source (MIT)
Data SentNone (GET request only)

Source 5: Fawaz Ahmed Currency API

ProviderFawaz Ahmed (open-source)
Endpointhttps://latest.currency-api.pages.dev/v1/currencies/usd.json
Update FrequencyDaily
LicenseOpen source (MIT)
Data SentNone (GET request only)

2. Cryptocurrency Prices

REST API: CoinGecko

ProviderCoinGecko (coingecko.com)
Endpointhttps://api.coingecko.com/api/v3/simple/price
Supported CoinsBitcoin (BTC), Ethereum (ETH), Tether (USDT), BNB, Solana (SOL), XRP, Dogecoin (DOGE), Cardano (ADA)
Data ReturnedUSD price, 24h price change percentage
Update FrequencyOn-demand (user-initiated refresh)
LicenseFree tier, public API with rate limits
Data SentCoin IDs and currency parameters only (no user data)

WebSocket: Real-time Market Data

ProviderBinance public market data stream
Endpointwss://stream.binance.com:9443/ws
ProtocolWebSocket (persistent connection for real-time updates)
Data SubscribedMini ticker streams for supported trading pairs
Update FrequencyReal-time (approximately every 1-3 seconds)
LicensePublic API, free for market data consumption
Data SentSubscription message with trading pair names only (no user data)

The WebSocket connection is established only while the cryptocurrency tab is active and is disconnected when the user navigates away.

3. Conversion Algorithm

Currency conversion uses a straightforward mathematical formula:

Target Amount = Source Amount × (Target Rate / Source Rate)

All rates are normalized to a USD base. For example, to convert EUR to JPY:

  1. Get EUR/USD rate (e.g., 1 EUR = 1.08 USD)
  2. Get JPY/USD rate (e.g., 1 USD = 155.50 JPY)
  3. Calculate: EUR amount × 1.08 × 155.50 = JPY amount

4. Service Fee Calculation Algorithm

The service fee calculator supports three modes:

Percentage mode:
Service Fee = Source Amount × (Fee Rate / 100)

Fixed amount mode:
Service Fee = Fixed Amount (constant regardless of transaction size)

Pip/Spread mode:
Agent Rate = Market Rate ± Spread
Service Fee = |Market Amount - Agent Amount|

This is a pure mathematical calculation tool. It does not connect to any external services and performs all calculations locally on your device.

5. Data Caching

Data TypeCache DurationStorage
Fiat exchange rates10 minutesIn-memory only (cleared on app restart)
Crypto prices (REST)60 secondsIn-memory only
Crypto prices (WebSocket)No cache (real-time)In-memory only

6. Important Limitations

Privacy & Data Notice

All API requests are read-only and contain no personal information, device identifiers, or tracking data. We do not operate any proxy servers — data flows directly between your device and the data provider. See our Privacy Policy for full details.