Stacksmith privacy policy
Last updated: 3 October 2026
Stacksmith is a Magic: The Gathering card scanner and collection tracker. It has no accounts and no server of its own. This page explains what the app keeps on your phone, what it sends over the internet, and when.
What stays on your phone
- Your collection, folders, tags, wishlist, decks, price history and settings are stored in a database on your phone. We have no server, so none of it is uploaded to us. Uninstalling the app deletes it. If your phone backs itself up (Android backup with Google, or iCloud Backup on an iPhone), the backup may include this database.
- The camera is used only to recognise cards while the Scan screen is open. Frames are analysed on the phone, including the text on the card. No photos or video are stored or sent anywhere.
- CSV export creates a file only when you ask for one, and hands it to the app you choose to share it with. Sharing your trade list or wishlist as text works the same way: the text goes only to the app you pick.
- Backup (Settings > Backup) creates a file only when you ask for one: your collection, folders, decks, tags, wishlist, price history, price alerts, what you paid, settings, the pictures on your folders, decks and custom themes, and the sound files you chose for custom chimes. It is not encrypted. The app hands it to the app you choose to share it with, and reads a backup back only when you pick one to restore.
What the app sends over the internet, and when
Every internet request carries standard connection information, such as your IP address. Beyond that, the app sends only what is listed here.
- Scryfall (scryfall.com): card data, set lists, card images, prices (TCGplayer's and Cardmarket's) and format legality. With TCGplayer Market or Cardmarket prices, day-to-day prices come from the price file on Cloudflare Pages (below), and the app asks Scryfall for prices only when you tap Refresh prices in Settings, or when that file could not be fetched for more than two days, or has not been fetched yet since you changed the price source, installed an app update with new card data or restored a backup (then it asks about the printings you own, until the file comes). With TCGplayer Low or Mid, it also asks Scryfall about each printing the first time it prices it, to find it on TCGplayer. After that it asks each day, and when you scan, add or open a card, about the printings it cannot price from TCGplayer's price lists (below). For all of this, and for the format legality of a card the weekly card facts file (below) does not have yet, when you own it or open it in a card or a deck, it sends Scryfall the IDs of the cards and printings concerned; it does not send quantities, folders or anything else about you. With Market or Cardmarket prices, scanning a card sends nothing. New card data is downloaded when you choose to: from Cloudflare Pages (below) for the sets published there, otherwise from Scryfall.
- tcgcsv.com: only if you choose TCGplayer Low or Mid prices in Settings. The app downloads TCGplayer's public price lists for the sets your cards come from, and the list for a card's set when you scan, add or open that card. The only thing this reveals is which sets' lists it asks for.
- European Central Bank (ecb.europa.eu): only if you choose to show prices in a currency other than your price source's (Settings > Show prices in, or for one session in the scan screen's options, behind its gear button). The app downloads the ECB's public daily exchange rates; nothing about you or your collection is sent.
- Commander Spellbook (commanderspellbook.com): combos.
- When you open a deck, its card names and counts are sent to show its combos and bracket.
- When you open "Combos you could build", or use the deck builder or Suggest, the names and counts of the cards in your collection are sent.
- A card's detail sheet sends that one card's name.
- Nothing is sent to Commander Spellbook until you open one of these.
- Archidekt (archidekt.com): Deck Search. The app sends the search you make (format, commander, card name, colours, bracket, deck name) and fetches the decks in your results (to show how much of each you own) and the decks you open or update, including one whose Archidekt link you paste: only the deck's number from the link is sent, and only when you open it or bring its list into one of your decks. It does not send your collection: how much of a deck you own is worked out on your phone.
- Deck sites a link points at, when you paste a deck's link into Import and tap Fetch: Scryfall (api.scryfall.com), Deckstats (deckstats.net), MTGTop8 (mtgtop8.com), Aetherhub (aetherhub.com), ManaBox (cloud.manabox.app), TCGplayer (infinite-api.tcgplayer.com) and Deckbox (deckbox.org). Only the deck's id from the link is sent, to that one site, and only when you tap Fetch; the site answers with the deck's list, which stays on your phone. Nothing is sent for a Moxfield, TappedOut or MTGGoldfish link: those decks are pasted by hand.
- The Home tab's headlines come from one public feed, chosen by the app's language: MTGGoldfish (mtggoldfish.com) in English, German and Italian; Hareruya (article.hareruyamtg.com) in Japanese; Cards Realm (mtg.cardsrealm.com) in French, Spanish and Portuguese. The request reveals your IP address and, through which feed is asked for, the app's language; nothing else is sent.
- Cloudflare Pages (stacksmith-app.pages.dev; app versions before 3 October 2026 use GitHub Pages, colinwithat-boop.github.io, for the same files): the day's card prices (every printing's TCGplayer Market and Cardmarket prices, built from Scryfall's data: a small file saying which day's prices are current, checked a few times a day, then once a day the prices that changed since the day before, about 1.5 MB, or all of them, about 3.5 MB, when your phone does not have the day before's, when you tap Refresh prices, and after you download new card data, change the price source, install an app update with new card data or restore a backup), the names of upcoming sets in the app's language (a small file, fetched when the app is not in English), every card's format legality and colours (one file of about 1 MB, fetched about once a week), the cards of new sets with what the scanner needs to recognise them (the list of those sets, a small file, fetched when a check (on the Scan tab, or Check now in Settings) finds new cards to offer, to tell you the download's size; the sets themselves when you download new card data), and card-language packs, the names (and for some languages the rules text) of cards printed in German, French, Spanish, Italian, Portuguese, Chinese, Korean or Russian. A pack is downloaded when you add that card language in Settings, or when you pick a language whose pack is not on your phone as the one to scan cards in (in Settings, or in the scan screen's language menu, behind its language button) and agree to download it, and once on its own for your phone's language (or the app's, when you set it to one of these), unless you removed it. A pack that was installed is downloaded again on its own if an app update or a restored backup leaves it missing, and opening Settings or the scan screen's language menu fetches the list of packs and their sizes. Each request reveals your IP address and which language pack, if any, is asked for; nothing else is sent.
- Reading the text on cards happens on your phone: Google ML Kit on Android, Apple's Vision on an iPhone. The camera image and the text read are not sent anywhere.
- On Android, like every app that uses ML Kit, it sends Google device information (such as the manufacturer, model and OS version), the app's name and version, a per-installation identifier, and performance and configuration details (such as how long recognition took), which Google uses for diagnostics and usage analytics. See Google's ML Kit data disclosure.
- On an iPhone, Vision is part of iOS and the app sends nothing for it.
- Links you tap (to Scryfall, TCGplayer, Cardmarket, MTGGoldfish, Hareruya, Cards Realm, Archidekt or Commander Spellbook) open in your browser. "Buy missing" puts the list of cards you are missing (from a deck, or from a set in your inventory) into the TCGplayer link it opens, and the wishlist's "Buy on TCGplayer" puts the cards on your wishlist (names and counts) into it.
- Google Play or the App Store: to process the optional one-time Pro purchase and to check whether it has been made. Google or Apple handles the payment under its own privacy policy; the app never sees your payment details.
Each of those services has its own privacy policy.
What the app does not do
- No advertising, analytics or tracking SDKs of its own.
- No account, sign-in, email or contacts access.
- No selling of data, and no sharing of data for advertising.
Children
The app is not directed at children under 13 and does not knowingly collect information from them.
Changes
If this policy changes, the date at the top will change and the new text will be published at this address.
Contact
Magic: The Gathering is copyrighted by Wizards of the Coast. Stacksmith is not produced, endorsed, supported, or affiliated with Wizards of the Coast.