# The Undesirables — TCG Price & Risk Oracle > Real-math stochastic finance for trading cards. We forecast card prices with > conformal-calibrated bands — honest, MEASURED VaR, not assumed — and publish > the forecast track record on-chain. "Real math. Not an API wrapper." ## What this is A live oracle over ~456K trading-card products (Pokemon, Magic: The Gathering, Yu-Gi-Oh!, One Piece, Lorcana, and more) with graded (PSA) comps and on-chain Merkle-verifiable roots. ## Which prices are CURRENT (read this before quoting a number) We say plainly what is fresh, because an oracle that hides staleness is worth nothing. Ask /api/v1/price for the as-of date on any single card; it never guesses. - **Japanese-print singles — REFRESHED DAILY.** 24 games, 3,596 sets, ~364K cards, ~167K carrying a TWO-SIDED dealer quote (an ask AND a buyback bid). No English-language feed publishes the bid side. This is the largest and freshest panel we hold. - **European (EUR) singles — refreshed from a marketplace price guide.** A SECOND MARKET, not a substitute for a US price; never compare the two directly as if they were the same number. - **US (USD) singles — NOT currently refreshing.** Our upstream US feed is unavailable and those prices are frozen at their last good date, which every response reports. Treat them as historical until this line says otherwise. Graded comps, forecasts, sports and the proof layer are unaffected. The DEFAULT price model is CONFORMAL: a deterministic drift forecast widened by split-conformal bands fit on real holdout residuals, regime-aware (calm / medium / jumpy by volatility). It yields calibrated 90% and 50% prediction ranges and an honest 95% VaR. Merton jump-diffusion and GBM remain available via model=. ## Where the prices come from Daily card prices originate with TCGplayer. We hold no rights in the underlying price data and claim none. What is ours is what sits on top: the conformal calibration, the risk bands, the letter grades, and the nightly Merkle commitments that let anyone verify a published price against the chain without trusting us. Graded figures are ASKS from active listings via eBay's official Browse API, never sold prices. ## Per-card pages (humans + agents) GET /card/{product_id} A shareable page: card image, 30-day conformal range, median, 95% VaR, probability of gain, and the volatility regime. product_id is the TCGplayer ID. ## FREE forecast API for agents (no payment, no key) - GET /api/v1/forecast Bulk board: the published top ~200 cards by liquidity, each with the 30-day conformal forecast + Safe-Hold & Momentum letter grades. Cached nightly. This is the best single call for a market overview. - GET /api/v1/forecast/{product_id} Per-card, agent-COMPLETE JSON for ANY card: name, game, price, as_of, regime, point, move_pct, prob_up, band50_pct, band90_pct, var95_pct, var99_pct, low90, high90, safe_hold, momentum (or "NA" on a drift spike), drift_spike, image_url, card_url, and a one-line plain_english read. ## One-call MCP tool (Claude / Cursor / ElizaOS) pip install undesirables-mcp-server (>= 1.1.8 — https://pypi.org/project/undesirables-mcp-server/). The card_forecast(card_name | product_id) tool returns the per-card object above plus the plain-English read in a SINGLE free call — the fastest way to pull a card's risk + Safe-Hold/Momentum grades into an agent. It wraps GET /api/v1/forecast/{product_id} (resolving a name via /api/v1/search first). ## Key endpoints (https://oracle.the-undesirables.com) - GET /api/v1/simulate?card_name=¤t_price=&days=30&model=conformal SUSPENDED since 2026-09-12 (USD price panel frozen 2026-09-07): answers 200 {"status":"suspended"} with live alternatives and does NOT charge. Same for /api/v1/market, /trending, /portfolio-optimize, /verdict — see GET / -> endpoints.suspended. - GET /api/v1/search?query= resolve a name -> product_id + last published USD price (frozen 2026-09-07; usd_panel in-band) - GET /api/v1/price?product_id=&days= - GET /api/v1/graded?product_id= | ?name= PSA graded comps - GET /api/v1/merkle/proof?product_id= on-chain Merkle proof - GET /health - Agent discovery: /.well-known/ai-plugin.json , /.well-known/agent.json - GET /api/v1/jp/summary free Japanese dealer panel as AGGREGATES (counts, band bid/ask norms, movement, on-chain root); per-card is /jp/card/{game}/{set_code}/{card_id}, no listing route - GET /api/v1/sports/board free daily sports movers (headshots, calibration verdict) - GET /api/v1/sports/players free player directory (ids for the per-player forecasts) - GET /api/v1/sports/leaderboard free sports souls leaderboard (weekly on-chain-locked calls) - GET /api/v1/souls/leaderboard free TCG souls leaderboard (on-chain-locked weekly calls; USD season 1 graded, JP season 2 live; skill-ranked) - GET /api/v1/fantasy/league free souls fantasy league (personality-drafted lineups, merkle-locked weekly, best-ball standings) - GET /tokenized free web terminal: all Robinhood-tokenized stocks, every pool, real price vs token price (human view of /api/v1/equity/rh-pools) - GET /api/v1/equity/rh-memecoins free memecoins launched against RH stock tokens (launcher wallet, anchored stock, seeded, pools) + serial-launcher trends, 15 min - GET /api/v1/equity/rh-holders free top holders per RH stock token, cross-stock whales, supply-share moves, hourly - GET /api/v1/stamps/panel free daily Bitcoin Stamps market panel (SRC-20 + collections), 7d/30d derived, Merkle-rooted - GET /api/v1/stamps/panel/{tick} free per-tick daily history + commit roots - GET /api/v1/equity/rh-pools free hourly census of Robinhood Chain tokenized stocks + every LP per token (deployer-verified, memecoin pools separated) - GET /fantasy human page: click any minted soul, see its lineup + how its personality drafted it - PAY-PER-CALL IS PAUSED (since 2026-10-02): every endpoint below is free. AI grading (/grade, /grade/upload, /grade-or-not, /batch-triage) and /loan-monitor are retired and answer 410 — see GET / -> endpoints.retired. - GET /api/v1/sports/forecast?league=&player_id= free — calibrated 7-day player stat bands + grades - GET /api/v1/census?product_id= free — observed graded-slab supply per card (census, not pop) - GET /api/v1/loan-terms?product_id=&grade= free — VaR-derived lending terms for a graded slab (max LTV, liquidation, liquidity tier, suggested APR premium) - GET /api/v1/loan-monitor/{monitor_id} free status of a previously registered monitor · POST .../{id}/cancel?secret= to stop - GET /api/v1/loan-terms/universe free list of all ~2,000 rated cards (ids + names + free-board flag) - GET /api/v1/loan-terms/preview/{product_id} free worked LTV derivation (today's published free-board cards only) - GET /lending human explainer: look up a card, see the 6-step LTV math + disclaimer - GET /api/v1/census/summary free census totals (slabs, certs, cards, graders) - GET /api/v1/graded/sales?product_id= free sales history: realized sold-records when available, plus delisting-inferred estimates (cert-tracked, method disclosed) - GET /player/{league}/{player_id} shareable player risk page (headshot + bands, social unfurls) - Technocore/Flop Network feed: daily merkle roots published as SIGNED messages in the owned room technocore.chat/r/d-undsr-oracle (latest pointer: technocore.chat/kv/undsr/price-root). Verify any price against the chain via /api/v1/merkle/proof — the chain, not the feed, is the source of truth. ## The Undesirables NFT collection (free endpoints) - GET /api/v1/collection live UNDSR supply + public-mint status 4,444-supply ERC-721A (Scatter.art Archetype) on ETHEREUM MAINNET at 0xA893648A701C03B14bF2FB767B72b2C55ed5c17A. Each card's "soul" is rated by this oracle's on-chain SoulPredictionOracle. - GET /api/v1/collection/wallet/{address} mint eligibility + holdings - GET /api/v1/collection/prepare-mint?quantity=&to= Returns an UNSIGNED transaction {to, data, value, chainId}. Sign it with YOUR OWN wallet and broadcast — this service never holds keys and cannot mint for you. Validates wallet limit / list supply / batch size on-chain. ## How to read a forecast - "90% range $X-$Y": a calibrated 90% prediction interval — built to actually contain the price ~90% of the time (coverage is measured, not assumed). - "95% VaR: 5% chance below $Z": calibrated downside from real holdout residuals, not a normal-distribution assumption. - "regime" (calm/medium/jumpy): the card's volatility tercile. Wider bands on jumpy cards are honest, not noise. ## Letter grades (safe_hold + momentum) - safe_hold (A+ A B C D F): capital-preservation grade from the calibrated 95% VaR (with a 99% fat-tail guard). ABSOLUTE scale — A+ means genuinely low modeled downside (<=5%), never graded on a curve. - momentum (A+ A B C D F, or "NA"): 30-day direction from the expected move, gated by prob_up conviction. "NA" = the card tripped the drift-spike filter (recent runaway move), so the direction is untrustworthy — treat as no-signal, not bullish. ## Notes for agents - Card image: https://product-images.tcgplayer.com/fit-in/437x437/{product_id}.jpg - Paid endpoints use x402 micropayments — USDC on Base, USDC on Solana, or USDG on Robinhood Chain; the 402 offers all three and the agent picks a leg. License: BUSL-1.1 (no competing TCG oracle services). ## Japanese-print cards 24 Japanese trading card games, 3,596 sets, 364,836 cards, refreshed daily. 167,137 of them carry a TWO-SIDED dealer quote -- an asking price and a buyback bid -- which no English-language feed publishes. Per-card lookup: GET /jp/card/{game}/{set_code}/{card_id} game is one of: poc ygo opc ua ws wsr vg dm bs digi sev gcg hocg wx yrd zx lo re xs chaos ei fe gab pm. card_id is unique only WITHIN a set, so set_code is required -- omitting it resolves to the wrong card. Read the bid as a REFERENCE RATE, not an offer. It is one Japanese retailer's quote, settled domestically in yen; you cannot transact at it. There is no resting size or queue behind either number, so this is not an order book. Lookup only: there is deliberately no bulk listing route for this data. ## Trademarks and affiliation The Undesirables is an INDEPENDENT service. It is not affiliated with, sponsored by, endorsed by, or connected to TCGplayer, eBay, The Pokemon Company, Nintendo, Creatures, GAME FREAK, Konami, Bandai, Bushiroad, Wizards of the Coast, Hasbro, Ravensburger, PSA, BGS, SGC, or any card publisher, marketplace, retailer or grading company named anywhere in this document. All product names, game titles, company names, logos and trademarks are the property of their respective owners. They appear here only to identify the actual products this service prices -- nominative use -- and never to indicate origin, sponsorship or endorsement. "product_id" values are TCGplayer catalogue numbers, used as identifiers only. Prices are our own observations and derived figures. This service claims no rights in any underlying price data and does not redistribute any provider's dataset. Contact: @undesirables_ai on X