Skip to main content Use these tips to get the most reliable results when requesting randomness.
Ensure your rollup delegates to a trusted oracle queue with the DelegateOracleQueue instruction so that requests are fulfilled promptly.
Seed Selection
Combine user input with server timestamps or game state to create unpredictable seeds.
Avoid letting players specify the entire caller_seed to prevent grinding.
Callback Validation
Always check the vrf_program_identity to confirm the callback is from MagicBlock’s official signer.
Reject callbacks that do not match the original request parameters.
State Management
Store any pending request identifiers so that retries or unexpected callbacks can be handled safely.
Track the oracle queue your requests were delegated to so results can be matched back correctly.
Keep random outputs ephemeral—consume them immediately within your rollup logic and avoid reusing them.
Following these guidelines reduces the risk of manipulation and ensures consistent randomness across sessions.