Sui Shot

Sui Shot is a no-loss DeFi lottery on Sui where users place bets and never lose

Sui Shot

Created At

HackMoney 2026

Project Description

Sui Shot is a no-loss lottery + prediction market protocol built on Sui. Users place YES/NO positions with SUI principal, but unlike traditional betting apps, principal is protected and returned after settlement. Only yield is distributed as prize.

Each round is time-based and can run in three modes: Random, Prediction, and Manual.

In Random mode, winning side is selected by random logic at close;

in Prediction mode, outcome is determined by token price versus a target;

In Manual mode, admin predefines the winning side and winner is still picked fairly by weighted stake.

A strategy vault layer tracks deployed principal, simulated APR accrual, and per-round yield allocation. This creates a transparent “take upside without principal loss” model where users can participate in market-style games without the typical downside of losing deposits. The frontend includes wallet connect, market cards, admin controls, and portfolio/history views sourced from on-chain events and objects.

How it's Made

The core is written in Sui Move with a shared PredictionMarket object storing rounds, principal vault, yield vault, and strategy state. Key entry functions handle round creation, betting, settlement, strategy APR updates, principal deploy/recall, accrual keeper calls, and yield allocation to rounds. Settlement logic computes outcome per mode, picks a weighted winner, pays prize from yield vault, and auto-refunds principal to all participants.

On the frontend, we built a React + Vite + TypeScript app using Mysten dApp Kit for wallet integration and transaction signing, and Sui client RPC queries for live data.

Event indexing powers round cards and user portfolio history. For prediction mode, we integrated CoinGecko’s onchain token-price endpoint with env-driven support for demo/pro hosts and API keys. The “hacky but useful” part is our transparent simulated yield engine: we compute time-based APR accrual on-chain (elapsed_ms * deployed_principal * apr_bps) and require both accrued accounting and funded liquidity before allocation, giving a realistic pre-integration strategy flow that can be swapped to SuiLend adapter calls later without redesigning product UX.

background image mobile

Join the mailing list

Get the latest news and updates

Sui Shot | ETHGlobal