Inspiration
Coastal analysts need to decide which observations deserve a source check before using a dataset in a report. Our earlier review of a Jeju monitoring report highlighted how observation conditions can be lost during transcription. Heston (2026), PLOS Climate already combines temperature anomaly analysis with a conceptual blockchain verification layer.
Our implementation focus is an executable analyst workflow with ranked review queues, row-level mismatch locations, and browser-only file checks tied to an actual local EVM record.
What it does
CoastProof checks whether a CSV matches a recorded version and separately ranks temperatures for human review. The original NOAA file shows Match. A deliberately edited file shows Mismatch and the changed date, CSV line, field, and before/after values. Analysts can review the top 5, 10, or 20 model scores, mark rows, and export a JSON evidence record. The static app runs without an application server, account, or wallet. Matching a file does not establish that its observations are true.
How we built it
New application, training, contract, and test code was written for this event with Codex assistance. Python fits a two-harmonic seasonal regression to 365 available NOAA CoralTemp values from 2024 near Jeju. Five coefficients and robust residual parameters are exported as JSON; the browser scores 363 held-out 2025 values. TypeScript handles CSV validation, exact-byte SHA-256, and row comparison. A Solidity registry stores versioned hashes, URIs, block timestamps, and submitters. Hardhat executed the contract on a local node and exported a real transaction receipt for the static site.
Challenges
A signed file can already establish integrity and publisher authentication when verification keys are trusted. It may be sufficient for one publisher. Independently operated organizations could use a shared public ledger to agree on an append-only version order and common public timestamps without choosing one institution's server.
Our contract demonstrates consecutive, non-overwritable versions only on a local EVM. Its block time is not an independent public timestamp. The operator can replace the static receipt and site together, so this demo does not provide independent multi-institution trust.
Losing a signing key does not erase existing commitments while the chain is retained. This contract has no publisher-key rotation: a replacement key cannot append to the existing dataset. Retaining signed files and trusted public keys can also preserve their verifiability; durability is not unique to a chain.
Accomplishments
36 automated tests passed with 0 failures. A seeded stress test changed 36 of 363 held-out values by +6 or -6 degrees C (seed 20261025). The seasonal model achieved precision 73.47%, recall 100%, and F1 0.8471: 36 true positives, 13 false positives against the constructed labels, and 0 false negatives. The entirely unchanged holdout also produced 17 review signals. These are synthetic stress-test results, not real-world fault labels or measured climate impact.
What we learned
File integrity and scientific plausibility answer different questions. An unchanged value can need review, and a changed file can contain a legitimate correction. Source dates, missing observations, exact bytes, and model parameters must remain visible. Practical review steps are our implementation contribution; the underlying anomaly-plus-ledger idea is established prior work.
What's next
Test the workflow with real coastal analysts and independently operated data producers. Evaluate labeled field errors, subtle drift, and seasonal changes. Assess whether signed records are sufficient before adding a public anchor. A shared public deployment would also require governance, durable data access, and a reviewed key-recovery or rotation design. No partner, adoption, emissions savings, or public-chain deployment is claimed.
Built With
- ethers.js
- hardhat
- javascript
- node.js
- numpy
- python
- solidity
- typescript
- vite
Log in or sign up for Devpost to join the conversation.