{"id":30741789,"url":"https://github.com/priyanshpatel18/aeroscan-protocol","last_synced_at":"2026-04-13T12:01:50.239Z","repository":{"id":312715974,"uuid":"1048479098","full_name":"priyanshpatel18/aeroscan-protocol","owner":"priyanshpatel18","description":"A decentralized air quality monitoring system built on Solana with Ephemeral Rollups integration for efficient sensor data management.","archived":false,"fork":false,"pushed_at":"2025-09-01T14:30:00.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-01T16:12:11.571Z","etag":null,"topics":["anchor","chai","ephemeral-rollups","magicblock","rust","typescript"],"latest_commit_sha":null,"homepage":"https://explorer.solana.com/address/aeroPZ5LCkAQJ54nW1NDTA36Qqkrc9xZ42fMk87KRad?cluster=devnet","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/priyanshpatel18.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-01T14:02:09.000Z","updated_at":"2025-09-01T14:35:13.000Z","dependencies_parsed_at":"2025-09-03T17:47:19.579Z","dependency_job_id":null,"html_url":"https://github.com/priyanshpatel18/aeroscan-protocol","commit_stats":null,"previous_names":["priyanshpatel18/aeroscan-protocol"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/priyanshpatel18/aeroscan-protocol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshpatel18%2Faeroscan-protocol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshpatel18%2Faeroscan-protocol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshpatel18%2Faeroscan-protocol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshpatel18%2Faeroscan-protocol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/priyanshpatel18","download_url":"https://codeload.github.com/priyanshpatel18/aeroscan-protocol/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/priyanshpatel18%2Faeroscan-protocol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273534565,"owners_count":25122679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anchor","chai","ephemeral-rollups","magicblock","rust","typescript"],"created_at":"2025-09-04T01:02:12.199Z","updated_at":"2026-04-13T12:01:50.224Z","avatar_url":"https://github.com/priyanshpatel18.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aeroscan protocol\n\nA decentralized air quality monitoring system built on Solana with Ephemeral Rollups integration for efficient sensor data management.\n\n## Overview\n\nAeroscan is a blockchain-based protocol that enables secure, verifiable storage and management of environmental sensor data. The protocol tracks air quality metrics including PM2.5, PM10 levels, temperature, and humidity readings while leveraging Ephemeral Rollups for cost-effective and high-throughput data processing.\n\n## Features\n\n- **Real-time Air Quality Monitoring**: Track PM2.5, PM10, temperature, and humidity\n- **Ephemeral Rollups Integration**: Efficient data processing with delegation capabilities\n- **Decentralized Storage**: Immutable sensor data records on Solana\n- **Event Emission**: Real-time notifications for sensor reading updates\n- **Authority-based Access Control**: Secure sensor data management\n\n## Architecture\n\nThe protocol consists of four main operations:\n\n### Core Instructions\n\n1. **Initialize**: Create a new sensor reading account for a user\n2. **Update Reading**: Submit new sensor data readings\n3. **Delegate**: Move sensor data processing to Ephemeral Rollups for efficiency\n4. **Undelegate**: Return sensor data from Ephemeral Rollups back to base layer\n\n### Data Structure\n\nEach sensor reading contains:\n- **Authority**: The public key of the sensor owner\n- **PM2.5**: Particulate matter 2.5 microns (µg/m³)\n- **PM10**: Particulate matter 10 microns (µg/m³)\n- **Temperature**: Temperature reading (unit depends on implementation)\n- **Humidity**: Relative humidity percentage\n- **Timestamp**: Unix timestamp of the reading\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v16 or higher)\n- Solana CLI tools\n- Anchor framework\n- TypeScript\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/priyanshpatel18/aeroscan-protocol\ncd aeroscan-protocol\n```\n\n2. Install dependencies:\n```bash\npnpm install\n```\n\n3. Build the program:\n```bash\nanchor build\n```\n\n4. Deploy to devnet:\n```bash\nyarn deploy:devnet\n```\n\n### Environment Setup\n\nThe protocol is configured to work with:\n- **RPC Endpoint**: Helius Devnet\n- **Ephemeral Rollups**: MagicBlock Devnet\n- **Network**: Solana Devnet\n\n## Usage\n\n### Initialize Sensor Reading Account\n\n```typescript\nawait program.methods\n  .initialize(pm25, pm10, temperature, humidity, aqi)\n  .accountsPartial({\n    sensorReading: sensor_reading_pda,\n    user: wallet.publicKey,\n    systemProgram: SystemProgram.programId,\n  })\n  .rpc();\n```\n\n### Update Sensor Readings\n\n```typescript\nawait program.methods\n  .updateReading(authority, pm25, pm10, temperature, humidity, aqi)\n  .accountsPartial({\n    sensorReading: sensor_reading_pda,\n  })\n  .rpc();\n```\n\n### Delegate to Ephemeral Rollups\n\n```typescript\nawait program.methods\n  .delegate()\n  .accounts({\n    payer: wallet.publicKey,\n    sensorReading: sensor_reading_pda,\n  })\n  .rpc();\n```\n\n### Undelegate from Ephemeral Rollups\n\n```typescript\nawait program.methods\n  .undelegate()\n  .accountsPartial({\n    user: wallet.publicKey,\n    sensorReading: sensor_reading_pda,\n  })\n  .rpc();\n```\n\n## Program Addresses\n\n- **Program ID**: `aero8wSmn3uAj5g5jYq92Rd2SQv2MtGxu1ZXfysfFHX`\n- **Sensor Reading PDA**: Derived from `[\"sensor_reading\", user_pubkey]`\n\n## Events\n\nThe protocol emits `SensorReadingEvent` whenever sensor data is updated, containing:\n- PM2.5 and PM10 levels\n- Temperature and humidity readings\n- Timestamp of the measurement\n\n## Testing\n\nRun the test suite:\n\n```bash\nanchor test\n```\n\nThe tests cover:\n1. Account initialization\n2. Base layer sensor data updates\n3. Delegation to Ephemeral Rollups\n4. Ephemeral Rollups sensor data updates\n5. Undelegation back to base layer\n\n## Use Cases\n\n- **Environmental Monitoring Networks**: Deploy sensors across cities or regions\n- **Industrial Compliance**: Track air quality for regulatory compliance\n- **Research Projects**: Collect verifiable environmental data for studies\n- **IoT Integration**: Connect physical sensors to blockchain infrastructure\n- **Data Markets**: Create marketplaces for verified environmental data\n\n## Technical Benefits\n\n### Ephemeral Rollups Integration\n- **Cost Efficiency**: Reduce transaction costs for frequent sensor updates\n- **High Throughput**: Process multiple readings without base layer congestion\n- **Flexible Processing**: Delegate data to rollups when needed, undelegate when required\n\n### Blockchain Advantages\n- **Immutable Records**: Tamper-proof environmental data\n- **Verifiable Data**: Cryptographically secured sensor readings\n- **Decentralized**: No single point of failure or control\n- **Transparent**: Public access to environmental data\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Submit a pull request\n\n## Security Considerations\n\n- Sensor readings are protected by authority-based access control\n- Only the sensor owner can update their readings\n- All transactions are signed and verified on-chain\n- Ephemeral Rollups provide additional security layers\n\n## License\n\n[LICENSE](LICENSE)\n\n## Acknowledgments\n\n- [Solana](https://solana.com/)\n- [MagicBlock](https://magicblock.xyz/)\n- [Helius](https://helius.com/)\n- [Anchor](https://anchor-lang.com/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpriyanshpatel18%2Faeroscan-protocol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpriyanshpatel18%2Faeroscan-protocol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpriyanshpatel18%2Faeroscan-protocol/lists"}