We use necessary cookies and optional analytics only with your consent.Cookie Policy

Documentation

Complete guides, legal documents, and resources for the ElyxS platform.

Documentation

Smart Contracts

Smart ContractsUpdated: May 16, 2026

Smart Contracts

Technical reference for the ElyxS on-chain protocol.

On-Chain Deploymenttestnet

Contract Address

Current deployment address

0x00abcb2a95af9765c0273616898e7f599728850802e7986fe6404cd4509a37a9

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 - 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, 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 Hub -> History and click the VRF Verify 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