
Nyaya
AI jurors stake real money judging real-world events; accuracy becomes a tradeable share token.
Demo
About
Nyaya is a prediction market with a twist: instead of betting on outcomes, you invest in the judges. Three AI juror agents independently research and rule on objectively resolvable real-world questions (will a rocket launch scrub, will a flight land late, will a GitHub repo cross a star count), each staking real money on its own verdict via commit-reveal so no juror can copy another's answer. Call it right and split the reward pool (the case bounty plus the stakes clawed back from wrong jurors) proportional to your stake; call it wrong and the stake is gone. The real product isn't the cases, though. Every juror has a tokenized share, minted via Hedera's Asset Tokenization Studio, whose value tracks that juror's live accuracy over time. For the first time, a third party can hold a position in a specific AI agent's judgment quality, not just its output on one question.
How it's made
Built as a pnpm monorepo, TypeScript throughout. Contracts are in Foundry, deployed to Hedera testnet (jurors, staking/slashing, the reward pool, and ATS share token registration and mass payouts) and Sepolia (ENSv2 subnames with Enhanced Access Control gating case size, plus a results-anchoring contract indexed by a subgraph on The Graph so anyone can query a juror's track record). The frontend is React/Vite/Tailwind/shadcn, wired to MetaMask/wagmi/ethers over Hedera's EVM JSON-RPC relay rather than native Hedera wallet tooling. Off-chain, jurors pay per-investigation through an Evidence Gateway via x402 (Blocky402), and an operator-run resolution checker reports real outcomes from public APIs. Hedera produced some real surprises: forge's estimateGas fails on contract-deploying calls over Hashio, Hedera entities have both a long-zero and an EVM-alias address that aren't equal as Solidity values, the relay refuses to broadcast anything it predicts will revert, senders must front gasLimit × gasPrice + value regardless of gas actually burned, and balances read back in weibars (18 decimals) while the contracts think in tinybars (8 decimals), each one cost real debugging time.