Home / How it works

The whole lifecycle

Ship your cards in once. After that, everything — listing, trading, swapping, valuing — happens without anyone touching cardboard. Here is every stage, including the parts that are deliberately boring.

1. The problem with shipping cards

Consider the ordinary version of a two-card trade between strangers. Each side packs a card, buys a label, and hands a small rigid object to a logistics network optimised for throughput rather than care. Then both wait.

5–10 days of exposure

From the moment the first parcel is tendered until the second is delivered, both parties are exposed to the other's non-performance and to the carrier's.

Two chances to lose the card

Two parcels, two sorting networks, two porches. Loss is uncommon per shipment and unavoidable at volume.

Two chances to damage the grade

Handling is where grade goes to die. Every transit is an opportunity for a corner ding worth four figures on a card where PSA 9 to PSA 10 is a 10x step.

Once both cards are already in the same custody network, none of that applies. The trade stops being a logistics problem and becomes a database problem — and database problems have exact solutions.

2. Submission and intake

You build a manifest in the dashboard: game, set code, collector number, language, finish, edition, and the grade if it is slabbed. We issue a prepaid, insured inbound label routed to whichever facility is closer to you. The submission gets a barcode; every line item gets a license plate number that will follow that physical object for the rest of its life.

What arrives at the dock
SUB-4F2A17-0093            // submission barcode
├─ LPN7761A8BE63           // 1999 Base Set Charizard 4/102, 1st Ed, PSA 9, cert 52820658
├─ LPN119AD09D46           // LOB-EN001 Blue-Eyes White Dragon, 1st Ed, PSA 9
└─ LPNDBB2EB801F           // RA02-EN019 Blue-Eyes (Quarter Century), raw

destination : MID-01 (Midwest)
declared    : $49,300
service     : adult signature required, direct hold

Receiving reconciles the physical box against that manifest under camera before anything else happens. Then every item goes across the authentication bench — four calibrated captures, weight, caliper, cert lookup and holder inspection. That sequence is documented in detail on the grading page, because it is really a grading question rather than a logistics one.

Intake is where the audit trail starts. Every step writes a hash-chained event — dock scan, imaging with its capture list and measurements, cert verification with the population figure at the time, bin assignment. By the time an item is tradable it already has a provenance record that no later dispute can quietly rewrite.

3. The custody state machine

An item is always in exactly one custody state, and the legal transitions are enumerated. This is not bureaucracy — it is what makes "you cannot sell a card that is already on a truck to your house" a property of the system rather than a rule someone has to remember.

Transitions
inbound        → received
received       → imaging
imaging        → authenticating
authenticating → vaulted | quarantine
quarantine     → vaulted | returned
vaulted        → picking                 // ← only state that is tradable
picking        → qa_reimage | vaulted    // cancel returns it to the shelf
qa_reimage     → packed | vaulted        // QA mismatch stops the parcel
packed         → manifested
manifested     → in_transit
in_transit     → withdrawn

Tradability is defined narrowly: an item is tradable if and only if it is vaulted and not reserved against something else. A card committed to a resting sell order, an open swap offer, or a pending ship-out is not available, and every command that would move it checks first and refuses.

4. Trading: the order book

Each SKU — a printing plus a grade — gets a continuous limit order book with price–time priority. Standard mechanics, no surprises:

  • Price–time priority. Better prices fill first; at equal price, the order that arrived first fills first.
  • The resting order sets the price. If you lift an offer at $429.45, you pay $429.45 — the maker's price, not yours. Improving on the touch does not cost you the improvement.
  • Maker and taker fees differ. Resting liquidity pays 2%; crossing the spread pays 4%. Posting a bid and waiting is materially cheaper than hitting the offer.
  • Asks are backed by specific slabs. You do not sell "a PSA 10" — you sell the copy in bin D14-R3-S07, and the engine reserves that exact item against the order.
  • Bids are backed by reserved cash. The reservation covers the notional plus the worst-case taker fee, so a resting bid can never fail for insufficient funds later.
  • No self-crossing. Your own orders never match each other.
  • Market orders do not rest. A market order sweeps until filled or the liquidity runs out; any remainder expires rather than sitting on the book at an unbounded price.

Why grade-specific books and not one book per card. Because fungibility is the whole basis of an order book. Two PSA 10s of the same printing are interchangeable — either satisfies your buy order. A PSA 9 is not a slightly worse version of the same instrument, it is a different instrument, often at a tenth the price. Pooling them would mean every fill is a negotiation, which is precisely what an order book exists to avoid.

5. Trading: direct swaps

Order books are for fungible things. Collections are not fungible, and a lot of real trading is "my Lugia and $180 for your Blue-Eyes." That is a swap: an arbitrary set of items on each side, plus a cash difference — the boot — in either direction.

A swap offer
{ "offered":   ["itm_c8a1f9", "itm_71b0de"],   // mine, reserved on send
  "requested": ["itm_2de503"],                 // theirs, re-checked on accept
  "boot":      { "currency": "USD", "amount_cents": 18000 },
  "counterparty": "usr_9b71c4",
  "expires_in": 86400 }

Sending an offer reserves your side immediately, so you cannot offer the same card to five people and let four of them down. The other side is deliberately not locked — it would be hostile to freeze someone's inventory because a stranger made an offer. Instead every leg is re-validated at the moment of acceptance, and an offer whose legs have moved on simply fails cleanly rather than settling something wrong.

6. What settlement actually does

Here is the entire physical consequence of a settled trade:

Nothing.

Physically nothing. Legally and fiscally, quite a lot. Title changed hands, which means both parties disposed of property. A card-for-card swap is a barter exchange: both sides realise gain or loss measured against the fair market value received, and like-kind deferral under §1031 has not covered collectibles since 2017. The slab staying in its bin is an operational fact with no bearing on any of that. How trades are treated for tax.

The card stays in its slot. The bin address does not change. The license plate does not change. The cert number does not change. What changes is the owner field on the item record, and that change is written as a balanced double-entry journal line alongside the cash movement and the fees, all inside one transaction that either commits whole or does not happen.

AccountInstrumentDebitCredit
holder:usr_4f2aASSET/itm_c8a1 · PSA 10 Charizard1 unit
holder:usr_9b71ASSET/itm_c8a1 · PSA 10 Charizard1 unit
holder:usr_9b71ASSET/itm_2de5 · BGS 9.5 Blue-Eyes1 unit
holder:usr_4f2aASSET/itm_2de5 · BGS 9.5 Blue-Eyes1 unit
cash:usr_9b71USD boot payment$180.00
cash:usr_4f2aUSD boot payment$180.00
revenue:feesSwap fee, both sides$14.40
cash:usr_4f2a / usr_9b71Swap fee, both sides$14.40
TRD-8841committed · bins untouchedbalanced

The convention is that a debit increases the balance the account holder controls. Every entry must balance independently per instrument — the asset units net to zero, the dollars net to zero — or the transaction is rejected before it touches anything. Entries are hash-chained, so altering a historical row invalidates every digest after it. You can verify the chain yourself in the terminal.

7. Reservations and counterparty risk

The reason this model removes counterparty risk is not that we are trustworthy. It is that there is no window during which one party has both cards, or the card and the money.

No delivery-versus-payment gap

In a shipped trade, someone goes first. Here, the asset leg and the cash leg are lines in the same journal entry. There is no ordering to exploit, because they are simultaneous by construction.

Reservations, not promises

A resting bid holds real cash — notional plus the worst-case fee — set aside from your buying power. A resting ask holds a specific physical item. Neither is a promise to have the funds or the card later; both are already committed.

Invariants checked every transaction

After every command the engine re-checks that no balance is negative, that reserved cash equals the sum of open obligations exactly, and that every open ask is still backed by an item its seller holds. A violation rolls the whole transaction back.

Failure is atomic

A command that cannot complete leaves no trace — no half-moved item, no orphaned reservation, no partial journal entry. Try to buy something you cannot afford in the terminal and watch the state come back byte-identical.

8. Ship-out

At any point you can ask for the physical card. No exit fee, no minimum term, no penalty for withdrawing everything at once. The pipeline is the reverse of intake, and the important step is the QA re-image: the card leaving is compared against the captures taken the day it arrived. Full packaging specs and service levels are on the vault page.

StageItem stateWhat happens
RequestedpickingPick list released; item becomes untradable immediately
Pickedqa_reimageScanned out of bin, routed to QA
QA passedpackedRe-image matched against intake captures; packed to slab spec
PackedmanifestedDeclared value applied, carrier label issued
Manifestedin_transitTendered to carrier with signature service
In transitwithdrawnSignature captured; custody formally released on the ledger

Items held at both facilities ship as two parcels. We do not consolidate by moving cards between the West Coast and the Midwest first. An internal transfer is exactly the kind of handling this entire model exists to avoid, and doing it to save you one shipping fee would be a bad trade.

The whole thing runs in your browser

Intake, order book, swaps, ledger and ship-out are all implemented and live in the terminal. Nothing is mocked — the matching engine, the reservations and the hash chain are real.