Orra: Your Tarot Reading, Backed by Pyth Data

Orra :eye:

Team: @emjayrentarou
Submitted: March 31, 2026

Answer Capsule

What if your tarot reading could be magical and verifiable at the same time? Orra turns live Pyth Price Feed data into market context, commits that snapshot on-chain, and uses Pyth Entropy for a fair card draw. Users get an experience that feels personal while delivering transparent data and trust they can verify.

What It Does

Most tarot apps feel generic because outcomes are opaque and disconnected from the moment. Orra links each reading to real-time Pyth data and on-chain proof, then uses Pyth Entropy to generate the card fairly. The result is a reading experience that feels meaningful, modern, and trustworthy.

Pyth Features Used

  • Price Feeds (on-chain or off-chain)
  • Entropy (randomness)
  • Both

Links

Screenshots / Media

I. Dashboard

Once you open Orra, you land on the dashboard where you can search assets, view live Pyth market signals, and scan the price chart. From there, click/tap Seek the Cards to start your reading flow.

II. Wallet Connect

Next, users enter the reading gateway, where they connect their wallet to continue. This step confirms identity before starting the on-chain tarot flow and unlocks the personalized reading journey.

III. Asset Selection

Users choose the asset for their reading, and Orra confirms the live Pyth feed before moving to the next step.

IV. Question Flow

Users complete a guided sequence of questions covering market situation, timing, and focus. Question paths adapt by asset category, so Orra tailors each reading before the on-chain draw.

V. Oracle Commit

Users confirm the reading fee and trigger the draw, which commits the live Pyth market snapshot on-chain and requests Pyth Entropy randomness.

VI. Card Draw

Orra reveals one card from the deck using Pyth Entropy randomness, producing a fair and verifiable result tied to the committed market snapshot.

VII. Reading Result

The final screen shows the revealed card, a market-grounded interpretation, and a verifiable on-chain receipt tied to the committed Pyth snapshot and Entropy draw. Card orientation is also derived from the same Entropy output, where a deterministic bit check sets upright or reversed.

VIII. Shareable Reading Card

The Download Reading button generates a share-ready image with the card so users can post their reading on social platforms or send it to friends.

IX. Reading History

Users can revisit past readings with full context, including interpretation, card outcome, and on-chain receipt details that verify the Pyth snapshot and Entropy sequence used for each draw.

X. Card Catalog

Here are all the cards you can possibly draw in Orra right now, with more to come in future updates. Have fun exploring and enjoy your readings! :>

PS: If you want to test the app, it is currently on Base Sepolia testnet. Drop your wallet address and I can send you some ETH. Thank you!!

If you run into any issues or bugs, or have ideas for improvements, please let me know.

Tech Stack

  • Framework/Language: Next.js 15, React, TypeScript, Tailwind CSS
  • Blockchain: Base (Sepolia default), Solidity 0.8.24, Foundry, wagmi, RainbowKit, viem, ethers
  • Agent Framework (if applicable): N/A (LLM provider integrations only)
  • Deployment: Vercel; contract deployed with Foundry

Content Contributions (Required)

Licensing

This project is licensed under Apache 2.0.

Eligibility Confirmation

  • I am 18+ years old
  • I am not located in an OFAC-sanctioned jurisdiction
  • I confirm this is an original work created during the hackathon period
  • I have read and agree to the Terms & Conditions

nice work mate,absolutely amazing

thanks, really appreciate the kind words! :grin:

very nice project! not a boring dashboard. sound and visuals creating unique vibe. i like it!

thanks chud joe! that’s exactly my goal, the unique tarot vibe :saluting_face:

Orra β€” Technical update: live oracle trivia, on-chain boosters, and fixes


How Oracle Trivia Clash builds questions (the pipeline)

  • Live Pyth Hermes snapshot β€” Before a run is fully prepared, the server calls Pyth’s Hermes price API and builds a multi-feed oracle snapshot: symbols, latest prices, return over a configured comparison window.

  • Feed-to-slot assignment β€” That snapshot is deterministically spread across twelve β€œlive” slots (four per guardian / boss tier). Each AI question is tied to one concrete feed row so price level, window return %, and freshness stay consistent for that item.

  • LLM question generation β€” Each generated item sends the model a structured JSON task: guardian theme, question type (MCQ or true/false), a curated seed fact from seed-facts.json, and a live payload (symbol, price, window return, stale). A source mode flips whether the seed fact or the live tick is primary; the other is supporting context only, so you get both educational and β€œwhat is the oracle saying right now?” items.

  • Server-side validation β€” Outputs are sanitized and run through validators that check MCQ answers and true/false stems against the same live numbers that were in the prompt (e.g. return % and price consistency).

  • Mixed with a static bank β€” Prepare-run also pulls scoped items from bank.json per boss so each segment blends hand-authored / curated bank material with live-fed AI items in one queue the duel engine consumes.


On-chain layer (separate from question text)

  • Major Arcana boosters β€” Booster draws go through OrraTrivia as the Entropy consumer, same family of pattern as readings β€” Pyth Entropy supplies verifiable randomness for which arcana you drew.

  • Readings (unchanged core story) β€” The reading path still commits an oracle snapshot hash on-chain and maps Entropy output to a Major Arcana index; interpretation remains an optional server-side LLM step when provider keys exist.


Reliability, assets, and polish

  • Tarot imagery β€” Fixed incorrect art mapping so The Sun no longer displayed The Tower asset; card index β†’ public WebP paths in shared MAJOR_ARCANA data stay consistent for reading, boosters, and preload.

  • Experience performance β€” WebP tarot and trivia art, plus eager preload of portal tiles, arenas, and arcana URLs in the experience layout to reduce first-interaction decode jank.

  • Pyth client β€” Websocket / availability helpers tightened for dashboard and stream paths.


Platform and repo