Tatkal60

60-second price game on Hedera with Pyth BTC feed + CCIP cross-chain funding.

Tatkal60

Created At

ETHGlobal New Delhi

Project Description

Tatkal60 is a fast, fair, on-chain micro-market built on Hedera EVM. Every 60 seconds a round opens where users bet UP/DOWN on BTC/USD. Prices are secured by Pyth Network and pushed on-chain right before resolve to prevent stale data. Funding is native HBAR today, with a built-in Chainlink CCIP Receiver to accept deposits from Ethereum (Sepolia) → Hedera for cross-chain onboarding.

Why it matters

  • Brings sub-minute prediction gameplay to Hedera with verifiable settlement.
  • Eliminates oracle games: rounds resolve only after a fresh Pyth update is posted.
  • Cross-chain UX: users on Ethereum can fund play on Hedera via CCIP (receiver live in contracts).

How it works

  1. EscrowGame.sol manages 60s rounds, pools, fees, and pro-rata payouts (or refunds on flat outcomes).
  2. OracleAdapter.sol reads BTC/USD from Pyth; UI can “Refresh Pyth” (Hermes → on-chain) to ensure a fresh update.
  3. CCIPReceiver.sol listens for approved CCIP messages (Sepolia) and credits the user on Hedera, enabling cross-chain funding.
  4. Frontend (React + Tailwind) shows live on-chain price with Hermes fallback, wallet balance, rounds list, and 1-click bet/claim with Hashscan links.

Tech & integrations

  • Hedera EVM + optional HTS usage.
  • Pyth BTC/USD feed (Hermes updates posted on-chain; freshness window set to 75s for 60s rounds).
  • Chainlink CCIP (Sepolia → Hedera) for cross-chain deposits via our CCIP Receiver contract.
  • Wallets: MetaMask (MVP).

Roadmap

  • Enable CCIP withdrawals (Hedera → Sepolia) and multi-asset markets.
  • Add native Hedera wallets (HashPack/Kabila) and MetaMask Snap.
  • Expand to more Pyth symbols and HTS-hybrid rewards.

How it's Made

We built Tatkal60 on Hedera EVM with a small set of Solidity contracts:

  • EscrowGame.sol – manages 60-second rounds, pools, fees, and pro-rata payouts (or refunds on flat outcomes).
  • OracleAdapter.sol – reads BTC/USD from Pyth. We post fresh updates via Hermes → updatePriceFeeds before resolve so the read is never stale.
  • CCIPReceiver.sol – Chainlink CCIP entrypoint to accept cross-chain deposits (Sepolia → Hedera) for funding rounds. (Receiver live; sender flow documented for next iteration.)

Frontend is React + Vite + Tailwind with ethers v6 and Zustand for a tiny wallet store (MetaMask for MVP). The UI shows a live on-chain price (fallback to Hermes if stale), wallet balance, round list, and one-click bet/resolve/claim with toasts and Hashscan links.

Dev notes / hacks that helped:

  • Hedera requires non-zero msg.value ≥ 1 tinybar; our Pyth helper auto-bumps the fee to pass node validation.
  • We tuned a freshness window = 75s (60s round + buffer) and made it env-configurable.
  • Read model loads nextRoundId() and getRound(id); if unavailable it reconstructs from events as a fallback.
  • All addresses/ABIs are chain-scoped via env (e.g., _296 for testnet), which kept deploys painless

Stack: Hedera EVM (+ HTS ready), Solidity/Hardhat, Pyth (Hermes + on-chain program), Chainlink CCIP, React/TypeScript, Tailwind, Vite, ethers v6.

background image mobile

Join the mailing list

Get the latest news and updates