Beat the dealer by reaching a hand value closer to 21 without going over. Number cards count at face value, face cards count as 10, and aces count as 1 or 11.
Natural blackjack3:2Regular win1:1Insurance2:1PushBet returned
Table rules
Six-deck shoe; reshuffled when fewer than 60 cards remain.
Dealer stands on all 17s, including soft 17.
Double down on any first two cards: your bet doubles, you receive one card, then stand.
Split any equal-value pair once, including mixed ten-value cards. Split aces receive one card each. No resplitting.
Insurance is offered when the dealer shows an ace, up to half the main bet.
No surrender. A 21 after splitting is paid as a regular win.
Math profile
Theoretical RTP is approximately 99.5% with perfect basic strategy. Design target, not certified. Volatility is low-medium. Maximum base hand payout is the 3:2 blackjack payout, with additional exposure from doubling and splitting.
Virtual credits only — no real money. Prototype — not certified.
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();
});
}
})();