Signalium turns any viral X (Twitter) post into a tradable YES/NO prediction market. Three AI roles run inside the 0G Compute TEE so the verdict can be trusted but cannot be tampered with:Documentation Index
Fetch the complete documentation index at: https://docs.signalium.site/llms.txt
Use this file to discover all available pages before exploring further.
- Gatekeeper scores a tweet on falsifiability, clarity, specificity, signal, and novelty. Most tweets are rejected.
- Writer drafts a clean question, description, resolution criteria, and a sealed judge prompt that lives on 0G Storage.
- Judge runs the frozen prompt at resolution time, signs the outcome with the allowlisted TEE key, and submits it on-chain.
Treasury that routes funds into Gimo Finance liquid staking (st0G). At resolution 80% of the yield earned goes back to bettors pro-rata, 20% to the protocol.
Quick start
Clone the repo, run
pnpm dev, browse live mainnet markets in 90 seconds.Architecture
The full system diagram — web, API, judge worker, contracts, subgraph.
Yield economics
How the 80/20 split, reserve floor, and one-shot snapshot work.
Smart contracts
Mainnet addresses, ABI surface, role gates.
Try it now
| Path | What you’ll see |
|---|---|
| signalium.site | Live mainnet — browse markets, view source posts, watch live yield |
| signalium.site/m/0x1b89…0639 | A real market with bets placed and 0.025 0G earning in Gimo |
| api.signalium.site/health | API liveness probe |
| api.signalium.site/price/0g | Cached 0G/USD price (CoinGecko, refreshed every 6h) |
How a market works
- User pastes an X post URL in
/create. - The API runs the gatekeeper. If the tweet is settle-able, the writer drafts a market and seals the judge prompt to 0G Storage.
- The user signs
MarketFactory.createMarket(...)from their wallet. The factory deploys, in one transaction, aPredictionMarketclone, a per-marketTreasurywhose principal is that market, and aGimoAdapterwired to the Treasury. - Anyone bets YES or NO with native 0G. Stakes flow into the Treasury; the operator (creator by default) calls
deployIdleto push idle funds into Gimo’sstake(). - At
resolutionDate, the judge worker calls the judge model in TEE on the frozen prompt, signs the outcome, and submits toAIResolver. The resolver verifies the signature on-chain and forwardsresolve()to the market. - Winners pull payouts with
claim()— pro-rata of (notional pool + bettors’ 80% of yield).
Built on 0G
| Component | Role |
|---|---|
0G Chain (chainId 16661) | Markets, treasuries, adapters; sub-second finality, cheap gas |
| 0G Compute (TEE) | DeepSeek V3 inference for gatekeeper / writer / judge — drop-in OpenAI API |
| 0G Storage | Sealed judge prompt (only its merkle root lives on-chain) |
| Gimo Finance | StaFi LSaaS — yield destination via GimoAdapter |

