Skip to content
Devooja

Devooja

StarkNET - IIoT Data NFT Validate

Created on 23rd November 2025

Devooja

Devooja

StarkNET - IIoT Data NFT Validate

The problem Devooja solves

Industrial IoT (IIoT) devices across manufacturing, energy, supply-chain, healthcare, and environmental industries generate massive amounts of operational data. However, this data is often transmitted without proper verification, allowing attackers, insiders, or misconfigured devices to send fake, altered, or manipulated sensor data into the system.

Such falsified data leads to:

❌ Wrong R&D decisions

❌ Incorrect operational analytics

❌ Faulty predictive maintenance models

❌ Risky safety and compliance evaluations

❌ Financial loss and wrong investments

❌ Zero traceability for who sent what data

Challenges we ran into

🚧 Challenges I Ran Into

  1. Receiving Unstable Sensor Data From the IIoT Device

The ESP8266 was sending noisy or incomplete air-quality readings through the serial port.
This caused corrupted JSON, missing values, and inconsistent uploads.

How I fixed it:

Added a newline-terminated protocol for every sensor message

Introduced buffer cleaning and retry logic on the Python backend

Added basic filtering and averaging to stabilise the sensor output

  1. IPFS Upload Failing Due to Invalid or Partial Data

Sometimes the Pinata API rejected the upload because the payload arrived before the sensor reading was fully parsed.

How I fixed it:

Implemented strict input validation

Uploaded only after successful checksum verification

Added exception handling + retry mechanism

  1. StarkNet Testnet RPC Not Responding / Rate Limiting

The biggest hurdle was interacting with StarkNet testnet.
RPC nodes were sometimes down, slow, or returned signature errors.

How I fixed it:

Switched to a stable Sepolia StarkNet RPC provider

Added automatic exponential backoff

Implemented transaction polling with timeout

  1. Smart Contract Rejected TokenURI Updates

While minting NFT metadata, the contract rejected some CIDs because of URI encoding issues.

How I fixed it:

Cleaned CID formatting

Ensured tokenURI string length matched Cairo contract expectations

Used a consistent IPFS prefix (ipfs://)

  1. Fake / Manipulated Data Detection Logic

One of my main goals was preventing fake industrial data.
Initially, any serial input—even spoofed—would get uploaded and minted.

How I fixed it:

Added a device-identity signature (simple hash-based validation)

Implemented timestamp signing before IPFS upload

Ensured every CID minted on-chain matches a validated, genuine device reading

This helped prevent false or manipulated sensor values.

  1. Syncing Frontend Dashboard With Real-Time Data

The client dashboard did not show new NFT updates instantly.

How I fixed it:

Added a WebSocket listener for NFT mint events

Queried StarkNet indexers for new token IDs

Auto-refreshed Pinata metadata without manual reload

  1. Debugging the Full Pipeline End-to-End

IIoT → Serial → Python → IPFS → StarkNet NFT → Dashboard
is a long chain — a single break stops the whole flow.

How I fixed it:

Added logging at each stage

Used small mock payloads for testing

Debugged layer-by-layer instead of all at once

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion

Builders also viewed

See more projects on Devfolio