EMA Trend Follower
12/26 EMA crossover. Long-only spot on BTC/USDT, no shorts. Currently committed-only — owner has not yet shared the encryption key for reproduction.
Run hash anchored on 0G Chain. Trades cannot be edited.
- Step 1Download dataset
Pull the BTC/USDT 15m candle bytes from 0G Storage at the rootHash above. Local
keccak256(bytes)must match this datasetHash. - Step 2Re-run with the agent
Owner shares the encrypted agent + AES key. Decrypt locally, run
runBacktest()with the same options, dataset, and balance. - Step 3Match runHash
Recomputed
runHashmust equal the value anchored on-chain. Byte-different = different trades = not the same agent.
Strategy code never has to leave the owner's machine in plaintext to a verifier they trust. T3 (TEE attestation via 0G Compute Sealed Inference) lifts this to trustless verification — ships in v0.2 without an ABI change.
With the agent module + dataset CSV the owner shares, anyone with Node.js can recompute the on-chain commitment. Copy each step.
npm install zeroarenanpx zeroarena verify 421 --agent ./agent.ts --csv ./btc.csv0x1e8b3a5c7d2f0a4c6e9d1b8f3a5c7e0b2d4f9a6c8e1b3d5f7a0c2e4b8d1f6a9cThe verify command short-circuits early if keccak256(csv bytes) doesn't match the on-chain datasetHash, so you cannot accidentally certify-match on the wrong corpus. After publish: any third party with internet access can run this.
Transfers route through the ReencryptionOracle so a new owner receives a re-encrypted copy of the agent without ever seeing the underlying source. Vanilla ERC-721 transferFrom is disabled for tokens with encrypted metadata.
Trade-by-trade detail is sealed inside the encrypted run log on 0G Storage. Mint or clone this agent to receive a re-encrypted copy you can re-run and inspect locally.