Dependency Map
What must exist before what — and which dependencies would kill the project if they slip?
Critical Path
Move Contracts → Oracle Integration → Settlement PTB → Frontend → Dogfood
| | | |
v v v v
game.move oracle.move compose PTB dApp Kit
prediction.move result feed test atomic zkLogin flow
treasury.move attestation payout math sponsored tx
leaderboard.move match UI
season.move
admin.move
Dependency Matrix
| Dependency | Type | Risk | Mitigation |
|---|---|---|---|
| zkLogin | Hard | Medium — requires OAuth app registration, ZKP salt service | Start with Sui Wallet fallback, add zkLogin as enhancement |
| Sponsored transactions | Hard | Medium — requires backend gas station with SUI balance | Cap per-user daily sponsorship, monitor balance |
| Oracle data feed | Hard | High — no standard sports data oracle exists on Sui | Build custom agent-operated oracle first, integrate Pyth later for price data |
| Dynamic NFT Display | Soft | Low — Display standard is stable, pattern well-documented | Can ship without dynamic metadata, add later |
| Walrus storage | Soft | Low — audit trail is a nice-to-have, not critical path | Store on-chain events first, Walrus for extended history |
| Seal commit-reveal | Soft | Low — prevents front-running but prediction game is low-stakes | Ship without, add if MEV becomes visible |
| Move compiler | Hard | Low — stable toolchain, well-documented | Pin compiler version in Move.toml |
| dApp Kit | Hard | Low — official Sui React SDK, actively maintained | Pin version, follow migration guides |
Build Order
| Track | Sprint 1 | Sprint 2 | Sprint 3 | Sprint 4 |
|---|---|---|---|---|
| Contracts | game.move, prediction.move | oracle.move, treasury.move | leaderboard.move, season.move | admin.move, upgrades |
| Oracle | Mock oracle for testing | Agent-operated HTTP oracle | Attestation + hot potato | Monitoring + fallback |
| Frontend | Match list, prediction form | zkLogin + sponsored tx | My predictions, receipts | Leaderboard, stats |
| Infra | Testnet deploy, CI | Gas station backend | Walrus integration | Monitoring, alerts |
Risk Register
| Risk | Probability | Impact | Response |
|---|---|---|---|
| Sports data oracle unreliable | High | Critical | Build redundant feeds, manual admin override |
| zkLogin salt service downtime | Medium | High | Wallet extension fallback always available |
| Gas station balance depleted | Medium | High | Alerts at 50% balance, auto-disable sponsorship |
| Move contract bug post-deploy | Low | Critical | Testnet first, phased mainnet migration |
| Low user engagement | Medium | Medium | Dogfood with rugby community first, iterate |
Questions
Which dependency are we most likely to underestimate — and what does that reveal about our blind spots?
- If the oracle is the highest-risk dependency, why isn't it the first thing we build?
- The soft dependencies (Walrus, Seal) are "nice-to-have" — but are they what makes this interesting vs just another prediction game?