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.
Requires iOS 18.6 or later · iPhone
Four tabs. No onboarding flow, no sign-up wall, no pop-up asking you to rate it.
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.
Below the conversion card, see your amount converted into every currency you follow — side by side, no re-typing, no switching screens.
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.
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.
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.
No account, no login, no analytics, no advertising SDK. Your favourites and settings are stored on the device. That's the whole privacy model.
Every screen below is the real thing, running on iPhone.
Amount in, result out. Live rate, source label and timestamp are always visible.
30-day chart with high, low, average, range average and volatility.
Add, remove, reorder and pick the base currency everything converts from.
Data source, refresh frequency, rounding mode, decimal places, separators.
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.
| Source | Used for | Coverage | History |
|---|---|---|---|
| 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 |
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.
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.
A converter is only as good as its arithmetic. A few deliberate choices:
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.
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.
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.
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.
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.
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.
Each one has a full localised name, and you can search by name or by code.
This End User License Agreement ("Agreement") is a binding legal agreement between you ("you", "your") and the developer of CoinExchange ("we", "us", "our") governing your use of the CoinExchange mobile application (the "App").
By downloading, installing or using the App, you confirm that you have read, understood and agree to be bound by this Agreement. If you do not agree, do not download, install or use the App, and delete any copy you may already have.
Subject to your ongoing compliance with this Agreement and with the terms of the Apple Media Services Terms and Conditions, we grant you a limited, personal, non-exclusive, non-transferable, revocable license to download, install and use the App on any Apple-branded device that you own or control, solely for your own personal, non-commercial purposes.
This license does not permit you to:
All rights not expressly granted to you are reserved.
The App is a currency conversion tool. It retrieves exchange rate data from independent third-party providers over the internet, performs arithmetic conversions locally on your device, and displays the results together with information about how recently the rates were obtained.
The App does not execute, broker, settle or facilitate any currency exchange, money transfer, payment or other financial transaction of any kind. It is an information tool only.
The App does not provide financial, investment, legal, accounting or tax advice. Nothing displayed in the App constitutes a recommendation, offer, solicitation or endorsement to buy, sell, hold or exchange any currency, or to enter into any transaction.
You are solely responsible for any decision you make or action you take on the basis of information shown in the App. Before entering into any transaction involving currency, you should obtain a firm quotation from a licensed financial institution and, where appropriate, seek independent professional advice.
Rates shown in the App are mid-market reference rates — approximately the midpoint between wholesale buy and sell prices at the time the data was published by the source. They:
We obtain rate data from third parties and do not generate, verify, warrant or guarantee it. Where the App cannot obtain fresh data it will display cached or built-in values and label them accordingly. You agree not to rely on the App for any purpose where an incorrect or delayed rate could cause you loss, including but not limited to trading, settlement, accounting, invoicing, tax filing or contractual pricing.
You agree to:
Rate data is retrieved from third-party services that we do not operate or control, currently including:
Your use of the App necessarily involves network requests to these services. Their availability, accuracy and privacy practices are governed by their own terms, not ours. We may change, add or remove data sources at any time without notice. Continued attribution does not imply endorsement by, or affiliation with, those providers.
The App requires no account and collects no personal information from us. All of your settings, favourite currencies and cached rate data are stored locally on your device. Deleting the App permanently removes that data. Full details are set out in our Privacy Policy, which forms part of this Agreement.
You may not:
The App — including its source code, design, visual identity, icon, layout, text and the selection and arrangement of its contents — is owned by us and is protected by copyright, trademark and other intellectual property laws. "CoinExchange" and the CoinExchange logo are our trademarks. Nothing in this Agreement transfers any ownership to you.
Currency names, currency codes (ISO 4217) and underlying rate data are the property of their respective owners or are in the public domain.
The App is provided "as is" and "as available", without warranty of any kind. To the maximum extent permitted by applicable law, we disclaim all warranties, whether express, implied or statutory, including any implied warranty of merchantability, fitness for a particular purpose, accuracy, quiet enjoyment and non-infringement. We do not warrant that the App will be uninterrupted, secure or error-free, that any rate will be current or correct, or that any defect will be corrected.
To the maximum extent permitted by applicable law, in no event shall we be liable for any indirect, incidental, special, consequential, exemplary or punitive damages, or for any loss of profits, revenue, data, goodwill or anticipated savings, arising out of or in connection with your use of, or inability to use, the App — including any loss alleged to result from reliance on a displayed exchange rate — regardless of the theory of liability and even if we have been advised of the possibility of such damages.
Our total aggregate liability arising out of or relating to this Agreement or the App shall not exceed the greater of (a) the amount you paid for the App, if any, or (b) one hundred United States dollars (USD 100). Some jurisdictions do not permit the exclusion or limitation of certain damages; in those jurisdictions our liability is limited to the greatest extent permitted by law.
You agree to indemnify and hold us harmless from any claim, demand, loss, liability, cost or expense (including reasonable legal fees) arising out of your use of the App, your breach of this Agreement, or your violation of any law or the rights of a third party.
This Agreement is effective until terminated. Your rights under it terminate automatically, without notice, if you breach any of its terms. You may terminate it at any time by deleting the App from all of your devices. Sections 4, 5, 10, 11, 12, 13 and 16 survive termination.
We may amend this Agreement from time to time. When we do, we will update the "Last updated" date on this page. Your continued use of the App after a change takes effect constitutes acceptance of the revised Agreement. Where a change is material, we will make reasonable efforts to give notice within the App.
This Agreement is governed by and construed in accordance with the laws of the jurisdiction in which the developer is established, without regard to its conflict-of-laws principles. Nothing in this Agreement limits any right you may have under the mandatory consumer protection law of your country of residence.
This Agreement is between you and us only, and not with Apple Inc. ("Apple"). Apple is not responsible for the App or its content. Apple has no obligation whatsoever to furnish any maintenance or support services with respect to the App. In the event of any failure of the App to conform to any applicable warranty, you may notify Apple and Apple will refund the purchase price, if any; to the maximum extent permitted by law, Apple has no other warranty obligation with respect to the App.
Apple is a third-party beneficiary of this Agreement and, upon your acceptance, has the right to enforce it against you. You represent and warrant that (a) you are not located in a country subject to a United States Government embargo or designated as a "terrorist supporting" country, and (b) you are not listed on any United States Government list of prohibited or restricted parties.
If you have any question about this Agreement, contact us at support@example.com.
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.
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.
| Category | What happens |
|---|---|
| Personal information | Not collected. We have nowhere to store it — the App has no server component. |
| Account or identity | None. There is no sign-up, no login, no user ID. |
| Usage analytics | None. No events, no screens, no session recording, no crash reporting. |
| Advertising identifiers | Never accessed. No advertising framework is linked into the App. |
| Location | Never requested, never used, never inferred from IP. |
| Contacts, photos, camera, microphone, health, calendar | Not requested, not accessed. |
| Amounts you type | Processed only on your device. Never transmitted. |
| Network | HTTPS requests to two public exchange-rate endpoints only. |
Because the App has no server side, we cannot and do not collect, receive, store or process:
The following is written to the App's local storage on your device, using the standard on-device preferences facility provided by iOS:
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.
The App makes outbound network requests for exactly one purpose: obtaining exchange rates. Requests are made over HTTPS to:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
If you have any question about this Privacy Policy or about how the App handles data, contact us at support@example.com.