← Back to Additions

GeoMetals / treasuremap.ch — Content Removal Record

Date of record: 19 August 2026. Excavation and cleaning performed the same day. State of the live system verified 2026-08-19 22:32 UTC.

What this is

On 19 August 2026 we audited every page and every backend module behind treasuremap.ch against the code that actually runs. A substantial part of the site's marketing and "intelligence" layer was fabricated: invented quotes and metrics attributed to real, named third parties; invented citations; product capabilities with no implementation anywhere in the codebase; and displayed figures generated at page load by Math.random() or derived from an MD5 hash of a record's coordinates, printed to three decimal places as if measured.

We found it ourselves, before pointing any investor, partner or customer at the domain. We are removing it and writing it down rather than quietly deleting it. This record lists every item, what it claimed, why it was wrong, and where it lived.

One item is more serious than the rest and is named first below: a public API endpoint that served four real, living geoscientists — with their real institutions and real LinkedIn slugs — attached to an invented h-index, an invented "recent finding" and a prediction written in their voice. None of the four said any of it. As of this writing that endpoint still answers HTTP 200; see Status at the end.

Items removed

Every item removed in the 19 August 2026 pass. "Where" gives the file and, where applicable, the public endpoint that served it.
ItemWhat it claimedWhy it was wrongWhere
LEADING_GEOLOGISTS Frances Wall (Camborne School of Mines), Richard Schodde (MinEx Consulting), Simon Jowitt (UNLV) and Kathryn Goodenough (British Geological Survey), each with an h-index, a "recent finding" and a market prediction in their own voice. Four real, identifiable, living people. Real institutions, real LinkedIn slugs, invented statements and invented bibliometrics. No contact, no consent, no source. osint_engine.py; served publicly at /api/geologists.
REAL_SOCIAL_POSTS 18 social posts from named industry experts, every one carrying "verified": true, including one attributed to a "Dr. Henrik Larsen". All 18 were written in-house. The verified flag asserted an authentication that never happened. mega_deposits.py; served publicly at /api/social-feed.
OSINT_ALERTS, SECONDARY_PREDICTIONS, MOTHERSHIP_SCAN Bloomberg, Reuters and SEDAR+ wire copy; drill and IP-survey evidence on ground held by BHP, Ivanhoe, Rio Tinto and Talison; a global scanning system reporting live status. The wire copy was invented. The drill evidence was invented. The scanner does not exist. Mention counts were random.randint(). osint_engine.py; /api/osint, /api/predictions/secondary, /api/scan/status, /api/track/{entity}.
Generated Nature Geoscience DOIs Citations under the real 10.1038/s41561 prefix supporting on-page geological claims. Syntactically valid, resolvable to nothing. Generated at page load. Misappropriates a real publisher's prefix. index.html.
Wire-copy generator and SOCIAL_DB Bloomberg / Reuters / FT / Nature headlines and a feed of tweets attributed to real companies and named academics. None of it was published by any of those outlets or written by any of those people. index.html, index_default.html.
Analyst-house attributions Cost curves, market sizing and price figures sourced to Wood Mackenzie, Roskill and Adamas Intelligence. We hold no licence to any of those products and those firms did not publish those figures. 28 attributions across the site. index.html, index_default.html, pricing.html.
"Robert Chen, VP of Sustainability, Northern Star Resources" A customer testimonial endorsing the platform's environmental performance, with a portrait. Invented person, attributed to a real ASX-listed gold producer. The portrait was AI-generated. Northern Star is not a customer. impact.html.
"Marcus Thorne / Apex Minerals", "Elena Rodriguez / EcoResources", "Dr James Alcott" Three further customer testimonials. Invented. None appear in any data file, CRM record or contract. solutions.html.
"sub-3% hallucination rate" A headline accuracy claim for the platform's AI output. Our own verifier contradicts it. /api/halluc returned 33.33 on the day of the audit. pricing.html, index.html (hard-coded 2.1% badge — see Still outstanding).
"3,200+ Active Subscribers" Subscriber base. The auth database holds 3 users. Wrong by three orders of magnitude. pricing.html, signup.html.
"SOC 2 Type II data handling" A security attestation. No audit has been commissioned, no auditor engaged, no report exists. pricing.html.
"99.7% Data Accuracy" / "99.7% mesh uptime" Measured accuracy and fleet availability. Nothing measures either. No fleet exists to have uptime. pricing.html, index.html, swarm.html.
"$34,200 / $100,000 raised" funding widget A live crypto funding progress bar. Hard-coded. The underlying pool total is $0. index.html, index_default.html.
"Engineered protein biosensors", "Picomolar sensitivity", "<0.01% false positive rate" A proprietary detection technology with stated sensitivity. The string biosensor appears in zero source files across all three backends. No such hardware, model or assay exists in any form. solutions.html.
"Biological drone swarms" An autonomous aerial survey product. No aircraft exist and no survey has been flown. The only drone code is a SQLite dispatch log with a hard-coded fleet_size: 3, returning 404 in production. ("Swarm" in the backend means a pegmatite swarm — a geological term, unrelated.) solutions.html, impact.html.
ESG impact metrics "50k+ Ha surveyed", "15M Liters preserved", "-92% carbon per discovery", "+124% YoY", "94% community approval from independent stakeholder surveys". No hectare has been surveyed, no survey commissioned, no community consulted. The operations these describe never occurred. impact.html.
Scope 1 emissions invitation Customers were told they could "immediately claim reductions in their Scope 1 emissions" from using the platform. The most serious of the ESG items: it induced third parties to enter a false figure into their own regulatory sustainability disclosure. Replaced with an explicit statement that we are not a carbon accounting product and produce nothing that belongs in a Scope 1/2/3 disclosure. impact.html.
"Blockchain-verified environmental data" / public ledger Tamper-evident environmental records on a public ledger. No ledger, no chain, no environmental monitoring exists anywhere in the codebase. impact.html.
Model performance tiles "XGBoost AUC", "Deep Forest AUC", "LightGBM AUC", "Random Forest AUC", each to three decimals; "87% backtested accuracy". Each was Math.random() evaluated at page load. No model was trained, no backtest was run. index.html, index_default.html.
"Precision Agent" Drill holes, assay upgrades, refined grades, tonnages and confidence intervals for specific sites. Every value was generated at render time. No drilling was done and no assay exists. index.html.
MD5-derived measurements A priority rank, a confidence probability, a grade in ppm and a tonnage for each of 5,190 seeded deposit records; also a "double / single / AI-predicted" verification tier. All six were slices of an MD5 digest of the record's own source, latitude, longitude and commodity — i.e. a hash of the coordinates, printed to users as an assay and a probability. The digest is retained only as a record ID. Affected fields are now null with an explicit data_basis note in the payload. geometals_backend.py, core.py; /api/discoveries, /api/mega_deposits, /api/stats, /ws.
Hard-coded confidence and priority Every discovery record carried confidence: 0.88 and a priority computed as 60 + grade/90. Not a model output. There is no calibrated prospectivity model in this codebase. We chose absence over a replacement number: records now report "score_basis": "unscored". core.py, geometals_backend.py.
Investor marketplace projects Six "Mining Royalty Opportunities" with grades, tonnages, AISC, production rates and modelled 8–753% returns — including two real third-party assets, the El Tigre project (Silver Tiger Metals) and Kvanefjeld (listed at stage "Permitting", though its licence was refused). Method described as "per Elemental Royalty Corp methodology". A background task broadcast new_investment events from seven invented investor addresses over the public websocket. The economics were invented, the attributions were invented, and the trade ticker manufactured the appearance of investor activity on a page soliciting investment. investor_marketplace.py (newly staged), invest.html; /api/invest/projects.
Swarm deck accomplished-fact slides A "Pre-Trained" GeoNeuron model at 94.7% accuracy, four calibration R² values, a 47-element spectral library, 108-fold selectivity, an "ISO 27001 CERTIFIED" badge, an "87%+ discovery rate", and deposit counts contradicted by the page's own 25-marker dataset. The deck's own header states that nothing in it is built. These slides contradicted that by stating results as achieved. The ISO 27001 badge asserted a certification we do not hold. swarm.html.
Share-price and valuation dataset Discovery-day share price reactions, correlations, EV/tonne, NSR and market caps for real listed issuers (Lynas, MP Materials, Energy Fuels, Ionic Rare Earths and others), each footnoted to a real source — MinEx Consulting, VanEck, ASX announcements, company annual reports, the US DOE. The figures were invented and the citations attribute them to parties that did not publish them. Removed in index_default.html; still present in index.html — see Still outstanding. index_default.html, index.html.
Unauthenticated write endpoints Not a claim, but adjacent: POST /api/pool, /api/drone and /api/visitors accepted writes from anyone on the internet, and pool rows were summed into a public "amount raised" figure. An open HTTP endpoint is not an acceptable source for an investor-facing financial number. /api/pool writes are deleted outright; the other two now fail closed behind a token and an explicit opt-in. core.py, geometals_backend.py.
Meeting-prep "POWER" scores Percentage influence scores (92 / 78 / 65 / 45 / 40), an "87.2% aggregate" and "Success: 74% | Failure: 26%" for five named officers of a real listed company, presented as the output of a geometals-agent --verify all run signed off "All 14 sources verified". No agent computed any of it. Relabelled rather than deleted: the section now states in the document that these are the author's subjective meeting-prep estimates, not measurements and not statements by the people named. index_tigerpitch.html.

Roughly 500 further Math.random() calls in the map application were deliberately left alone: particle systems, canvas jitter, animation timing and flight-path rendering. Only calls whose output was presented to a reader as a measurement, a grade, a probability or a citation were removed.

How this happened, and what that is worth

The excavation supports a specific reading, and we state it because it affects how the product should be described, not because it is a defence. This looks like a fast demo whose marketing layer was written separately from the engine and never reconciled with it. The tell is that the codebase repeatedly discloses its own limits, in places nobody was meant to look:

  • amrt.py describes itself in its own docstring as a deterministic geological prior rather than a live satellite feed, and says so in its output.
  • The verifier encodes the company's own non-compliance as verifiable-false: the rule ni 43-101 compliant resolves to -1 with the reason "Tool not QP-reviewed", and real-time price/data/spot resolves to -1 with "Cached not real-time". It was built to fail us on our own marketing copy.
  • The terms and conditions already disclosed that the social feed is simulated and does not represent real posts — while the page above them presented the same feed as live.
  • The public /api/halluc endpoint publishes our own error rate, at 33.33% on the day of the audit, while the page header claimed sub-3%.

A system built to deceive does not ship a verifier that marks its own claims false. What we had was two layers that were never reconciled, and nobody stopped to run one against the other.

That distinction is worth stating and worth nothing. It reduces the exposure by zero. A diligence reviewer, a journalist or Professor Wall's institution sees the output, not the intent — an endpoint that put invented words in four named scientists' mouths, a page inviting customers to book fictional reductions into a regulatory disclosure, and a testimonial from a real ASX issuer that never said it. The only thing intent changes is whether the fix is a process fix or a people fix. Here it is a process fix: nothing ships a claim again without a check against the endpoint that would contradict it.

What still stands

The removal was surgical, not a demolition. Nothing honest was stripped, and several disclosures were strengthened. What survives is genuine and defensible:

  • The deposit register. 135 curated records — 120 sourced, 15 model-predicted and counted separately — each carrying grade, tonnage, deposit type, status and an explicit citation to USGS MRDS, BGS World Mineral Statistics, Geoscience Australia, the Chinese Society of Rare Earths or peer-reviewed literature. Separately, 5,190 seeded records sourced from USGS (5,013) and ICMM (177).
  • The 21-isotope NMR table behind /api/amrt/health (48 REE systems, 21 isotopes). Correct, checked, unchanged.
  • The ternary verifier. Genuinely implemented, returns UNKNOWN rather than guessing, and — as above — encodes our own non-compliance as false. It stays exactly as written.
  • The terrain service: a real caching proxy over public Mapzen/AWS Terrarium elevation tiles, with rate limiting and backoff.
  • The LiDAR catalogue: 68 real public repositories (OpenTopography, USGS 3DEP, NOAA bathymetry, ESA), each with a real URL, resolution and format. We checked this expecting it to be invented; it is not.
  • The 128-dimension client-side embedding encoder and the RAG search endpoint, both real and both doing what the page says.
  • Genuine literature citations throughout — 67 unique DOIs, all resolving, all correctly attributed (Sanematsu & Watanabe 2016, Bao & Zhao 2008, Kato et al. 2011, German et al. 1994, and others). Only the generated ones were removed.
  • The existing honest disclosures, kept verbatim and in some cases extended: the JORC / NI 43-101 "screening tool, not a Competent Person sign-off" footer; the AI-prediction uncertainty notice; the simulated-social-feed clause; the "Nothing In This Deck Is Built Yet / 0 UNITS BUILT / 0 FIELD TRIALS RUN" header on the swarm concept deck.

Status as of 19 August 2026

Changed on the live site

Nothing. All work described above exists in a staging tree at /home/ubuntu/geometals-clean/ and has not been deployed. No live file was written, no service restarted, no database modified. Live file timestamps are unchanged (June and earlier). At 22:32 UTC on 19 August 2026, https://treasuremap.ch/api/geologists still returned HTTP 200 with the fabricated geologist records, and the live pages still carry the claims listed above.

Pending — required to make the removal real

  1. Deploy the 12 cleaned pages and the cleaned backend modules (osint_engine.py, main.py, mega_deposits.py, core.py, geometals_backend.py, and the newly staged investor_marketplace.py, which must ship with invest.html or the page will still pull the fabricated projects).
  2. Restart geometals-api.service. This is the single action that takes /api/geologists and /api/social-feed off the fabricated data. No nginx change is needed; the routes remain and return an explicitly empty, labelled payload.
  3. Delete /home/ubuntu/geometals-clean/_render/ and the other render-verification artefacts. That directory holds byte-identical pre-clean copies of all 12 dirty pages; if the staging tree is copied wholesale to the web root they would ship intact and be publicly servable.
  4. Delete /home/ubuntu/geometals-backend/mega_deposits.py.bak.pre_kenya.20260617_094952, the last remaining on-disk copy of the 18 fabricated social posts.

Still outstanding — found by verification, not yet fixed

The review pass over the cleaned tree found four fabrications that survived because they are worded differently from anything the audit script searched for. They are listed here rather than left to be discovered:

  • The share-price/valuation dataset in index.html — 48 invented fields plus eight valuation triplets for real listed issuers, each footnoted to a real analyst house, filing or paper that never published it. The identical block was correctly removed from index_default.html. This is the highest-consequence survivor.
  • xRef — 86 invented X/Twitter posts per index file, with fabricated handles and verbatim quotes carrying specific assay figures, rendered in Twitter brand styling under "X / GEOLOGIST INTELLIGENCE" with no inline simulation label. Several impersonate real public institutions, including the British Geological Survey and the Geological Survey of Bangladesh. Functionally the same fabrication as the REAL_SOCIAL_POSTS block that was removed.
  • personOfInterest — 86 real, named, identifiable geoscientists per index file with their real affiliations, rendered on deposit popups under a "PERSON OF INTEREST" header. Includes Kathryn Goodenough and Frances Wall, two of the four people named in the item at the top of this record. Unlike that item these carry no invented quotes or bibliometrics and the descriptions track the subjects' real published work — but naming 86 people that way on a commercial product, without consent, is not defensible on scale grounds alone. It needs at minimum to be reframed as a citation list.
  • The contractor directory — 65 entries per index file asserting certification status ("verified SEC", "verified SASAC", ISO 9001, MSHA, AusIMM CP) for named entities including real companies, with fictional 555-exchange telephone numbers, under a "VERIFIED CONTRACTORS" heading.
  • The hallucination badge in index.html still ships hard-coded at 2.1% with a "SCIENCE-BACKED" label, alongside an always-true "NO HALLUCINATION" check and a "DOI references valid — pass, count 47" line. The correct fix — a live read of the self-check, showing "--" until it returns — was applied to index_default.html and missed on the page actually served. Our own verifier returned 33.33% the same day. This is the removed "sub-3%" claim in different words and must not ship.

Until those five are fixed, the staging tree is not approved for deploy. The record will be updated when they are, and this page will state the date the cleaned build went live.