VMREQ — The Dice Roller
One-line pitch: VMREQ is the game’s public randomness and modular-math source.
What this is
Section titled “What this is”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.
If you’ve played a web3 game before
Section titled “If you’ve played a web3 game before”- 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 |
What you actually do with it
Section titled “What you actually do with it”- Normal play: game contracts call VMREQ as part of larger actions.
- Advanced: call
Random,hashWith,modExp64, ormodExpdirectly when you specifically want to advance or inspect those calculations.Randomchanges VMREQ state.
Use these calls here. Simulations preview the current state; each confirmed call is a separate transaction.
0xB680F0cc810317933F234f67EB6A9E923407f05DVMREQ.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.
Rewards / costs
Section titled “Rewards / costs”- Cost: direct state-changing calls cost gas.
- Reward: none — infrastructure.
Requirements & gating
Section titled “Requirements & gating”- None for players.
Where it connects
Section titled “Where it connects”Consumed anywhere the system needs entropy: token mintToCap sizes, identity generation flavor, reward jitter.
Quick FAQ
Section titled “Quick FAQ”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.