Inspiration
The wonderful UTRA Hacks Judges. We made this for YOU!!! Judging is a sin unless done by god. So we made the next best thing - the ORACLE. A hardware-to-blockchain bridge that uses manual Application-Layer Optimization to handle high-frequency telemetry ingestion via cryptographic state compression and batched Merkle-root anchoring. Judges can not only free themselves from the burden of making a wrong decision but also gamble on the result of our group's competence via a Streamlit based prediction market.
🤖 What it does
The Olympic Ledger is the world's first "trustless" autonomous biathlete. It solves the "Oracle Problem" for physical sports by cryptographically verifying robotic performance on the Solana Blockchain.
The system consists of three distinct layers:
❄️ The Athlete (Arduino Uno) An air-gapped robot that competes in the Biathlon (navigation + target shooting). Because it has no Wi-Fi (to prevent remote tampering/doping), it logs every wheel tick, sensor spike, and obstacle detection into a custom circular buffer in its internal RAM.
🔮 The Oracle (Python Bridge) When the robot docks at the "Re-upload Point," our bridge script performs a "Data Burst," sucking 500+ data points out of the robot in under a second. It acts as an Optimistic Verifier, checking the logs for "fouls" (e.g., speeding, wall collisions) before hashing the data.
The Casino (Olympimarket) A live Streamlit dashboard where users (Judges) can place bets on the robot's performance. Once the run is verified on-chain, the smart contract settles the bets instantly.
🛠️ How we built it
Arduino: The physical "athlete" driven by custom hardware integration for real-time sensing and actuation.
C++: The embedded brain handling PID control and our custom bit-packed memory logging system.
Python: The "Oracle Bridge" that orchestrates the serial handshake and cryptographic batching.
Solana: The immutable ledger used to anchor our "Proof of Run" validity proofs via a local validator.
Streamlit: The "Casino" frontend that visualizes telemetry and hosts the live prediction market.
Node.js: The backend tooling powering the local Solana test validator and CLI environment.
😤 Challenges we ran into
The "Data Doping" Problem: How do you trust a robot that isn't connected to the internet? We had to design a "Store-and-Burst" architecture (similar to how NASA talks to Mars rovers) to ensure data integrity without Wi-Fi.
Memory Starvation: The Arduino Uno has only 2KB of RAM. Our initial logs crashed the robot instantly. We had to optimize our data structure down to the bit level.
Hardware Hell: The axle kept breaking, we couldn't find screws, and our PID controller had a mind of its own.
Solana Integration: Learning that "high throughput" on a blockchain is still slower than a robot's 10ms control loop. This forced us to invent our "Telemetry Rollup" batching solution.
🏆 Accomplishments that we're proud of
We built a Layer-2 Scaling Solution for a toy robot.
The "Burst" sync actually works-watching the graph explode onto the screen after the run is incredibly satisfying.
It moves... mostly straight!
We successfully minted a "Proof of Run" transaction that links physical world data to a digital ledger.
🧠 What we learned
Use duct tape and hot glue. (It fixes axles).
The Oracle Problem is hard. Getting physical data onto a blockchain requires a robust "bridge" that is harder to build than the robot itself.
State Management: Synchronizing a C++ robot, a Python script, and a Rust-based blockchain taught us the pain (and joy) of full-stack integration.
⏩ What's next for The Olympic Ledger
Mainnet Launch: Deploying our betting market to the real Solana network.
Multi-Robot Support: Allowing multiple robots to race and "bet" on themselves using their own wallets.
Completing the robot... (Please don't look at the back wheel).

Log in or sign up for Devpost to join the conversation.