FAQ
Questions & answers.
Everything you need to know about integrating, verifying, and trusting Axion randomness.
What is Axion Protocol?+
Axion Protocol is a commit-reveal oracle that delivers verifiable onchain randomness on Robinhood Chain. Developers request entropy from a smart contract and receive a callback with a bytes32 random value.
How is the randomness unbiased?+
Randomness is derived from both a user-provided commitment and a provider reveal. The provider cannot know the user's value when generating the reveal chain, and the user cannot change their commitment after seeing the reveal. Neither party can bias the result alone.
What is commit-reveal?+
Commit-reveal is a two-phase protocol. In the commit phase, a user submits a hidden random value. In the reveal phase, the provider publishes a value that was predetermined. The final output depends on both, so neither can manipulate it after the fact.
Which chain does Axion run on?+
Axion is deployed on Robinhood Chain, chain id 4663. The oracle contract and the $AXION token both live on this EVM-compatible network.
How much does a request cost?+
A direct requestV2() call costs exactly 0.000025 ETH. Agent callers using x402 pay a fixed $0.05 USDG via Primer.
How fast is the reveal?+
Typical reveal time is 1-3 seconds after the request is mined. The Tyche keeper monitors events and submits reveals automatically.
What happens if the keeper never reveals?+
If a reveal is not submitted within the timeout window (roughly 60-90 seconds), the requester can call refundRequest() to recover the fee.
How do I verify a reveal?+
Every reveal is validated onchain using Keccak256. You can also use the SDK or Blockscout to inspect the request, reveal, and callback events for any sequence number.
Where is the provider seed stored?+
The provider seed is kept offchain. Only the hash-chain values are revealed onchain, one at a time. The seed itself is never published.
How do I integrate Axion into my contract?+
Import IEntropy and IEntropyConsumer, implement entropyCallback(), and call requestV2(). The full guide, including Hardhat and Foundry examples, is in the documentation.