{"status":"ok","token_id":2,"rating":"UNRATED","matured":0,"hits":0,"pushes":0,"hit_rate":null,"brier":null,"open_predictions":[{"product_id":191882,"name":"Unified Minds Booster Box","direction":"up","as_of":"2026-07-01","matures_on":"2026-07-31","lock_hash":"c582d8ddced713e26f47f85e2fd93835017f481625f4591b5cc11134faebd49e","week_commitment":{"merkle_root":"56da5c8be3b8eaf7cd48cc64fa7a79c9b6b8b8d4a5273ee8a30a3712d3d6331f","tx":"0xbfdf2fc953548d20a7fd024c14b67aae6cadd4b26618e3dc396246b67c8f355c"}},{"product_id":532107,"name":"500 Years in the Future - Booster Box Case","direction":"up","as_of":"2026-07-01","matures_on":"2026-07-31","lock_hash":"b4210a62fd23df6cb1d66e813f9611cc273eff0814e247bc740fc11471edfc52","week_commitment":{"merkle_root":"56da5c8be3b8eaf7cd48cc64fa7a79c9b6b8b8d4a5273ee8a30a3712d3d6331f","tx":"0xbfdf2fc953548d20a7fd024c14b67aae6cadd4b26618e3dc396246b67c8f355c"}},{"product_id":630432,"name":"Black Bolt Booster Bundle Case","direction":"up","as_of":"2026-07-01","matures_on":"2026-07-31","lock_hash":"0d828b39e53f6491c37c992537d7be6add0fdb471ca40e88a3bff30a01710e88","week_commitment":{"merkle_root":"56da5c8be3b8eaf7cd48cc64fa7a79c9b6b8b8d4a5273ee8a30a3712d3d6331f","tx":"0xbfdf2fc953548d20a7fd024c14b67aae6cadd4b26618e3dc396246b67c8f355c"}}],"methodology_note":"Each minted soul locks 3 deterministic card predictions weekly, chosen by its on-chain personality traits from the PUBLIC free forecast board (/api/v1/forecast). The oracle scores them 30 days later against real market prices: |move|<1% = push (excluded), else hit/miss. Rating: >=10 rated predictions, hit_rate >=.60 A, >=.55 B, >=.50 C, >=.45 D, else F.","verify":"Fully deterministic: recompute picks() from the archived public forecast board (as_of date) + the soul's traits; sha256 the canonical row to reproduce each lock_hash. Weekly roots are committed to the SoulPredictionOracle contract on LitVM LiteForge (chain 4441) at 0x5503D08D7D167eE23AcE818bff1a00eF77A76dBF BEFORE maturity — immutable per week (no overwrite path); verifyPrediction(weekId, leaf, proof) with OZ sorted-pair convention, leaf = keccak(keccak(abi.encode(tokenId, weekId, productId, direction, lockHash))). Week 1 (20260701) provenance: v1 calldata commitment tx 2270231299ed689e35136e82f2295bdeaaec7ca8dc7bbbc3d047b9d9c00f1c50 (sha256-tree root, committed pre-outcome), recommitted on-contract tx 0xbfdf2fc953548d20a7fd024c14b67aae6cadd4b26618e3dc396246b67c8f355c."}