Verifiable randomness for Stellar.

Nebula VRF provides an on-chain commit–reveal workflow and BLS verification so developers can produce randomness that’s verifiable, bias-resistant, and easy to integrate.

Verifiable on-chain
Reveal requires a cryptographic proof; anyone can verify the result using the contract.
BLS12-381 native
Uses Stellar’s smart contract crypto to verify signatures with a strict, documented encoding format.
SDK + API for builders
Generate testnet-compatible payloads using the Rust crate, or via a hosted API for quick demos.
Workflow

Commit → Reveal → Derive

Nebula VRF uses a commit–reveal scheme. You commit a hash on-chain, then reveal the inputs with a proof. Once verified, you can derive application-specific randomness from the result.

1) Commit
Store a commitment \(sha256(seed || salt)\) and your VRF public key in contract storage.
2) Reveal
Provide seed, salt, and a BLS signature. The contract verifies the commitment and the signature.
3) Derive
Use `derive_random(randomness, context)` to produce a deterministic \(u64\) per use-case.
Integrations

Choose how you integrate

Use the Stellar smart contract for fully verifiable randomness, or generate payloads locally with the Rust crate and optional proof submission.

On-chain contract
Commit, reveal, and verify directly on Stellar testnet.
Rust SDK (crate)
Generate payloads locally; integrate into backend logic and tooling.
Hosted API
Quick payload generation for demos and testnet experiments.
Resources

Everything you need to get started

These are the canonical public references for the Nebula VRF testnet deployment and SDK.

Contract IDs
Testnet
CBLC5COYONIRCPWWCRNE6S2EOYJ7IQOWI7RUDG5ZVPHCLZW2KXFFCK2Q
Mainnet
CDLBUXLWQDRVVDYECDUVUOS3UG2YHZ4ZPDM3PKY5XSSX6DLMSNJOBPTY
Contract repo
VRF Core + SDK
Source code, helpers, and API implementation.