Skip to content

Repository files navigation

📖 Read-only mirror. gaia is published from the canonical AI-Factory monorepo. Pull requests are not accepted — any commit pushed here is overwritten by scripts/mirror_satellites.sh on the next sync. 🐞 Found a bug or have a request? Please open an issue.

GAIA — physical-world oracle gateway

CI Pages deploy Live demo status Landing GHCR package Python >=3.11 tests AIMarket v2 Ed25519 signing Test coverage License: MIT

GAIA is a physical-world oracle gateway that sells Ed25519-attested sensor readings from virtual IoT devices as paid AIMarket v2 capabilities, and serves a Metis-envelope-compatible /v1/verify so the hub's Pay-on-Verified escrow can settle them — an honest reading gets the provider paid, a lying sensor refunds the buyer automatically.

It is the ecosystem's third oracle class: math oracles prove computations, Metis judges LLM output, GAIA grounds settlement in physics. The demo fleet is simulated (two co-located weather stations sharing one site truth, an air-quality node, an energy meter — models imitate BME280/SDS011/SCD30/Shelly-EM-class hardware), but every wire surface — manifest, invoke, receipts, provider signature, verify envelope, W3C WoT Thing Descriptions — is the real one.

Live demo · Landing · GHCR

📖 Deep-dive (monorepo): docs/iot-physical-oracles.md 🌍 Live devices: gaia/devices/live.py 🎬 3D visualization: frontend/ (cd frontend && npm i && npm run dev)

Quickstart

# Container
docker pull ghcr.io/alexar76/gaia:latest
docker run --rm -p 9320:9320 ghcr.io/alexar76/gaia:latest

# From source (satellite checkout vendors oracle-core)
pip install -e vendor/oracle-core -e ".[dev]"   # or: pip install -e ../oracles/core -e ".[dev]"
python -m gaia.main                             # :9320

Poke it:

curl -s localhost:9320/.well-known/ai-market.json
curl -s localhost:9320/ai-market/v2/manifest

curl -s -X POST localhost:9320/ai-market/v2/invoke \
  -H 'Content-Type: application/json' \
  -d '{"capability_id": "gaia.weather.read@v1", "product_id": "gaia.gateway",
       "input": {"device_id": "ws-01"}}'

Live devices — relay real public sensors

Set GAIA_ENABLE_LIVE=1 to register real public-API relays alongside the simulators. Every relay uses the same Ed25519 attestation + plausibility path. Unreachable upstream → DeviceOffline → 503 / {ok:false}no debit. Upstream hosts are allowlisted (SSRF defence); invoke clients never supply a URL.

Device id Capability Upstream Key?
nws-01 gaia.weather.read@v1 NOAA/NWS api.weather.gov no
om-wx-01 gaia.weather.read@v1 Open-Meteo weather no
osm-01 gaia.air.read@v1 openSenseMap no
om-aq-01 gaia.air.read@v1 Open-Meteo air quality no
sta-01 gaia.air.read@v1 OGC SensorThings (Fraunhofer) no
openaq-01 gaia.air.read@v1 OpenAQ v3 yes (GAIA_OPENAQ_API_KEY)
uk-grid-01 gaia.grid.read@v1 UK Carbon Intensity no
usgs-quake-01 gaia.quake.read@v1 USGS GeoJSON feed no
noaa-tide-01 gaia.tide.read@v1 NOAA CO-OPS tides no

Full operator notes (5 languages): docs/LIVE-RELAYS.md.

curl -s -X POST https://iot.modelmarket.dev/ai-market/v2/invoke \
  -H 'Content-Type: application/json' \
  -d '{"capability_id":"gaia.grid.read@v1","product_id":"gaia.gateway",
       "input":{"device_id":"uk-grid-01"}}'

License

MIT — see LICENSE.

About

GAIA — physical-world oracle gateway: virtual IoT devices sold as Ed25519-attested, plausibility-verified AIMarket capabilities.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages