A promise-kept market for AI trading agents — traders bond USDC against a verifiable drawdown promise sealed in 0G TEE; challengers stake against it; settlement is permissionless on 0G mainnet.




Orichalcos is a two-sided market where AI traders bond their own credibility, and challengers take the other side. A trader writes a free-text drawdown promise — for example, "I will stay within 20% drawdown across this 24-hour epoch" — and posts a USDC bond to back it. The promise is encrypted to 0G Storage, sealed and signed inside 0G Compute TEE on Qwen 2.5 VL 72B (Intel TDX + H100), and committed to an ERC-7857 INFT on 0G Chain mainnet. Trades fill on Hyperliquid testnet, attested on chain alongside the original TEE-signed wager.
Challengers stake against the promise.
If the trader keeps it, the stake splits 60% to the trader / 40% to the LP pool — the trader earns real yield for being right, not reputation alone.
If the trader breaks it, the bond pays the challenger; residual sweeps to LPs; the trader receives zero.
Settlement is permissionless: any wallet can call markBreach() and settleEpoch() on chain. No oracle. No admin. No off-chain arbiter.
The AI trading bot economy is structurally untrustable. Reveal the strategy → alpha decays. Hide it → no challenger can verify the track record → rugs follow. Existing "answers" are anon Twitter screenshots, opaque vaults, and trust-me-bro APRs.
Orichalcos separates the strategy (kept secret in TEE) from the promise (committed on-chain with a bond). The market then prices the promise: a trader with a record of kept promises commands higher stake volume; a fresh trader with a fat bond earns trust the only way it should be earned — by surviving epochs on chain.
0G Chain (Aristotle mainnet, chainId 16661) — 5 contracts deployed and wired: MockUSDC, StrategyINFT (ERC-7857), InsurancePool, TradeAttestation, MockYieldVault. 50/50 Foundry tests pass.
0G INFT (ERC-7857) — each wager is a transferable INFT. The Updated(tokenId, oldHash, newHash, updatedBy) event matches the ERC-7857 spec; sealedSoulRoot and metadataHash are first-class fields, both pointing to real off-chain TEE + Storage data.
0G Storage — every wager's encrypted soul is uploaded via @0gfoundation/0g-ts-sdk to indexer-storage-turbo.0g.ai; the merkle root is committed to the INFT at mint time.
Live evidence:
token #1 root: 0x8c295ccf1a0df5c994a2398e5b2a18ea939d56404c515fe3dba5050f000815a8
token #2 root: 0x157a2a3aa79419de03da9497b6c71b2650f47cc760e21ee0948d4ec1a15dfb06
0G Compute (TEE) — every mint triggers a real inference call on Qwen 2.5 VL 72B inside Intel TDX + H100 via @0glabs/0g-serving-broker. broker.inference.processResponse(...) verifies the chatId enclave signature; the verified chatId is committed to the INFT's metadataHash field.
Live evidence:
token #1 chatId: 5740115b-4729-42ee-b904-64abcbe86578 ✓ TEE-valid
token #2 chatId: e976a328-b765-450d-bc98-9e7a1baa598b ✓ TEE-valid
5 contracts deployed to 0G Aristotle mainnet (chainId 16661, RPC evmrpc.0g.ai). MockUSDC, StrategyINFT (ERC-7857), InsurancePool, TradeAttestation, MockYieldVault — all wired and verified on chainscan.0g.ai. Same five also deployed to Galileo testnet for the lifecycle demo.
50/50 Foundry tests pass. End-to-end lifecycle smoke (agent/src/v3/integration-smoke.ts) verifies mint → bond → stake → breach → settle → claim against deployed contracts.
Trader-side mint UI at /wagers/new on the live dashboard. Trader writes a free-text promise; the server-side route encrypts to 0G Storage, runs a real Qwen 2.5 VL 72B inference on 0G Compute TEE, verifies the chatId enclave signature, and mints the INFT on 0G Chain — all in one HTTP request.
4-of-5 0G stack wired end-to-end on mainnet. Live evidence: tokens #1 and #2 carry real 0G Storage merkle roots and TEE-verified chatIds, queryable via getData() on the StrategyINFT contract.
Symmetric stake settlement — on a kept promise, the stake splits 60% trader / 40% LP. Trader earns recurring yield for being right; LP earns from total stake volume. Both sides can earn from each other.
Real Hyperliquid testnet execution — per-fill L1 transaction hashes captured on chain and directly clickable on Hyperliquid's testnet explorer.
Live dashboard at orichalcos.vercel.app — slug routes /strategies/breached and /strategies/settled, in-app MockUSDC faucet, LP deposit/withdraw panel, TradeModal with TEE chatId + 0G Storage root + Hyperliquid tx hash per trade.
Hyperliquid uses tx-hash addressing, not order-id URLs. The first integration captured the API's internal oid and stuffed it into a bytes32 on chain — only to discover Hyperliquid's explorer routes by L1 tx hash. Rebuilt the agent to look up the real hash via userFillsByTime after each fill, then re-seeded the demo wagers so every trade now carries a directly verifiable link.
Asymmetric vs symmetric settlement. The first economic design returned the bond to the trader on a kept promise but gave them no upside — a rational trader has no reason to bond capital with zero return. Reworked InsurancePool.expirePolicy to split the stake 60% trader / 40% LP, creating a real two-sided market instead of one-sided insurance.
StrategyINFT.setInsurancePool is set-once. Wiring a new InsurancePool after the symmetric-settlement change required a full redeploy of all five core contracts plus re-wire of the agent runtime, frontend address constants, and re-seeding the demo state.
0G mainnet sub-account funding. The 0G Compute SDK on mainnet requires a pre-funded ledger sub-account before TEE inference works — addLedger(3 0G) + transferFund(provider, 1 0G, "inference"). Wrote agent/src/v3/bootstrap-mainnet-compute.ts to do this once after the mainnet contract deploy; subsequent /api/mint-wager calls now run TEE inference end-to-end against the funded provider.
Slug routing collision. Both legacy (oid-encoded) and current (real-hash) breached wagers existed on chain after the redeploy. The slug resolver now sorts by highest tokenId so demo URLs always land on the newest wager with real verifiability.
Bootstrapped. Pre-seed. No external funding.
Team size: solo builder (single founder / developer)
Funding raised to date: $0 — no angel, no VC, no grant
Treasury: none beyond personal runway
Token / equity round: none planned at submission time
Revenue: none — protocol is testnet-only at submission