RECORDS ARCHIVE
Records that can’t quietly change.
Every snapshot of AthleMix’s public soccer records gets a fingerprint anyone can check. If a single character changes later, the fingerprint no longer matches, and you can prove it without trusting us.
How it works, in plain English
What a fingerprint is
A fingerprint is a 64-character code worked out from a file’s exact contents (the method is called SHA-256). The same file always gives the same code. Change one comma and the code changes completely. Nobody can design a different file that produces the same code.
Why it can’t be quietly changed
Each snapshot lists the fingerprint of every file in one small document, the manifest. The fingerprints are also combined, pair by pair, into a single code called the Merkle root. Each manifest records the fingerprint of the manifest before it, so the snapshots form a chain. Once a manifest’s fingerprint is timestamped somewhere nobody controls, editing any record, in any snapshot, breaks the match for everyone to see.
Where copies live
The fingerprints are public on this page. The files are meant to live in several independent places, so they survive even if AthleMix does not. Each place is listed below only once a copy is really there.
Why this exists: when the U.S. Soccer Development Academy closed in 2020, its website went with it. What survives is what an independent archive had already copied. The Internet Archive’s Wayback Machine still holds about 29,000 pages from ussoccerda.com and about 26,600 captures of the older academy.demosphere.com site.
Latest snapshot
- Snapshot
- 2026-09-19-0eb718d
- Merkle root
- c10b6a6e257fecb021c71f09c394631286805c9afa8f16dc2179b0797a101ced
- Manifest fingerprint (SHA-256)
- bdde48acd09eff7ce3c35b48af557d7663b15751c2b352ef9c979300c2da9248
- Previous snapshot
- 2026-09-19-fcd9d86
- Built from
- Data dated 2026-09-19 · code commit 0eb718d
Independent copies and proofs
None published yet. This snapshot currently exists only in AthleMix’s own repository and on this page, so today you are trusting AthleMix that it has not been swapped. That changes when the first outside timestamp is attached.
Not published yet for this snapshot: OpenTimestamps proof, GitHub release, Zenodo DOI, Internet Archive item, Arweave transaction, IPFS content ID, Polygon anchor. No link is shown until the copy or proof exists.
Files in this snapshot
- Tier Adata/college-programs.json8 programs · 17 KB · source checked 2026-09-15sha256 bd8f9964a8b9ee48013775a5cdc3c7aec71d6102f9c920463d509e0a8ba390de
- Tier Bdata/directory/college.json562 teams · 15,913 players · 1,816 coaches · 7.8 MB · source checked 2026-09-18sha256 16f04558f4208e54ff1c4851979e35b14d94098070978f7976ff0168f04f42a1
- Tier Adata/directory/college.teams.json562 teams · 1,816 coaches · 1.8 MB · source checked 2026-09-18 · team-level view of college.jsonsha256 c7f07fc9387bf352efbec7ff737665a19efec99e0f845b933a35bd826c597d99
- Tier Adata/directory/mls-last-lineups.json30 teams · 135 KB · source checked 2026-09-18sha256 a2faa9581ffc9f0bd1fe5755f82e426006fdef8ea59b0ce2b7e09a7ba20e3a2d
- Tier Adata/directory/mls-recent-h2h.json104 pairs · 123 KB · source checked 2026-09-18sha256 d114113b77122b24e41594d7c7f9e4200784edc9c1968a0d6168065fabad11db
- Tier Adata/directory/mls-schedule.json510 fixtures · 420 KB · source checked 2026-09-18sha256 d2eae3995b68e086e1ba3e5d2468cb52dae0ca7896adfafa4949045cd58f22f0
- Tier Adata/directory/mls-stats.json953 records · 894 KB · source checked 2026-09-18sha256 d7745dda47e93784b07a882c94f558285150cb2f5c1ca29d0f57d5e1cc43de28
- Tier Adata/directory/mls.json30 teams · 940 players · 0 coaches · 1.0 MB · source checked 2026-09-18sha256 666a7fd7d2f253c4d0abb3c2a8bd23ddfed1edb460619f1ae138e31d020657f1
- Tier Adata/directory/sources/cccaa.json171 teams · 0 players · 88 KB · source checked 2026-09-19sha256 aba1fd849a082e471c4861469a15a77514013b396cbc715e64c1911c4b247812
- Tier Adata/directory/sources/mls-next-ad.teams.json158 teams · 146 KB · source checked 2026-09-19 · team-level view of mls-next-ad.jsonsha256 4c8f26bfc466e7ea612e5deded95bdf7c83a4fe154969e364138eb62b5260350
- Tier Adata/directory/sources/mls-next-hg.teams.json152 teams · 196 KB · source checked 2026-09-19 · team-level view of mls-next-hg.jsonsha256 c99edf720ac93132f4fa376f79542d6da71fde61740cf390beb25bbbeb2a5f3c
- Tier Adata/directory/sources/mls-next-pro-stats.json1,213 records · 421 KB · source checked 2026-09-19sha256 f61931194afa23f3a79ed165368db383e921dfee5674370717a8a317a6ba0799
- Tier Adata/directory/sources/mls-next-pro.json30 teams · 1,157 players · 643 KB · source checked 2026-09-19sha256 370d7e2fa5cde09c09262b8d1fd8e0e32cf38f74a5cfeb694954d9b65f820dc0
- Tier Adata/directory/sources/naia.json377 teams · 0 players · 178 KB · source checked 2026-09-19sha256 1f728c74f1fc99ca34df3b0d9277f4a9e259644c9529eaa401c104f7985a4be1
- Tier Adata/directory/sources/ncaa-d2.json465 teams · 0 players · 278 KB · source checked 2026-09-19sha256 bd42cf5b3b350f47c1244a2190b798bb915654d6935defd6e34e4249e1be9f00
- Tier Adata/directory/sources/ncaa-d3.json822 teams · 0 players · 490 KB · source checked 2026-09-19sha256 39c8569d4e787748205058e8b234d08912895f2b1303946679e72ee5a14c3409
- Tier Adata/directory/sources/njcaa-d1.json164 teams · 0 players · 108 KB · source checked 2026-09-19sha256 40ea69f95d0e7f158cdee792fa2c2ac3ba55c3254eef46917882ca9bfac2a92f
- Tier Adata/directory/sources/njcaa-d2.json219 teams · 0 players · 145 KB · source checked 2026-09-19sha256 8981c3a9ea3359bb3013507edb2a271df15c67b54470ff0c4823f1733d55b202
- Tier Adata/directory/sources/njcaa-d3.json118 teams · 0 players · 79 KB · source checked 2026-09-19sha256 fb7f0c118fb1dbe09436bc076873a7388fb22f1b640ac269bd27f00541200fc5
- Tier Adata/directory/sources/nsl-stats.json182 records · 64 KB · source checked 2026-09-19sha256 411e219ec2d174211603cd4db36cb6a2d49a0637432a38d44bd3d2439258ce43
- Tier Adata/directory/sources/nsl.json6 teams · 141 players · 66 KB · source checked 2026-09-19sha256 f252f5738c14100f8837eb3f4004a3263bfad9a4c5c630cff1c57c6983a6dd39
- Tier Adata/directory/sources/nwac.json56 teams · 0 players · 29 KB · source checked 2026-09-19sha256 a1eaf41d3221ca97b93a15e05dc3932c9b9fde6516bcb872897672d95ce4b45a
- Tier Adata/directory/sources/nwsl-stats.json470 records · 176 KB · source checked 2026-09-19sha256 09e0a72bb548f2413c0e00a85b47a645adc6188b1f655bd0e835416fdc507f11
- Tier Adata/directory/sources/nwsl.json16 teams · 423 players · 326 KB · source checked 2026-09-19sha256 50e1996aaa162a3335c57ab1f42cf0797f4aa14d826956db362412b127a1e288
- Tier Adata/directory/sources/uscaa.json41 teams · 0 players · 22 KB · source checked 2026-09-19sha256 2a41a358ce8ee9734460033c8029e517ed948e064fe1753dacee03860b8660bf
- Tier Adata/directory/sources/usl-championship-stats.json0 records · 858 bytes · source checked 2026-09-19sha256 92a47ad18cc654251ff11a66d38a1aa97fdc694ef8b49fa1dd245251cc05c6c5
- Tier Adata/directory/sources/usl-championship.json25 teams · 564 players · 269 KB · source checked 2026-09-19sha256 632d8c30430d237c1f356b670cf131f79d9ca2413c4f90971e85ec628d0ce8b8
- Tier Adata/directory/sources/usl-league-one-stats.json0 records · 856 bytes · source checked 2026-09-19sha256 e68860c8707a9e284749aef4eaed4147b3a3dbf7940d8baed95b2cef94ec8a91
- Tier Adata/directory/sources/usl-league-one.json17 teams · 364 players · 173 KB · source checked 2026-09-19sha256 91b6157d35bb1d9f2e6b24159e3507ea62c507a7f3d26adad85ced048c575ad4
- Tier Adata/directory/sources/usl-super-league-stats.json0 records · 858 bytes · source checked 2026-09-19sha256 bd1ba72a494c001c277421029d2d3caadcf890f222c1599b9dca9766d37ebeeb
- Tier Adata/directory/sources/usl-super-league.json8 teams · 181 players · 88 KB · source checked 2026-09-19sha256 079f7f044330c09c627cc86477e1e508be265edb4d5556f262a03454d23d04aa
- Tier Bdata/georgetown-cohort.json27 members · 14 KBsha256 034bf6a96b8fd2163c541ff6e5a1659cb4666340a266a114cf34e5a0182edb57
- Tier Adata/lafc-roster.json31 players · 6 KB · source checked 2026-09-17sha256 13a1fc5cf72261bff233b0e9641c431578a921b8a2d5bb7e9b76379e09eaca13
- Tier Adata/lafc-season.json34 players · 14 fixtures · 38 KB · source checked 2026-09-17sha256 12b3c8a3ee18b3e2eca496004444e672e22481d53f5aea2efe671d5bddc038da
- Tier Adata/match-history.json372 records · 48 KBsha256 aec7f494d6d991e31f9570dc1240758b6ba9158f61c4efd54820f78277d7d5a0
- Tier Adata/mls-curated-stats.json33 players · 19 KBsha256 87f1ae45fcb521ae24af5f4ae2559b5bfe59fe5855777eac398990b30c03ef56
- Tier Adata/organization-brands.json248 brands · 84 KBsha256 e5f79db72e3f67d0e3cddda5e594394e24fa83204069dfd63da33edc396fb6a1
- Tier Adata/scout-performance.json826 statsByPlayerId · 138 KB · source checked 2026-09-18sha256 fddee524ec32e3722c05a1898142316728d1324f3dee58914432f24e3f14498c
- Tier Bdata/spotlight-stats.json7 players · 5 KB · source checked 2026-09-17sha256 19626b80b5a84391d1fedaaf6e74b5e19423a76981a2306e5445b231ab56febf
- Tier Adata/youth/mls-next.json180 brackets · 6 ageGroups · 379 KB · source checked 2026-09-19sha256 6685a576799b41098def915bdc294c88d20a92e63d2cc9c2204b78f276243421
What the tiers mean, and what is left out on purpose
Tier A (37 files, 8.9 MB): official professional records and team-level college and youth data. These may be stored permanently. Professional players who were under 18 when the data was collected have their photo and birth date removed first.
Tier B (3 files, 7.8 MB): college player rows. Photos, hometowns, high schools and social handles are removed. Full files go only to places that can honor a removal request; permanent stores and blockchains get the fingerprint alone.
Never included: member accounts, guardian and claim records, messages, player-level records for youth and high-school athletes, editorial biographies, third-party social posts and video, game ratings and third-party market values. These are not read, not fingerprinted and not exported. Permanent storage cannot honor a deletion request, so anything a person may one day ask us to remove stays out.
- data/directory/college.slim.jsonDerived runtime projection of data/directory/college.json, which is the canonical record and is exported (tier B).
- data/directory/expansion.jsonDerived build artifact. The canonical records are the per-competition files in data/directory/sources/.
- data/directory/mls-fc27.jsonEA SPORTS FC ratings are proprietary to Electronic Arts; licensing not cleared.
- data/directory/sources/mls-next-ad.jsonYouth or school source file: only the team-level view (mls-next-ad.teams.json) is exported. Player rows, if any, are dropped before hashing.
- data/directory/sources/mls-next-hg.jsonYouth or school source file: only the team-level view (mls-next-hg.teams.json) is exported. Player rows, if any, are dropped before hashing.
- data/ea-ratings.jsonEA SPORTS FC ratings are proprietary to Electronic Arts; licensing not cleared.
- data/market-values.jsonThird-party market value estimates; provider terms do not allow republication.
- data/match-squads.jsonOfficial squad rows are interleaved with EA SPORTS FC ratings. The official rosters are already covered by data/directory/mls.json.
- data/public-people.jsonEditorial biographies written by AthleMix about real people; mutable by design and subject to correction or removal requests.
- data/rating-history.jsonHistorical game ratings from third-party rating databases; licensing not cleared.
- data/reels.jsonThird-party video content references owned by their publishers.
- data/scout-players.jsonJoins official identities with EA SPORTS FC ratings and market values. The official records are already covered by data/directory/mls.json and mls-stats.json.
- data/social-posts.jsonThird-party social media content (links and captions owned by their authors).
- d1://am_members, am_guardians, claims and every other Cloudflare D1 tableMember, guardian and claim records. The exporter has no database access and never reads app/api/export output.
- youth and high-school player-level records (any source)Minors. Team-level records only; player rows and youth stats files are stripped or skipped before hashing.
- uploaded media (R2) and public/ imagesPhotos, logos and member uploads are referenced by URL only, never copied.
Check a file yourself
Choose any file from a published snapshot, or the manifest itself. Your browser works out the fingerprint on your device and compares it with the manifest. The file is never uploaded.
Verify without any AthleMix code
Everything below uses standard tools. SHA-256 is built into every operating system.
- Fingerprint the manifest. Compute the SHA-256 of manifest.json exactly as downloaded. It must equal the manifest fingerprint above, and it is the value any timestamp or on-chain anchor commits to.
shasum -a 256 manifest.json
- Fingerprint each file. For every entry in
files, the SHA-256 of the file’s bytes must equal itssha256, and its length must equalbytes. Compressed copies (.gz) are for transport only: decompress first.gunzip -c mls.json.gz | shasum -a 256
- Know the canonical form. Files are JSON in RFC 8785 canonical form: object keys sorted by UTF-16 code unit, no whitespace, numbers and strings written the way JavaScript’s JSON.stringify writes them, arrays in source order, UTF-8, no byte-order mark, no trailing newline. A reformatted copy must be re-canonicalized before hashing.
- Build the leaves. For each file: leaf = SHA-256( byte 0x00 ‖ the path as UTF-8 ‖ byte 0x00 ‖ the 32 raw bytes of the file’s SHA-256 ).
- Build the tree. Sort leaves by path, comparing raw UTF-8 bytes. Pair neighbours left to right: parent = SHA-256( byte 0x01 ‖ left ‖ right ). If a level has an odd number of nodes, the last one moves up unchanged. Repeat until one value remains. That value must equal
merkle.root. - Walk the chain. If
previousis not null, the SHA-256 of the previous snapshot’s manifest.json must equalprevious.manifestSha256. Repeat back to the first snapshot. Timestamping only the newest manifest therefore covers all of them. - Check the timestamp, when one is listed above. An OpenTimestamps proof (.ots) shows the manifest fingerprint was committed to a Bitcoin block, so the manifest existed no later than that block.
ots verify manifest.json.ots
A fingerprint proves a file has not changed since the snapshot. It does not prove the original source was right. Every record keeps its own link to the official page it came from, so you can check that too.
Snapshot history
- 2026-09-19-0eb718d40 files · 16.7 MB · follows 2026-09-19-fcd9d86manifest bdde48acd09eff7ce3c35b48af557d7663b15751c2b352ef9c979300c2da9248manifest.json ↓
- 2026-09-19-fcd9d8638 files · 16.6 MB · first snapshotmanifest cea96d04d377587f8ba9b9f1fe8dc45b722b95aefe3a9fdf1330909e73f5859emanifest.json ↓