Start with the right transaction
If ElyxS shows a transaction hash or SupraScan link, start there. Draw history, result verification, and profile history entries open the linked transaction.
For a prize claim or refund, after wallet confirmation you can also take the hash from wallet history.
If you already have a transaction hash, paste it into the SupraScan search field. If you are looking manually, use Blockchain -> Transactions, then open the relevant transaction.
Before checking fields, compare the SupraScan network with the network used by ElyxS and your wallet. On testnet, SupraScan shows a notice that the network keeps only recent data for a limited period. Save important transaction hashes as soon as you see them.
Main blocks on the page
In Basic Information, start with quick checks:
Status: a successful transaction is shown asSuccess.Sender: the wallet that signed the transaction.Recipient: the contract address or transaction recipient.Transaction Hash: the hash to compare with the ElyxS link or include in a support request.Function: the Move function called by the transaction, such ascancellation::cancel_draw,cancellation::claim_refund, orpayout_processor::claim_payout.Time (Local): the local transaction time.
In Advanced Information, open the technical details:
VM Status: for successful execution, it should showExecuted successfully.Payload {...}: call data when SupraScan decodes it.Output {...}: the main block for event checks. Inside it, openMove -> events[].
Use the Events tab if SupraScan shows an event list for that transaction.
Where to find fields
- Open the transaction in SupraScan.
- Go to
Advanced Information. - Expand
Output {...}. - Expand
Move -> events[]. - In each event, read the
typeline and thedataobject. - Use page search for the exact event name, such as
WinnerRecordedEventorRefundClaimPaidEvent.
type shows the event name. data contains the event fields: draw_id, winner, amount, request_id, reason_code, and other values to compare with ElyxS.
What to verify by scenario
| What you check | What to search for | Fields in data |
|---|---|---|
| Ticket purchase | Function = sales::buy_tickets_paid; TicketPurchaseBatchEvent | draw_id, buyer, start_ticket_id, ticket_count, ticket_price_amount |
| Single ticket record | TicketPurchasedEvent | draw_id, ticket_id, buyer, ticket_price_amount |
| VRF request | RandomnessRequestedEvent | request_id, draw_id, round_id, total_tickets_at_request, round_snapshot_hash, request_payload_bcs, request_payload_hash, vrf_client_seed |
| VRF callback | RandomnessFulfilledEvent | request_id, draw_id, randomness |
| Standard draw result | DrawFulfilledEvent | draw_id, request_id, winners, ticket_indices, random_bytes, prize_amount, payload |
| Winner record | WinnerRecordedEvent | payout_id, draw_id, winner, ticket_index, amount, randomness_hash, payload_hash |
| Jackpot result | JackpotFulfilledEvent | draw_id, request_id, winner, ticket_index, prize_amount, random_bytes, payload |
| Draw cancellation | Function = cancellation::cancel_draw; DrawCanceledEvent | draw_id, reason_code, canceled_ts, previous_status, tickets_sold, proceeds_accum, jackpot_locked, pending_tickets_cleared |
| Per-player refund | DrawRefundEvent | draw_id, player, ticket_count, refund_amount, refund_ts |
| Prepared refund claim | RefundClaimPreparedEvent | draw_id, recipient, ticket_count, amount, prepared_ts |
| Paid refund | Function = cancellation::claim_refund; RefundClaimPaidEvent | draw_id, recipient, amount, paid_ts |
| Prize claim | Function = payout_processor::claim_payout; PayoutStatusUpdatedEvent | payout_id, draw_id, previous_status, next_status |
To connect the VRF request and result, compare request_id and draw_id in RandomnessRequestedEvent and RandomnessFulfilledEvent. They must refer to the same draw.
Codes and values
For draw cancellation, reason_code has two user-facing values:
1: insufficient participation by the sales deadline.2: ticket cap reached without meeting the minimum participation requirement.
For payouts, PayoutStatusUpdatedEvent uses these statuses:
1: pending.2: paid.3: refunded.4: expired.5: non-monetary.6: voided.
The amount, prize_amount, refund_amount, and ticket_price_amount fields are raw on-chain numbers. ElyxS shows users the formatted value.
For jackpot checks, ticket_index is a zero-based weighted ticket slot, not the participant's row number in the interface.
If the event is missing
First check the network, transaction hash, and draw_id. Then confirm that you opened Output -> Move -> events[] or the Events tab.
If the event is still missing, do not replace it with another transaction that has a similar draw_id. Return to ElyxS and open the verification link again.
When contacting support, include your wallet address, draw ID, transaction hash, a SupraScan screenshot, and the field or event that does not match.
What to read next
- Open Verify Draw Results if you want to start with the shorter user flow.
- Open Claim Prizes and Refunds if you are checking a payout or refund.
- Open Smart Contracts if you need contract and address context.
- Open Frequently Asked Questions if you want shorter answers about wallets, dVRF, and claims.