
Radegast
AI agents trade tokenized US stocks on 0G Chain users just see a stock app. ZK proofs for banks.
Demo
About
Radegast lets anyone invest in tokenized US stocks (TSLA, AAPL, NVDA…) 24/7 from anywhere with just a Google login. No wallet, no gas fees, no crypto jargon it looks and feels like a stock investing app. Three independent AI models analyze your portfolio: an XGBoost quantitative model (ONNX) + two LLMs via 0G Compute broker. They vote, majority wins, and the consensus result is stored on 0G Storage (DA) and settled on 0G Chain — every decision is fully auditable. An autonomous agent can rebalance portfolios automatically in Trade mode, or just advise in Advisory mode. Users can also generate zero-knowledge proofs of solvency using Noir circuits (UltraPlonk) proving their portfolio exceeds a threshold (e.g. $50,000 for a mortgage) without revealing which stocks they hold. Proofs are generated entirely client-side via Noir.js WASM and attested on-chain via a HonkVerifier. 15 tokenized stocks are deployed as ERC-20 tokens on 0G Chain, with a MockUSDC stablecoin and auto-faucet for onboarding. Privy handles social login, embedded wallets, and onramp — the blockchain layer is completely invisible to the user.
How it's made
The frontend is Next.js 16 + React 19 + Tailwind 4 with Privy SDK v3 for auth (Google/Discord/Email OTP), embedded EVM wallets (auto-created on login), and onramp — configured with 0G Newton Testnet as the default chain. Users never interact with a wallet directly. The backend is an Express.js API gateway (port 4000) that uses viem for all on-chain reads/writes to 0G Chain (chain 16602). It proxies AI requests to a Python FastAPI service (port 8000) that runs the consensus pipeline. The AI consensus is the hackiest part: three models run in parallel — XGBoost served as ONNX via a local OpenAI-compatible endpoint, and two LLMs called through @0glabs/0g-serving-broker (0G Compute). The broker handles service discovery, request signing, ledger deposits, and response verification. Results are majority-voted, then the full consensus blob is uploaded to 0G Storage via @0gfoundation/0g-ts-sdk (Indexer + MemData), which returns a rootHash. That hash is submitted as daHash to ConsensusSettlement.sol on 0G Chain, creating a cross-reference anyone can verify with verifyDA(). Smart contracts are Solidity 0.8.24 built with Foundry and Solady (OwnableRoles, ERC20) — 20 contracts total: 15 xStock ERC-20 instances with on-chain price oracles, ConsensusSettlement, ProofOfSolvency, ProofRegistry, HonkVerifier, and MockUSDC. ZK proofs use Noir circuits compiled to UltraPlonk, with @noir-lang/noir_js and @aztec/bb.js running entirely in-browser (WASM). The circuit asserts Σ(balance × price) > threshold with a Poseidon BN254 commitment, and the proof is verified on-chain by a Noir-generated HonkVerifier contract. The Python↔Node.js bridge for 0G SDK calls (Compute broker + Storage upload) is a notable hack — the Python orchestrator shells out to Node.js sidecar scripts because the 0G SDKs are JS-only.