Skip to content
Player's Guide

VMREQ — The Dice Roller

One-line pitch: VMREQ is the game’s public randomness and modular-math source.

VMREQ generates verifiable random values for other contracts to consume. It exposes a View() function returning a Faung struct with the current randomness payload. Unlike the CHATLOG stack (YI → ZHENG → ZHOU → YAU → YANG → SIU), VMREQ sits off to the side as an entropy service.

  • Closest analogy: Chainlink VRF — verifiable random function. Public, tamper-resistant randomness.
  • Or: a block-hash-based RNG with extra mixing.
  • Or: a commit-reveal RNG packaged into a callable contract.
Dysnomia term What it maps to
VMREQ Randomness service
View() Returns the current Faung randomness struct
Faung The randomness payload format
  • Normal play: game contracts call VMREQ as part of larger actions.
  • Advanced: call Random, hashWith, modExp64, or modExp directly when you specifically want to advance or inspect those calculations. Random changes VMREQ state.

Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.

VMREQ0xB680F0cc810317933F234f67EB6A9E923407f05D
VMREQ.Random()Simulate / call

Open this function to load its call form.

VMREQ.hashWith(address a, address b)Simulate / call

Open this function to load its call form.

VMREQ.modExp(uint256 _b, uint256 _e, uint256 _m)Simulate / call

Open this function to load its call form.

VMREQ.modExp64(uint64 _b, uint64 _e, uint64 _m)Simulate / call

Open this function to load its call form.

  • Cost: direct state-changing calls cost gas.
  • Reward: none — infrastructure.
  • None for players.

Consumed anywhere the system needs entropy: token mintToCap sizes, identity generation flavor, reward jitter.

Q: Is VMREQ truly random? A: Within the constraints of on-chain randomness, yes — it’s deterministic from inputs (so it’s verifiable) but unpredictable in practice (no one can cheaply predict future outputs).

Q: Can I use VMREQ in my own contract? A: It’s public, so yes — call View() to read the current payload.


Want the Solidity? The contract reference lives at technical/core/00b_VMREQ.