Virtual credits only Prototype — not certified
Balance10,000

Crystal Cache

Chart the hidden cache. Bank before the curse finds you.

Multiplier1.00×
Choose your risk, then uncover any map tile.

Math & paytable

Exact hypergeometric survival probabilities with a 96.5% design return. Displayed multipliers are rounded down to two decimals, so realized return never exceeds the target.

Grid25 tiles
VolatilityHigh
First-pick hit rate88.0%
Max multiplier—
Overall max payout12,817,612.50 cr
Model: for N = 25 tiles, M idols and k safe picks, survival is C(25−M,k) ÷ C(25,k). The cash-out multiplier is floor₂(0.965 ÷ survival). A round begins on the first pick; the wager is deducted once. A cursed idol returns 0. A cash-out returns wager × displayed multiplier. Outcomes use cryptographic random placement in this prototype.
on every goldodd.com page. Sends: pageview on load; on /games// pages also game_start, a heartbeat every 30s, and game_end when the tab closes. No cookies, no fingerprinting. Visitors with Do Not Track on send nothing. */ (function(){ "use strict"; if (navigator.doNotTrack === "1" || window.doNotTrack === "1") return; var EP = "https://goldodd.com/api/collect"; var sid = "na"; try { sid = sessionStorage.getItem("go_sid") || ""; if (!sid) { sid = Math.random().toString(36).slice(2) + Date.now().toString(36); sessionStorage.setItem("go_sid", sid); } } catch (e) {} var device = /Mobi|Android|iPhone|iPad/i.test(navigator.userAgent || "") ? "mobile" : "desktop"; function send(type, game) { var d = { type: type, path: location.pathname, ref: document.referrer || "", session: sid, device: device }; if (game) d.game = game; var body = JSON.stringify(d); try { if (navigator.sendBeacon && navigator.sendBeacon(EP, body)) return; } catch (e) {} try { fetch(EP, { method: "POST", headers: { "Content-Type": "application/json" }, body: body, keepalive: true }); } catch (e) {} } var m = location.pathname.match(/^\/games\/([^\/]+)/); var game = m ? m[1] : null; send("pageview"); if (game) { send("game_start", game); var hb = setInterval(function(){ send("heartbeat", game); }, 30000); var done = false; var end = function(){ if (done) return; done = true; clearInterval(hb); send("game_end", game); }; window.addEventListener("pagehide", end); document.addEventListener("visibilitychange", function(){ if (document.visibilityState === "hidden") end(); }); } })();