An open API service indexing awesome lists of open source software.

https://github.com/romanian-solana-developer-program-c3/greengait

πŸƒGreenGait is a Web3-powered rewards platform that transforms your physical movement into digital value. By wearing a smart shoe device, each step you take is securely recorded and converted into blockchain-based tokens, enabling you to earn as you walk β€” one step at a time.πŸƒ
https://github.com/romanian-solana-developer-program-c3/greengait

anchor-framework eco-friendly green-energy green-tech health iot rust smart-contracts smart-shoes solana sustainability wearable-devices web3

Last synced: 13 days ago
JSON representation

πŸƒGreenGait is a Web3-powered rewards platform that transforms your physical movement into digital value. By wearing a smart shoe device, each step you take is securely recorded and converted into blockchain-based tokens, enabling you to earn as you walk β€” one step at a time.πŸƒ

Awesome Lists containing this project

README

        

# πŸƒ GreenGait πŸƒ

**GreenGait** is a Web3 rewards platform that transforms physical activity into real digital value using the Solana blockchain. With a secure, Wi-Fi-enabled wearable device (ESP32), every step you take is cryptographically signed and submitted to the blockchain – all in real time.
πŸƒ + βœ… β†’ πŸ’° on-chain.

---

## Table of Contents πŸ“

1. [**Architecture Overview**](#-architecture-overview)
2. [**Features Implemented**](#-features-implemented)
3. [**Security Architecture**](#-security-architecture)
4. [**Project Structure**](#-project-structure)
5. [**Example Flow**](#-example-flow)
6. [**How to Run Locally**](#-how-to-run-locally)
7. [**What's Next?**](#-whats-next)
8. [**Author**](#-author)

---

## 🌐 Architecture Overview

πŸ”Ή **ESP32-WROOM-32D**
A microcontroller that simulates steps via a button. Sends step data via MQTT over TLS using mutual certificate authentication.

πŸ” **TLS Mutual Authentication**
Secure communication using custom client certificates and a trusted CA, protecting against unauthorized devices.

🧠 **Rust Backend Validator**
Receives messages via MQTT, validates authenticity (HMAC + timestamp), then logs valid steps on-chain via a Solana smart contract.

⛓️ **Solana Anchor Program**
Deployed on Devnet. Uses Program Derived Addresses (PDAs) to store step data per user per day. Tokens are minted automatically every 3 steps.

πŸ“‘ **EMQX Broker (Google Cloud VPS)**
A hardened MQTT broker with TLS, ACL rules, and certificate-based access control.

πŸ–₯️ **Frontend Interface**
Visualizes your step history and blockchain rewards in a simple dashboard.

---

## βœ… Features Implemented

* βœ… **ESP32 device** with WiFi + MQTT + TLS client auth
* βœ… **TLS mutual authentication** via custom certificates
* βœ… **HMAC-SHA256** signature generation on device
* βœ… **JSON payload** with: `steps`, `timestamp`, `nonce`, `signature`
* βœ… **Rust backend**:

* MQTT TLS client
* HMAC & timestamp validation
* PDA-based step tracking and token minting
* βœ… **Solana Anchor program** with `log_step` instruction
* βœ… **Solana Devnet** deployment and testing

---

## πŸ” Security Architecture

* HMAC-SHA256 signed payloads (shared secret)
* Timestamp validation to prevent replay attacks (Β±30s)
* TLS mutual authentication (ESP32 ↔ EMQX ↔ backend)
* EMQX Broker enforces certificate-based access and ACL rules
* Backend runs on a hardened Google Cloud VPS with TLS
* PDA ensures unique, tamper-proof on-chain logs per `(user, day)`

---

## πŸ“ Project Structure

```
GreenGait/
β”œβ”€β”€ backend/ # Rust backend (MQTT client, validation, blockchain interaction)
β”œβ”€β”€ solana_program/ # Anchor smart contract + TypeScript tests
β”œβ”€β”€ solana/ # CLI scripts, account utilities, program deploy
β”œβ”€β”€ frontend/ # (WIP) UI for displaying step history and rewards
β”œβ”€β”€ firmware/ # ESP32 Arduino code (WiFi, MQTT, HMAC)
β”œβ”€β”€ docs/ # Arch-Diagram + PPT Presentation + Logo
└── README.md # You're here!
```

---

## πŸ” Example Flow

1. Press the button β†’ ESP32 sends a signed JSON payload
2. EMQX broker securely forwards it to the backend
3. Backend verifies the HMAC + timestamp β†’ logs it on-chain
4. If steps are divisible by 3, a token is minted
5. Frontend displays user stats (WIP)

---

## πŸ›  How to Run Locally

### 1. Flash the ESP32

Upload `ESP32.ino` from `firmware/` using Arduino IDE.
Make sure `certificates.h` contains:

* `ca.crt`
* `client.crt`
* `client.key`

### 2. Start the Rust Backend

```bash
cd backend
cargo run
```

Make sure these files exist in `certs/`:

```
ca.crt
client.crt
client.key
stepmint-validator.json (Solana keypair)
```

### 3. Run the Solana Tests

```bash
cd solana_program
anchor test
```

---

## 🌟 What's Next?

* [ ] 🧠 PDA optimization
* [ ] πŸ’Ž NFT/token design for major milestones
* [ ] 🎨 Dashboard UI with wallet connection and real-time stats
* [ ] πŸ”„ ESP32 OTA firmware delivery
* [ ] πŸ›‘οΈ Replay prevention & abuse detection
* [ ] πŸ”‹ Connection with energy harvesting system
* [ ] πŸ›°οΈ GPS Accuracy
* [ ] πŸ—„οΈ User Database

---

## πŸ‘€ Author

**Robert PanΘ›a**

MSc Student in Cybersecurity at Technical University of Cluj-Napoca

* πŸ“§ [LinkedIn](https://www.linkedin.com/in/robert-panta/)
* 🌐 [GitHub](https://github.com/RobCyberLab)

---

> πŸƒ *GreenGait – where every step counts… on-chain, securely, and sustainably.*