{
  "compartment_id": "section-4",
  "number": "Section 4",
  "title_local": "The Asset ID blackout: the update that restricted public item tracing",
  "title_english": "The Asset ID blackout: the update that restricted public item tracing",
  "source_url": "https://phishdestroy.io/steam_dossier/#evidence-blackout",
  "source_document": "index.html",
  "content": {
    "html": "<section class=\"border-t border-gray-800 pt-6 avoid-break\" id=\"evidence-blackout\">\n<div class=\"max-w-7xl mx-auto space-y-8\">\n<div class=\"section-head section-head-balanced\"><div class=\"section-head-primary\">\n<span class=\"kicker\">Part A — Technical record · Section 4</span>\n<h2>An endpoint closed. Public tracing lost a key.</h2>\n\n<section class=\"dossier-note chapter-context\"><div class=\"dossier-note-title\">Context &amp; source limits</div><p class=\"chapter-context-text\">Steam shipped changes that removed public visibility of item Asset IDs and restricted API inventory access. The effect: tracing a specific item by its original Asset ID became impossible from public data. What follows is what was possible before, what stopped being possible after, and what that costs a victim trying to prove where their property went. The date is 2017 according to CSFloat's engineering account; no Valve changelog has been located. The sequence — roughly a year after the July 2016 gambling statement — is the investigative question, not a finding. The item records themselves remain inside Valve's systems; outside investigators lost access to the original-ID chain, while float, seed and paint identifiers allow only partial matching.</p></section>\n</div><div class=\"section-head-intro\"><p class=\"lede\"><b class=\"text-white\">The rule Valve applies:</b> Steam Support does not restore items that left your account, and the burden of showing what happened is yours. <b class=\"text-white\">The record:</b> in 2017 Valve closed the endpoint that carried original item IDs. Before it, anyone could follow a stolen skin from the victim's account into a marketplace bot. After it, nobody outside Valve can. <strong class=\"text-white\">The proof the victim is asked for is the proof that was switched off</strong> — and it still exists, inside Valve.</p></div></div>\n<div class=\"blackout-grid mt-8\">\n<div class=\"space-y-6\">\n<div class=\"blackout-context bg-gray-950 border border-gray-800 rounded-lg p-6 relative overflow-hidden\">\n<h3 class=\"text-xl font-black text-white uppercase tracking-wider mb-4 border-b border-gray-900 pb-4\">The Pre-Blackout Era</h3>\n<p class=\"text-xs text-gray-300 leading-relaxed font-mono mb-4\">\n                                Historically, every virtual item generated on Steam possessed a globally unique, immutable <span class=\"text-white font-bold bg-gray-800 px-1 rounded\">Asset ID</span>. Third-party OSINT databases could index these IDs. If a user had an item hijacked, investigators could trace the lineage of that specific asset as it moved from the hijacker's intermediate account into the storage accounts of a marketplace or gambling site.\n                            </p>\n<div class=\"blackout-result bg-emerald-950/20 border-l-4 border-emerald-500 p-3 rounded text-xs text-emerald-400 font-mono\">\n                                BEFORE: an item could be followed from the victim's account through intermediate accounts and into a marketplace or casino storage bot, by anyone, using public data.\n                            </div>\n</div>\n<div class=\"blackout-context blackout-context-after bg-gray-950 border border-rose-900/50 rounded-lg p-6 relative h-fit overflow-visible\">\n<h3 class=\"text-xl font-black text-rose-400 uppercase tracking-wider mb-4 border-b border-rose-900/50 pb-4\">After the change</h3>\n<p class=\"text-xs text-gray-300 leading-relaxed font-mono mb-4\">\n                                According to CSFloat's engineering account, Valve closed the endpoint in 2017 and original item IDs stopped being available to outside parties. No Valve statement of the reason for the change has been located. In the same period, no published action against the commercial bot accounts that moved items at scale has been located either.\n                            </p>\n<p class=\"text-xs text-gray-300 leading-relaxed font-mono mb-4\">\n                                Whatever the reason for it, the change severed the public chain of custody. A victim can no longer reproduce the original-ID chain from public data to show that a specific stolen item was liquidated through a specific marketplace or casino. The item records still exist inside Valve's systems; the public, researchers and law enforcement working from public data cannot reach them.\n                            </p>\n<div class=\"blackout-result bg-rose-900/10 border-l-4 border-rose-500 p-3 rounded text-xs text-rose-400 font-mono\">\n                                AFTER: tracing a specific item by its original Asset ID is no longer possible from public data. The original-ID chain of custody for an item moved after 2017 exists only inside Valve's infrastructure; no such record has been produced publicly. Float, seed and paint identifiers allow only partial, probabilistic matching.\n                            </div>\n</div>\n</div>\n<div class=\"blackout-terminal-column\">\n<div class=\"blackout-terminal bg-black border border-gray-800 rounded-lg overflow-hidden font-mono shadow-2xl\">\n<div class=\"blackout-terminal-bar bg-gray-900/90 border-b border-gray-800 px-3 py-2 flex items-center justify-between\">\n<div class=\"flex items-center gap-2\">\n<span class=\"inline-block w-2.5 h-2.5 rounded-full bg-rose-500/80\"></span>\n<span class=\"inline-block w-2.5 h-2.5 rounded-full bg-amber-500/80\"></span>\n<span class=\"inline-block w-2.5 h-2.5 rounded-full bg-emerald-500/80\"></span>\n<span class=\"blackout-terminal-title text-xs text-gray-400 font-mono font-medium ml-1\">IEconItems_730</span>\n</div>\n<div class=\"flex items-center gap-2\">\n<button class=\"text-[11px] font-mono px-2 py-0.5 rounded bg-gray-800 border border-gray-700 text-gray-300 hover:text-white transition-all flex items-center gap-1 cursor-pointer\" id=\"btn-copy-payload\" type=\"button\">\n<svg class=\"w-3 h-3\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"></path></svg>\n<span id=\"copy-payload-label\">Copy</span>\n</button>\n<button class=\"text-[11px] font-mono px-2.5 py-0.5 rounded bg-rose-950/70 border border-rose-800 text-rose-300 hover:text-white transition-all flex items-center gap-1.5 cursor-pointer\" id=\"btn-replay-blackout\" type=\"button\">\n<span class=\"w-1.5 h-1.5 rounded-full bg-rose-400 animate-pulse\"></span>\n<span id=\"blackout-btn-text\">Replay 2017</span>\n</button>\n</div>\n</div>\n<div class=\"p-6 text-xs text-gray-400 space-y-4\">\n<div class=\"blackout-request\"><span class=\"text-blue-400\">GET</span> <code class=\"text-gray-300\">/IEconItems_730/GetPlayerItems/v1/</code></div>\n<div class=\"blackout-payload blackout-payload-before bg-gray-900/50 p-4 rounded border border-emerald-900/30\">\n<div class=\"blackout-payload-heading text-xs text-emerald-500 mb-2 uppercase font-bold\">Traceable Payload (Pre-Patch)</div>\n<div class=\"blackout-code-line text-gray-300\"><code>\"id\": <span class=\"text-emerald-400\">\"14892281934\"</span>,</code></div>\n<div class=\"blackout-code-line text-gray-300\"><code>\"original_id\": <span class=\"text-emerald-400\">\"11829910211\"</span>,</code></div>\n<div class=\"blackout-payload-status text-gray-400 mt-1\">Status: Victim can track item lineage across bot accounts.</div>\n</div>\n<div aria-hidden=\"true\" class=\"blackout-transition flex justify-center my-2\">\n<svg class=\"w-5 h-5 text-gray-400\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M19 14l-7 7m0 0l-7-7m7 7V3\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"></path></svg>\n</div>\n<div class=\"blackout-payload blackout-payload-after bg-gray-900/50 p-4 rounded border border-rose-900/30\">\n<div class=\"blackout-payload-header\">\n<div class=\"blackout-payload-heading text-xs text-rose-300 uppercase font-bold\">Obfuscated Payload (Post-Patch)</div>\n<span class=\"blackout-active text-rose-300 font-bold border border-rose-500 px-2 py-0.5 rounded text-xs uppercase\">Current</span>\n</div>\n<div class=\"blackout-code-line text-gray-300\"><code>\"id\": <span class=\"text-rose-400\">\"HIDDEN_BY_PRIVACY_SETTINGS\"</span>,</code></div>\n<div class=\"blackout-code-line text-gray-300\"><code>\"original_id\": <span class=\"text-rose-400\">\"NULL\"</span>,</code></div>\n<div class=\"blackout-payload-status text-gray-400 mt-1\">Status: outside parties can no longer trace item lineage by original Asset ID from public data.</div>\n</div>\n<div class=\"blackout-translation mt-4 pt-4 border-t border-gray-800 text-[11px] text-white leading-relaxed\">\n<strong class=\"text-rose-300\">Effect on evidence:</strong> after the change, the public data needed to follow a specific item by its original Asset ID from a victim's account into a marketplace or casino bot was no longer available. The internal records still exist at Valve; a victim, researcher or investigator working from public data cannot reproduce the original-ID chain (float, seed and paint identifiers allow only partial matching).\n                                </div>\n<p class=\"evidence-caption\">Source: CSFloat engineering account of the 2017 closure of <code>IEconItems_730/GetPlayerItems</code> — <a href=\"https://blog.csfloat.com/how-floatdb-tracks-items/\" rel=\"noopener noreferrer\" target=\"_blank\">blog.csfloat.com/how-floatdb-tracks-items</a> (<a href=\"https://web.archive.org/web/20260921022415/https://blog.csfloat.com/how-floatdb-tracks-items/\" rel=\"noopener noreferrer\" target=\"_blank\">archived 2026-09-21</a>) · the payloads shown are an illustration of the field shape, not captured responses · no Valve changelog for the closure has been located.</p>\n</div>\n</div>\n</div>\n</div>\n</div>\n</section>"
  },
  "original_content_sha256": "34f3aa0e41c822bb06fc79b95c55676e3d035096ec4cabd98e309dfd24b68281",
  "author_pseudonym": "Agent Gordon",
  "schema": "phishdestroy.macro-fact.v1",
  "language": "en",
  "aggregator": "PhishDestroy",
  "exports": {
    "pdf": "/steam_dossier/exports/agent-protocol/files/en/steam_dossier_section_4_agent_gordon.pdf",
    "json": "/steam_dossier/exports/agent-protocol/files/en/steam_dossier_section_4_agent_gordon.json",
    "signature": "/steam_dossier/exports/agent-protocol/files/en/steam_dossier_section_4_agent_gordon.json.asc"
  },
  "integrity": {
    "signed_object": "steam_dossier_section_4_agent_gordon.json",
    "signature_file": "steam_dossier_section_4_agent_gordon.json.asc",
    "signing_key_fingerprint": "129FC7F39C40C69D2EF3C329BFCF9E8DD295EE01",
    "scope": "Exact JSON bytes, including macro-fact author and corresponding PDF SHA-256. PhishDestroy is the integrity signer; original evidence attribution is unchanged."
  },
  "pdf": {
    "filename": "steam_dossier_section_4_agent_gordon.pdf",
    "sha256": "c45534c252595f7a9918a40e3583ceaee287304c7e671d9e2a75e10bcfc2c5b8",
    "pages": 4
  }
}
