Deployment Model
All ElyxS packages are deployed under a single address on the active Supra network for the current environment. The current address and SupraScan link should match what the ElyxS interface shows.
Move Packages
The protocol is split into focused packages under one address. The list below highlights the main public and supporting packages that shape the current on-chain architecture.
draw_base- Instances, Operators, base types and access control.draw_data- DrawState, Rounds, VRF deposit tracking.draw_engine- Ticket Sales, Draw execution, Lifecycle management.draw_finance- Treasury, Payouts, Jackpot accumulation.draw_utils- Shared helpers for history, metadata, feature flags, and pricing data.draw_rewards_engine- Thin payout-view proxy for reward and payout reads.draw_gateway- Public gateway for registry functions and selected user-facing flows.draw_vrf_gateway- Supra dVRF integration - randomness requests and callbacks.
Security Invariants
- Each draw moves through a fixed set of statuses:
ACTIVE,DRAWING,COMPLETED,CANCELED,REFUNDING,REFUNDED, andPAUSED. Invalid backward transitions are not allowed. - Randomness is bound to a specific draw via
request_id- replay is impossible. - Escrow balance always covers pending prizes + fees + refunds.
- Each prize can only be paid out once - enforced by an on-chain
claimedflag. - All critical operations emit verifiable on-chain events.
Verifying a Draw
Every draw result can be independently verified on-chain:
- Find the draw in Hub -> History and click the VRF Verify link.
- The link opens the related VRF record on SupraScan.
- Check that the record belongs to the expected draw and contract address.
- Compare the result shown in ElyxS with the on-chain record opened from the interface.
