GAIA — physical-world oracle gateway
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.
📖 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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aimarket_gaia_gateway-0.1.1.tar.gz.
File metadata
- Download URL: aimarket_gaia_gateway-0.1.1.tar.gz
- Upload date:
- Size: 49.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e10d9068141efff0a9225bb27a6d49edf2c86533a7e078a408c9ed5a54f9a049
|
|
| MD5 |
2273958fe5b64410918bc4308cc98e95
|
|
| BLAKE2b-256 |
2846c012d930cdb8ea67ab9eadd3a79fbc4a995fe41064d3cc7d8aed6d9805a1
|
File details
Details for the file aimarket_gaia_gateway-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aimarket_gaia_gateway-0.1.1-py3-none-any.whl
- Upload date:
- Size: 68.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
924a19d5eabde5e260cc1af3d345103bf7d172df62bc2acbf8aa4e887e0ea19f
|
|
| MD5 |
c6461b76b32beef2b8ba4238c5c93911
|
|
| BLAKE2b-256 |
401795923cebe14d2cd521e26d9f5711624f7e24ce8048d4a3505fc0e6707c8f
|