CoinExchange app icon Currency Converter for iPhone

Know exactly what your money is worth.

CoinExchange converts between 32 currencies using live mid-market rates, shows you a 30-day trend before you commit, and keeps working when you have no signal.

32 currencies Live mid-market rates 30-day trend charts Works offline No account No tracking

Requires iOS 18.6 or later · iPhone

CoinExchange conversion screen
Features

Everything you need, nothing you don't.

Four tabs. No onboarding flow, no sign-up wall, no pop-up asking you to rate it.

Swap in one tap

Pick a source and target currency, type an amount, and read the result instantly. The swap button flips the pair without clearing what you typed.

Compare several at once

Below the conversion card, see your amount converted into every currency you follow — side by side, no re-typing, no switching screens.

30-day trend

Open any pair to see how the rate moved over the last month, plus the period high, low, average and volatility — so you can tell a good day from a bad one.

Your shortlist

Keep the currencies you actually care about in one list, drag them into the order you like, and set a base currency that everything is measured against.

Keeps working offline

No signal? The app falls back to the last rates it cached, then to a rate table built into the app. Whenever it is offline, the screen says so and shows the age of the data.

Nothing leaves your phone

No account, no login, no analytics, no advertising SDK. Your favourites and settings are stored on the device. That's the whole privacy model.

The app

Four screens, four jobs.

Every screen below is the real thing, running on iPhone.

Convert screen
Convert

The main event

Amount in, result out. Live rate, source label and timestamp are always visible.

Rate details screen
Rate details

Trend & stats

30-day chart with high, low, average, range average and volatility.

My currencies screen
My currencies

Your shortlist

Add, remove, reorder and pick the base currency everything converts from.

Settings screen
Settings

Make it yours

Data source, refresh frequency, rounding mode, decimal places, separators.

Rates & accuracy

Where the numbers come from.

CoinExchange does not publish its own rates. It fetches them from two independent public sources and always tells you which one is currently in use.

SourceUsed forCoverageHistory
ExchangeRate-API
open.er-api.com
Live rates (default source) 166 currencies — covers all 32 in the app No
European Central Bank
via api.frankfurter.dev
Live rates (fallback) and all historical series About 30 major currencies Yes — real daily series
Built-in rate table Last resort when there is no network and no cache All 32 currencies No — clearly labelled
!

We label the data honestly

The trend chart is marked Actual when it is built from real historical rates, and Sample when it is not. When the app has no connection, the screen reads Offline · Data as of … with the exact time the rates were fetched. Stale numbers are never presented as fresh.

!

What these rates are — and are not

These are mid-market reference rates: the midpoint between buy and sell on the wholesale market. They are not the rate your bank, card network or exchange counter will give you, and they do not include any spread, commission or fee. Use them to understand an amount, not to settle a transaction. See section 4 of the User Agreement.

3
Tier fallback chain
8s
Per-source timeout
25%
Single-currency swing that triggers a dirty-data check
8
Decimal places kept for cross rates
Under the hood

Built for a calculator you can trust.

A converter is only as good as its arithmetic. A few deliberate choices:

Decimal arithmetic, not floating point

Amounts and rates are handled as Decimal end to end, never Double. Rate values arriving from the network are rounded to six places and stored as decimal strings, so precision is not lost in transit. Cross rates are computed to eight fixed decimal places.

Rounding you control

Four rounding modes — half up, half to even, down, up — and a configurable number of intermediate decimal places (2, 3, 4, 5, 6 or 8; the default is 5). The number you see is formatted according to each currency's own convention: no decimals for JPY, KRW, VND or IDR, two for everything else, with an optional thousands separator.

A guard against bad data

If more than three currencies move by over 25% in a single refresh, the response is treated as corrupt and the previous good table is kept. A broken upstream feed produces an error state, never a wrong number presented as a right one.

One base table, not N×N

The app stores a single rate table keyed to one base currency and derives every pair from it. That keeps the payload small, the cache simple, and offline conversion possible for any pair that has been fetched once.

Accessibility, by default

Every interactive control carries a VoiceOver label, hint and trait. Text respects Dynamic Type, and the entire interface is built from semantic colours — 31 of them — so Dark Mode is a first-class appearance rather than an afterthought.

No third-party code

Zero external SDKs. No analytics, no crash reporter, no attribution framework, no advertising identifier. Networking is HTTPS only against the two rate endpoints named above.

Coverage

32 currencies.

Each one has a full localised name, and you can search by name or by code.

AEDUAE Dirham AUDAustralian Dollar BRLBrazilian Real CADCanadian Dollar CHFSwiss Franc CNYChinese Yuan CZKCzech Koruna DKKDanish Krone EUREuro GBPBritish Pound HKDHong Kong Dollar HUFHungarian Forint IDRIndonesian Rupiah INRIndian Rupee JPYJapanese Yen KRWSouth Korean Won MXNMexican Peso MYRMalaysian Ringgit NOKNorwegian Krone NZDNew Zealand Dollar PHPPhilippine Peso PLNPolish Zloty RUBRussian Ruble SARSaudi Riyal SEKSwedish Krona SGDSingapore Dollar THBThai Baht TRYTurkish Lira TWDNew Taiwan Dollar USDUS Dollar VNDVietnamese Dong ZARSouth African Rand
Legal

Privacy Policy

Last updated: 3 September 2026 · Applies to CoinExchange for iOS, version 1.0

The short version: we collect nothing. CoinExchange has no account, no sign-in, no analytics, no advertising and no third-party tracking code. Your favourites, settings and cached rates stay on your phone. The only network traffic the App generates is a request for exchange rates.

1. Summary

This Privacy Policy explains how the CoinExchange mobile application ("App") handles information. We have designed the App so that it can do its entire job without knowing who you are.

CategoryWhat happens
Personal informationNot collected. We have nowhere to store it — the App has no server component.
Account or identityNone. There is no sign-up, no login, no user ID.
Usage analyticsNone. No events, no screens, no session recording, no crash reporting.
Advertising identifiersNever accessed. No advertising framework is linked into the App.
LocationNever requested, never used, never inferred from IP.
Contacts, photos, camera, microphone, health, calendarNot requested, not accessed.
Amounts you typeProcessed only on your device. Never transmitted.
NetworkHTTPS requests to two public exchange-rate endpoints only.

2. Information We Do Not Collect

Because the App has no server side, we cannot and do not collect, receive, store or process:

  • your name, email address, phone number or any other identifier;
  • any account credentials, because there are none;
  • the amounts you enter or the currency pairs you convert;
  • your favourites, base currency or any other preference you set;
  • your device identifier, advertising identifier or IP address;
  • your location, coarse or precise;
  • any analytics, telemetry, crash log or performance measurement;
  • any file, photo, contact, calendar entry or health data.

3. What Is Stored on Your Device

The following is written to the App's local storage on your device, using the standard on-device preferences facility provided by iOS:

  • your list of favourite currencies and their order;
  • your chosen base currency;
  • your settings: preferred rate source, refresh frequency, rounding mode, number of decimal places, and whether to show thousands separators;
  • the most recently fetched rate table and its timestamp, used so the App can work offline and tell you how old the data is;
  • recently retrieved historical rate series, used to redraw a trend chart without refetching.

This data never leaves your device through us. It is included in your normal device backups (iCloud or computer backup), which are governed by your own Apple ID settings and Apple's privacy policy, not ours.

4. Network Requests

The App makes outbound network requests for exactly one purpose: obtaining exchange rates. Requests are made over HTTPS to:

  • ExchangeRate-API — https://open.er-api.com
  • Frankfurter (publishing European Central Bank data) — https://api.frankfurter.dev

These requests contain the base currency code and, for historical series, a date range and up to two currency codes. They do not contain any amount you typed, any identifier belonging to you, or any advertising identifier.

Like any HTTPS request on the internet, these requests necessarily reveal your IP address to the receiving service and to the networks in between. Those providers may log it under their own policies, which we do not control. We recommend reading their policies if this matters to you. We receive no such log.

5. No Tracking, No Analytics, No Advertising

The App contains no analytics framework, no attribution or campaign-measurement code, no session recording, no heat-mapping, no A/B testing infrastructure, no crash-reporting SDK and no advertising network. There is no cross-app or cross-website tracking of any kind, and therefore nothing for you to opt out of.

6. No Third-Party SDKs

The App links no third-party libraries or frameworks beyond those supplied by the operating system itself. There is consequently no third-party code that could collect data on our behalf.

7. No Sale or Sharing of Data

We do not sell, rent, trade, share or otherwise disclose personal information, because we hold none. We have never sold or shared personal information and we have no mechanism by which we could.

8. Permissions We Do Not Request

The App requests no system permissions. It does not ask for Location Services, Camera, Photo Library, Microphone, Contacts, Calendar, Reminders, Motion & Fitness, Health, Bluetooth, Local Network, or permission to send you notifications. If a permission prompt ever appears in connection with this App, it is not from us.

9. Children's Privacy

The App is a general-audience utility and is not directed at children. Because we collect no personal information from anyone, we knowingly collect none from children under 13 (or the equivalent age in your jurisdiction). If you believe a child has provided information to us, please contact us — though as we operate no server, we would have no record of it.

10. Data Retention

We retain nothing, because we hold nothing. On your device, cached rate data and historical series are refreshed or discarded as new data is fetched. You can clear everything immediately by deleting the App.

11. Security

Stored preferences and cached rates are kept in the App's own sandbox, which iOS isolates from other apps. All network traffic uses HTTPS. However, no system is perfectly secure, and the practical security of data on your device depends on your own device passcode and system-level protections, which are outside our control.

12. Your Choices and Controls

  • Delete everything. Delete the App from your device. All locally stored preferences and cached rates are removed with it.
  • Stop network requests. Put your device in Airplane Mode or restrict cellular data for the App. It will continue to convert using cached and built-in rates, and will clearly label the data as offline.
  • Control backups. Whether locally stored data is copied into iCloud or a computer backup is controlled by your own device backup settings.
  • No account to close. There is nothing to unsubscribe from and no profile to request a copy of.

13. International Users

The App is operated without a server, and we do not transfer personal information across borders, because we hold none. Rate providers may process requests in their own jurisdictions under their own policies.

14. Changes to This Policy

We may update this Privacy Policy from time to time. We will revise the "Last updated" date at the top of this page and, where a change is material, make reasonable efforts to notify you within the App. If a future version of the App begins collecting any information, this policy will be updated before that version is released.

15. Contact

If you have any question about this Privacy Policy or about how the App handles data, contact us at support@example.com.