ecvrf-wasm
A JS compatibile compiled web assembly module (WASM) to prove and verify a
verifiable random function for use on Solana.
Install
npm i --save @switchboard-xyz/ecvrf-wasm
Usage
To get a VRF proof
import ecvrf from "@switchboard-xyz/ecvrf-wasm";
let secretKey: Uint8Array;
let alphaHex: string;
const secretHex: string = Buffer.from(
secretKey.slice(0, secretKey.length - 32)
).toString("hex");
const proofHexString: string = ecvrf.ecvrf_prove(secretHex, alphaHex);
To verify a VRF proof
import ecvrf from "@switchboard-xyz/ecvrf-wasm";
import { PublicKey } from "@solana/web3.js";
let producerPubkey: PublicKey;
let proofHex: string;
let alphaHex: string;
const verified: boolean = ecvrf.ecvrf_verify(
producerPubkey.toBuffer().toString("hex"),
proofHex,
alphaHex
);
if (!verified) {
throw new Error(`VRF proof was not verified`);
}