Collection
Import a Moxfield or Deckbox export and ManaLotus resolves it row by row, flags every guess, and holds an ambiguous row back with its candidate printings listed in the report. What lands is yours at the copy: the exact printing, the Finish, the Condition. And everything you entered exports free and lossless on every tier.
Track up to 1,000 cards free. Nothing charges until a price is published on the pricing page.
Import report · moxfield.csv
The three states the report can put a row in. Every row you bring lands in one of them, matched or not.
Portability
Everything you entered exports free and lossless on every tier: the printing, the quantity, the condition, the finish, the language, your notes and tags, what you paid for it. The valuations computed on top of your rows are the paid column set. Every field you typed or imported comes back out whatever you are paying, and we test that round trip against the rows that break exports, the commas and quotes and newlines sitting inside your own notes.
Go past the free cap and the collection stays viewable, exportable, and removable. If it stays over, we mail a CSV of the whole thing and keep it restorable in full for 12 months. Nothing gets trimmed, and we never pick which cards survive.
Yours on the way in, yours on the way out.
Import
Drop in a Moxfield, Deckbox, or Canonical CSV export and every row walks the same ladder, strictest rung first: set code and collector number, then a set code off by a character, then a set name where a code belongs, then a card name that resolves to exactly one printing in that set.
How a row gets matched
The ladder every row walks, strictest rung first. The first rung that fits decides the row, and a row that fits none of them is held for you, never guessed.
Scale
Sorting, totals, and prices run server-side from your first card, so the page opens the same whether the shelf holds four thousand cards or four hundred thousand. Your browser paints one page of it and asks for the next. The free side of that runs to 1,000 cards, and the pricing page writes out where the line sits.
Your collection
A schematic of where the work happens. Filtering, sorting, and totals run on the server. Your browser paints one page of it.
For collectors
An owned row is one exact printing at one Finish in one Condition, so a near mint retro frame and a moderately played extended art copy of the same card sit as two rows and price apart. The card page keeps the count of how many of that card's versions you already have.
One card, several rows
A schematic of the grain a copy is stored at. Two copies of the same card in different finishes or conditions are two rows, and they price apart.
Lists
Every entry is a printing you picked, at the quantity you want, and the list nets itself against your collection: hold three of the four and it asks for one. The figure underneath is what the rest costs at those exact printings.
Smart list · a rule that keeps looking
A schematic of the two halves. A rule that stops parsing says so and keeps your pins safe. A rule that matches nothing today says that too, in its own words.
Buying
Tap the star on a printing anywhere on the site, in search, on a card page, inside a deck, and it lands on the Wishlist. The Wishlist is the one view over everything you have marked Want, netted against what you own, with a bulk action that clears the wants your collection already covers.
Next Buy · why this one
The three kinds of evidence a want can carry. They sort in tiers you can read off the row, and nothing is folded into a single score.
Breaks
Pick the box you are opening and start a session. Type a collector number and the pull lands; when one number covers more than one printing, a numbered quick pick puts the likely one first. Shift for foil, option for etched, one keystroke to undo. Crack the box, log each pull as it hits the table, and the cards are in your collection before you sleeve them.
Break · one box, one session
Type the collector number, pick the finish
Priced as you go
Add to collection
A schematic of the session. Every entry is re-priced server-side off the same price rows the rest of the site reads, so the running total is not your browser's arithmetic.
Value over time
A snapshot is taken nightly and frozen, and the chart draws three lines off them: market, buylist, and cost basis for the rows that carry what you paid. A night with no reading leaves a gap in the line. A brand new collection is told the first snapshot has not run yet, because a chart starting at zero would be reporting a measurement nobody took. Free accounts read the trailing 90 days of it, and the full history rides with paid collection storage.
Collection value · nightly
The three lines the chart draws, off frozen nightly snapshots. A missing reading breaks the line instead of dropping it to zero.
Opening a break is free, including the running value, the biggest pull, and committing the session into your collection. The EV scorecard beside it, which reads a break against what the box was expected to hold, belongs to the paid Expected Value feature, and that feature is not on sale yet. The pricing page carries that boundary and every other one.
Why it holds up
Import without export is a trap with a subscription fee, and we refuse to be one. Bring the collection you already have, and keep every row yours as it grows.