Vaults live — the West Coast & the Midwest

Trade the card.
Never touch the card.

TCG Keepr holds your Pokémon, Yu-Gi-Oh!, Magic and sports cards in climate-controlled custody. When you trade, nothing moves — we transfer title on an append-only ledger while the slab sits still in its bin. Settlement is instant, deterministic, and fully auditable. Want the physical card? Request a withdrawal and it ships to your door, double-boxed and insured.

Zero-movement swaps · Sub-second settlement · Vault inventory insured subject to policy terms and limits · PSA / BGS / CGC / SGC / TAG certification records checked against issuer databases at intake

Zero movement is an operational fact, not a tax outcome — a swap is still a disposition of property. How trades are treated for tax.

10 1999 POKEMON GAME CHARIZARD-HOLO #4 · 1ST EDITION
GEM MINT
CERT
#8•402•1173
Vaulted · WEST-01
Cert record matched Bin A14-R3-S07 Pop 10: 121
Insured, access-controlled facilities
p99 swap settlement
Calibrated captures per item at intake
Per-item declared value cap

Demonstration figures. Declared-value caps are subject to underwriting; "insured" describes the coverage carried on vault inventory, subject to policy terms, limits and exclusions — it is not a guarantee that any particular claim pays out. What the coverage actually is.

The core idea

Physical settlement is the bottleneck. So we removed it.

A traditional card trade is two shipments, two chances of loss, two chances of a bait-and-switch, and 5–10 days of counterparty risk while cardboard sits in a truck. Every hop is also a chance to put a fresh corner ding on a card whose grade is worth four figures.

Once both cards are already in the same custody network, the trade stops being a logistics problem and becomes a database problem. We hold the asset; you hold the title. Trading is a signed, double-entry transaction against an append-only ledger. The cards never leave their bins.

Zero-movement swap

Both legs of the trade are held by the same custodian, so settlement is an atomic UPDATE inside one Postgres transaction. No shipping label, no tracking number, no "it says delivered but the mailbox is empty."

Provenance you can audit

Every asset carries an immutable event history from the moment it hits the receiving dock: intake images, cert lookup, weight and caliper readings, every bin move, every owner. Hash-chained, exportable, verifiable.

Withdrawal is always on

Custody is a convenience, not a lock-in. Request a ship-out and the card is picked, re-imaged against its intake scans, packed to slab spec, and handed to a carrier with signature confirmation and declared-value coverage.

Lifecycle

From your mailbox to a tradable asset in four steps

01

Submit & ship in

You build a manifest in the dashboard — game, set code, collector number, language, finish, edition, and grade if slabbed. We generate a prepaid, insured inbound label routed to whichever facility is closer to you. Each submission gets a SUB- barcode; each line item gets an LPN.

02

Intake, imaging & authentication

Receiving reconciles the physical box against your manifest. Every item is imaged at 1200 DPI front and back, plus angled raking light and 365 nm UV. We weigh to ±0.01 g, measure thickness with a digital caliper, and — for slabs — verify the certification number against the grader's population database while checking the holder itself for tampering. Details in authentication.

03

Vaulted & listed

The item is assigned a bin down to shelf-and-slot granularity and credited to your holdings. It's now a tradable position: you can list it, accept a swap, bundle it into a multi-leg trade, or just let it sit. Cards stay in the vault whether or not they're listed.

04

Trade by ledger — or ship it home

Accepted trades settle in a single transaction: assets debit one holder and credit the other, with any value difference settled in cash through the same entry. Or hit withdraw, and the card leaves the network the way it came in — carefully.

Full pipeline, step by step →

Settlement

What an actual swap looks like

Two collectors agree to trade a PSA 10 Charizard for a BGS 9.5 Blue-Eyes plus $180 in cash. Here is the complete ledger effect. It commits or it doesn't — there is no half-traded state, and no window where one side has both cards.

AccountInstrumentDebitCredit
holder:usr_4f2aASSET/itm_c8a1 · PSA10 Charizard1 unit
holder:usr_9b71ASSET/itm_c8a1 · PSA10 Charizard1 unit
holder:usr_9b71ASSET/itm_2de5 · BGS9.5 Blue-Eyes1 unit
holder:usr_4f2aASSET/itm_2de5 · BGS9.5 Blue-Eyes1 unit
cash:usr_9b71USD boot payment$180.00
cash:usr_4f2aUSD boot payment$180.00
revenue:feesSwap fee, both legs$14.40
cash:usr_4f2a / usr_9b71Swap fee, both legs$14.40
TRD-8841committed · 312 ms · bins untouchedbalanced

Why double-entry and not "just move a row." Cards, cash, fees and tax withholding all move in the same instant. A single balanced journal makes every trade reconcilable against the physical count in the warehouse and against the money in the bank — if the journal balances and the cycle count matches, the system is provably consistent. See the ledger design.

Grading & rarity

The grade is the asset

A 1999 1st Edition Charizard is not one product. It is a dozen products that happen to share artwork — and the spread between PSA 9 and PSA 10 on that card is routinely larger than the price of a used car. Our data model treats the grade, the grader, the edition, the language and the finish as part of the item's identity, never as metadata bolted on afterwards.

GraderScaleSubgradesTop designationNotes we track
PSA 1–10, whole grades (plus 1.5, and qualifiers like OC/ST/PD) No PSA 10 — Gem Mint Cert #, label variant, pop report count at intake, qualifier flags
BGS (Beckett) 1–10 in 0.5 steps Yes — centering, corners, edges, surface BGS 10 Black Label (four 10 subgrades) All four subgrades, final grade, label colour, serial
CGC 1–10 in 0.5 steps Optional CGC 10 Pristine / Perfect 10 Cert #, Pristine vs Gem Mint distinction
SGC 1–10 in 0.5 steps No SGC 10 Gem / Pristine 10 Cert #, tuxedo holder generation
TAG 1–10, reported on a 1000-point computer-vision scale Yes — per-defect map TAG 10 Pristine Full defect atlas, per-region scores

Rarity is a taxonomy, not a word

"Rare" means something different in every game and every era. We normalise Pokémon's Common/Uncommon/Rare/Holo/Ultra/Illustration/Special Illustration/Hyper ladder, Yu-Gi-Oh!'s Super → Ultra → Secret → Ultimate → Ghost → Starlight → Quarter Century stack, and Magic's finish-and-treatment matrix into one canonical rarity vector.

Rarity taxonomy in full →

Centering, measured not eyeballed

Our intake scanner computes left/right and top/bottom border ratios from the raw image and stores them alongside the human grade. That's how we can tell you a raw card is a 58/42 front — comfortably inside gem tolerance — before you pay to submit it.

How centering is computed →

Custody

Two coasts of coverage, one inventory

The West Coast site covers the western states and the Pacific inbound lane; the Midwest site covers the interior, the East and the Canadian cross-border corridor. Together they put roughly 95% of the continental US inside two-day ground. Inventory is logically unified — a trade between a West Coast item and a Midwest item settles identically, because neither one moves.

West Coast

WEST-01 · Pacific region · 41,000 ft²
Operational
Coverage
Western states, Southwest, Pacific Northwest, HI & AK + Pacific inbound
Environment
70°F ±2°, 47% RH ±3%, filtered to MERV 13
Fire
VESDA aspirating detection, pre-action dry-pipe, no wet pipe over vault aisles
Access
Mantrap entry, dual-credential vault cage, 90-day video retention
Cutoff
17:00 PT same-day outbound

Midwest

MID-01 · Great Lakes region · 55,000 ft²
Operational
Coverage
Interior, Northeast, South + Canadian cross-border
Environment
70°F ±2°, 47% RH ±3%, filtered to MERV 13
Fire
VESDA aspirating detection, pre-action dry-pipe, inert-gas vault cage
Access
Mantrap entry, dual-credential vault cage, 90-day video retention
Cutoff
18:00 CT same-day outbound

Facility specs, insurance & ship-out →

Under custody

A sample of what sits in the bins

Real printings, real collector numbers, real population figures. Every one of these is a live instrument in the terminal with its own order book.

Card images © The Pokémon Company / Nintendo, served via the Pokémon TCG API. Yu-Gi-Oh! and Magic instruments in the terminal render with a generated placeholder rather than publisher artwork.

Built for builders

Everything the dashboard does, the API does

Deck-building tools, price trackers, Discord trade bots and shop back-offices all talk to the same REST surface. Idempotency keys on every mutation, signed webhooks on every state change.

POST /v1/trades
{
  "offered": ["itm_c8a1f9"],
  "requested": ["itm_2de503"],
  "boot": { "currency": "USD", "amount_cents": 18000 },
  "counterparty": "usr_9b71c4",
  "expires_in": 86400
}
GET /v1/items/itm_c8a1f9
{
  "id": "itm_c8a1f9",
  "game": "pokemon",
  "set": "base1",
  "number": "4/102",
  "edition": "1st_edition",
  "finish": "holofoil",
  "grade": { "grader": "PSA", "value": 10,
              "cert": "84021173", "verified_at": "2026-07-02T18:41:09Z" },
  "custody": { "facility": "WEST-01", "status": "vaulted" }
}

Full API reference →

Legal & tax

The card not moving is an operational fact, not a legal one

Custodial trading is a well-trodden legal structure — UCC §2-401 lets title pass however the parties agree, and warehousing law has handled "possession here, ownership there" for a century. What it does not do is make a trade disappear.

§

We are a bailee, not an owner

Your cards are your property. We hold them in custody, segregated from company assets, never pledged, never lent, never rehypothecated. If we vanished tomorrow, the cards were never ours to lose.

Custody structure →

%

A swap is still a taxable disposition

Barter is income. Both sides realise gain or loss at the fair market value received, and §1031 like-kind deferral has not covered collectibles since 2017. Collectibles gain runs to a 28% maximum federal rate. The terminal flags this before you execute.

Tax treatment →

The ledger doesn't create good title

A hash chain proves a record wasn't altered. It cannot prove the record was true when written. A thief passes no title, so diligence scales with value — which is why intake, not settlement, is where this system is actually load-bearing.

Why intake matters →

One slab, one owner — no fractional interests, no yield, no lending pools. Money is handled by a licensed payments provider rather than held as a balance with us. Nothing on this site is legal or tax advice.

Send the cards once. Trade them forever.

Free inbound shipping on submissions over $500 declared. First 30 days of storage on us. Withdraw everything, any time, no exit fee.

The terminal is a full working implementation — real matching engine, real double-entry ledger, real custody state machine — running entirely in your browser.