A robust Clarity smart contract for decentralized air quality monitoring on the Stacks blockchain. This contract enables organizations and individuals to register air quality sensors, submit pollution readings, and receive real-time alerts when air quality deteriorates.
The Community Air Quality Monitoring Network provides an immutable, transparent platform for tracking environmental air quality at the community level. All readings are recorded on-chain with blockchain-level timestamps, ensuring data integrity and historical accountability.
- Monitor Registration - Register air quality sensors with geographic coordinates (latitude/longitude)
- Reading Submission - Submit AQI values along with PM2.5 and PM10 measurements
- Automatic Alerts - Generate alerts when AQI exceeds quality threshold (≥150)
- Real-Time Data Access - Retrieve latest readings instantly for quick monitoring
- Statistical Analytics - Track aggregated monitor statistics (average, min, max AQI)
- Monitor Management - Activate/deactivate monitors as needed
- Authorization Checks - Only monitor owners can submit readings
- Input Validation - Comprehensive validation for all parameters
- Geographic Constraints - Latitude (-90 to 90) and longitude (-180 to 180) validation
- AQI Range Validation - Enforces AQI values between 0-500
- Error Handling - Specific error codes for debugging and monitoring
| Map | Purpose | Key | Value |
|---|---|---|---|
monitors |
Store sensor metadata | monitor-id | owner, location, coordinates, active status |
readings |
Historical air quality data | reading-id | AQI, PM values, timestamp, block height |
monitor-latest |
Latest reading cache | monitor-id | last reading ID, AQI, timestamp |
monitor-stats |
Aggregated statistics | monitor-id | total readings, avg/max/min AQI |
alerts |
Air quality alerts | alert-id | monitor ID, AQI value, alert level |
total-readings- Total readings submitted across all monitorstotal-monitors- Total registered monitorsalert-count- Total alerts generated
Register a new air quality monitor.
(register-monitor location latitude longitude)