Documentation

Complete ElyxS guides, legal documents, smart-contract references, wallet help, and verification resources for Supra testnet users.

Documentation

Smart Contracts

Smart ContractsUpdated: Jun 29, 2026

Smart Contracts

Technical reference for ElyxS Move packages, deployment addresses, dVRF integration, payout flows, and on-chain verification.

On-Chain Deploymenttestnet

Contract Address

Current deployment address

0x99f449ff67f017498fa94419db27cf9bf75095f68aad3418c180d6a8570e8d25

Reference scope

A compact technical overview of the package layout, deployment model, and result verification.

Packages in the current stack8
Randomness sourceSupra dVRF
Result checkVia SupraScan

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 - Base tables, indexes, capabilities, and access control.
  • draw_data - DrawState, Rounds, VRF deposit tracking.
  • draw_engine - Ticket Sales, Draw execution, Lifecycle management.
  • draw_finance_core - Core jackpot and legacy treasury modules.
  • draw_finance - Multi-pool treasury, payouts, and refund claims.
  • 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.
  • SupraVrf and oracle_core - Local dependencies for dVRF and oracle interfaces.

Security Invariants

  • Each draw moves through a fixed set of statuses: ACTIVE, DRAWING, COMPLETED, CANCELED, REFUNDING, REFUNDED, and PAUSED. 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 claimed flag.
  • All critical operations emit verifiable on-chain events.

Verifying a Draw

Every draw result can be independently verified on-chain:

  1. Find the draw in the Hub -> History tab and click the verification link.
  2. The link opens the related VRF record on SupraScan.
  3. Check that the record belongs to the expected draw and contract address.
  4. Compare the result shown in ElyxS with the on-chain record opened from the interface.

What to check next

After reading the reference, you can walk through the core on-chain verification steps directly in the product and in SupraScan.

  1. Confirm that the deployment address matches the contract opened in SupraScan.
  2. Check that the draw status shown in the Hub matches the current on-chain record.
  3. Open the VRF callback transaction for the selected draw.
  4. Cross-check the final result and payout trail against the on-chain events and contract address.

Helpful references

If you need more context around terminology, errors, or end-user flows, open the nearby reference sections.

Open FAQ