DEV Community

drdz23
drdz23

Posted on AI-assisted

I verified one sea buoy reading in public. Here's the step an AI agent can't do alone.

AI agents are starting to act on claims about the physical world: a delivery happened, a sensor read X, a shop was open. Below I verify one small real-world fact in public, with everything you need to re-run my check, and then show exactly where an agent gets stuck.

The claim

At 02:00 UTC on 9 October 2026, NOAA buoy 42056 in the Yucatán Basin reported a sea surface temperature of 30.1 °C and a sea-level pressure of 1010.7 hPa.

The evidence bundle

  • Observation time (the reading): 2026-10-09 02:00 UTC
  • When I retrieved it: 2026-10-09T02:34:20Z
  • Source: NOAA National Data Buoy Center, station 42056 (LLNR 80), "Yucatan Basin, 120 NM ESE of Cozumel, MX", 19.820 N 84.980 W.
    • Real-time file: https://www.ndbc.noaa.gov/data/realtime2/42056.txt, row beginning 2026 10 09 02 00
    • Station page: https://www.ndbc.noaa.gov/station_page.php?station=42056
  • Raw row as published: 2026 10 09 02 00 150 8.0 10.0 MM MM MM MM 1010.7 29.4 30.1 26.5 MM +2.0 MM (columns: wind direction 150°, wind 8.0 m/s, gust 10.0 m/s, pressure 1010.7 hPa, air 29.4 °C, water 30.1 °C, dew point 26.5 °C; MM = missing)
  • SHA-256 of my evidence text: 1f88afd100f4d5097866c8630a0e253f08aff54deaad4694a7cf769cad52d97f
  • Exact text I hashed (UTF-8, one line, no trailing newline):
NDBC station 42056 (Yucatan Basin, 19.820 N 84.980 W), realtime2 record 2026-10-09 02:00 UTC: WDIR 150 degT, WSPD 8.0 m/s, GST 10.0 m/s, PRES 1010.7 hPa, ATMP 29.4 C, WTMP 30.1 C, DEWP 26.5 C. Source: https://www.ndbc.noaa.gov/data/realtime2/42056.txt (row beginning "2026 10 09 02 00"). Retrieved 2026-10-09T02:34:20Z. Verdikta bounty 145, hunter 0x589952a6cD216F6971dAc0506DD695B8E5eF69C7.
Enter fullscreen mode Exit fullscreen mode
  • On-chain identifiers (Base): written for Verdikta bounty #145; my address 0x589952a6cD216F6971dAc0506DD695B8E5eF69C7.

Re-run it: save the text block above to a file without a trailing newline and run sha256sum, or in Node: crypto.createHash('sha256').update(text).digest('hex'). Then open the NOAA file and find the 02:00 row. The real-time file only keeps about 45 days; after that, the same record should appear in NDBC's historical data for station 42056.

Where an agent gets stuck

Walk through what a software agent can and can't do here:

  1. Fetch the file: easy. Any agent can download 42056.txt and parse the 02:00 row.
  2. Check my hash: easy. Pure math.
  3. Decide the reading is true about the sea: this is the seam. The agent never touches the water. It only knows that a file on a NOAA server says 30.1 °C. Whether the buoy's sensor was calibrated, whether it was even in position, whether the row was transmitted correctly: all of that is trust in NOAA, not verification.
  4. Prove when the claim was made: my only time anchor is this post's publication time. I did not write the digest on-chain myself, so you can't prove I didn't write all of this an hour later from the archive.

For an agent to act on this claim (pay an insurance trigger, close a shipping task), an on-chain AI verification layer would have to attest something narrow and checkable: "Independent arbiters each retrieved NOAA station 42056 after 02:00 UTC, each found WTMP 30.1 °C in the 02:00 row, and committed their answers before revealing them." That's the shape of what Verdikta already does for bounty grading: several arbiters commit hidden answers, reveal them, and the result is written on Base. The attestation turns "one agent read a file" into "several independent readers agree on what the source said, at a recorded time".

What my bundle does NOT prove

  • That the sea was 30.1 °C. It proves NOAA published 30.1 °C. A broken or drifting sensor gets through every check above.
  • When I observed it. Without an on-chain timestamp from before the archive existed, a liar could build this bundle afterwards.
  • That the source is the right one. A fake site with the same layout would pass a careless agent. You have to check the domain yourself.
  • Anything an attestation adds beyond the source. Even a perfect on-chain verdict only says "the arbiters agree on what NOAA said". The oracle problem moves; it doesn't disappear.

That's the honest point: verification layers make claims reproducible and timestamped. They don't make a single sensor trustworthy. For anything worth real money, you'd want two independent sources, such as a second buoy or a satellite product, before an agent acts.

Top comments (0)