Two entry methods
- Pay with GEM
- Pay with LocalUSD
Grant a limited benefit allowance to the game through the reserve.
spinWithGems(minimumDebit, deadline) burns the configured GEM amount and
sends the reference debit to the game. GEM itself never transfers.From entry to delivery
1
Fund inventory first
An immutable table identifies each token, amount and GRAPL reference value.
The fixture holds ORBIT and SORBIT. A pending spin locks three times each
prize amount, covering any possible three-slot outcome.
2
Accept the request atomically
Insufficient unlocked inventory reverts the entry, including payment or
burn. Reserved inventory cannot fund another spin. Entry does not
automatically buy winning tokens from a market.
3
Fulfill once
The configured adapter returns operator-selected entropy. Each slot hashes
entropy, request ID and slot, then selects by modulo prize count. Repeated
and unauthorized callbacks revert; a prize token can repeat in one bag.
4
Deliver tokens
The game marks fulfillment, releases worst-case locks and transfers prizes
to the recorded player.
PrizeDelivered records quantities and reference
values; BagDelivered records their sum. Transfer failure rolls back
fulfillment.