Skip to content

RUFF FAQ

RUFF commits a hash-chain head before accepting requests. At delivery, the hub checks the assigned link and computes a result from that seed, the request block hash, and fixed request context. Public events let an observer re-check the commitment and calculation.

This design uses hash commitments rather than a VRF proof. Its precise guarantees, early result visibility, delivery dependency, and upgrade powers are covered in the trust model.

It stays Pending. After more than 8191 blocks, anyone can call expire(sequence) to close it. Expiry returns no number and invokes no callback. The request fee pays for the delivery attempt and is not refunded on expiry.

An application defines its own timeout and stake handling. See failure handling.

The hub keeps the request Fulfilled and stores its result. Read requestOf(sequence) to confirm the consumer and status, then recover the same number through randomOf(sequence). Do not request a replacement draw for the same action.

The consumer example provides a recovery method.

Open its saved report in RUFF Explorer, run npx ruff-hub verify against an independently selected RPC, or call verifyHistory in TypeScript. The verification guide covers all three.

The hub supports consumer-specific pricing and pending limits. Contact contact@jerdog.xyz with the consumer address, expected request rate, and callback gas requirement. Until configured on-chain, the default tariff applies.