Settlement as a service

Settle your market in four calls

Quovra is the escrow and settlement layer, so your app never writes proof verification or fund-release logic. Point it at a TxLINE stat and the market resolves itself on-chain.

Install
git clone https://github.com/mystiquemide/quovra
Lifecycle
import { Connection } from "@solana/web3.js"
import { useWallet } from "@solana/wallet-adapter-react"
import { deposit, claim, requestFaucet } from "./src/lib/quovra-client"

const connection = new Connection("https://api.devnet.solana.com", "confirmed")
const wallet = useWallet()
const market = "J6CBPTgrHjkbWwpXkySQw5CFV61XbidgaodTGyjk7g3y"

// 1. Fund the demo wallet with devnet-only test USDC.
await requestFaucet(wallet.publicKey!.toBase58())

// 2. Escrow USDC on an outcome.
const depositTx = await deposit(connection, wallet, market, 1, 10)

// 3. At full time, settle against the signed TxLINE proof.
//    The settle instruction CPIs into txoracle.validate_stat and reads
//    the boolean return on-chain. Reverts if the proof does not verify.
//    In this repo, scripts/real-settle.ts performs the proof fetch and settle call.

console.log(depositTx) // visible on Solana devnet explorer

// 4. Winners pull stake + pro-rata share of the losing pool
const claimTx = await claim(connection, wallet, market)
console.log(claimTx)

The program is deployed on Solana devnet. The settle call verifies against TxLINE's on-chain daily score roots (program 6pW64gN1s2uqjHkn1unFeEjAwJkPGHoppGvS715wyP2J).