AI agents trade tokenized US stocks on 0G Chain users just see a stock app. ZK proofs for banks.
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.
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.

