Skip to main content

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

🌐 English · Русский · Español · Français · 中文 · Glossary

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
firms-fire-01 gaia.fire.read@v1 NASA FIRMS VIIRS (cite NASA) no
safecast-01 gaia.radiation.read@v1 Safecast (CC0) no
cybernews-jam-01 gaia.jamming.read@v1 CyberNews GNSS (CC BY 4.0) no
feeder-adsb-01 gaia.adsb.read@v1 Own dump1090 ingest GAIA_FEEDER_*
feeder-ais-01 gaia.ais.read@v1 Own AIS ingest GAIA_FEEDER_*

Full operator notes (5 languages): docs/LIVE-RELAYS.md. Add a sensor / pin (GAIA → ATLAS): docs/add-gaia-atlas-sensor.md (EN · RU · ES · FR · ZH).

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.

Metadata

Release files for aimarket-gaia-gateway 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aimarket-gaia-gateway 0.1.2
File Size Uploaded
aimarket_gaia_gateway-0.1.2.tar.gz 155.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aimarket-gaia-gateway 0.1.2
File Interpreter ABI Platform
aimarket_gaia_gateway-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 288.7 kB

Release files / aimarket_gaia_gateway-0.1.2.tar.gz

Download URL aimarket_gaia_gateway-0.1.2.tar.gz
Size 155.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9b782a8ec651c05dcbe06a5541add74f798410753d2402858a8a4c0013ece586
BLAKE2b-256 checksum
How to use checksums
d6396e00c058d4c6e76e36edebe061d465729a19570ad72b8c70a3d72894603a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / aimarket_gaia_gateway-0.1.2-py3-none-any.whl

Download URL aimarket_gaia_gateway-0.1.2-py3-none-any.whl
Size 133.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
51e83cb7190b969f9f40d66fd78bbc6c3a88a5db28da7f58bf5b01455ea58a7a
BLAKE2b-256 checksum
How to use checksums
294557aecaa8b0f3e19505ee7185530f1fbcab44388d10b1138862bb4e030a14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page