Para operadores

Integração rápida

Copie o embed em iframe e gere o token de produção para os subdomínios oficiais treasure-dive.i-gaming.co e caramelo-fortune.i-gaming.co.

1. Gerar token

No painel /operator → Tokens, gere um token com allowed_domains = subdomínio do jogo.

2. Copiar embed

Cole o snippet de iframe no HTML do subdomínio e substitua {{TOKEN_PH}}.

3. Validar

Teste com ?demo=1, confira eventos postMessage e ative produção.

S
gold-tiger-slot.i-gaming.co

Gold Tiger

Slot · slug gold-tiger-slot
Embed em iframe (cole no HTML do subdomínio)html
<!-- gold-tiger-slot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Gold Tiger</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/gold-tiger-slot?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:gold-tiger-slot",
    "allowed_domains": ["gold-tiger-slot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:gold-tiger-slot",
    allowed_domains: ["gold-tiger-slot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:gold-tiger-slot",
    "allowed_domains": ["gold-tiger-slot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=gold-tiger-slot retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
money-money.i-gaming.co

Money Money

Slot · slug money-money
Embed em iframe (cole no HTML do subdomínio)html
<!-- money-money.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Money Money</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/money-money?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:money-money",
    "allowed_domains": ["money-money.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:money-money",
    allowed_domains: ["money-money.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:money-money",
    "allowed_domains": ["money-money.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=money-money retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
mega-blocs.i-gaming.co

Mega Blocks

Slot · slug mega-blocs
Embed em iframe (cole no HTML do subdomínio)html
<!-- mega-blocs.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Mega Blocks</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/mega-blocs?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:mega-blocs",
    "allowed_domains": ["mega-blocs.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:mega-blocs",
    allowed_domains: ["mega-blocs.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:mega-blocs",
    "allowed_domains": ["mega-blocs.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=mega-blocs retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
tower-treasure.i-gaming.co

Tower Treasure

Slot · slug tower-treasure
Embed em iframe (cole no HTML do subdomínio)html
<!-- tower-treasure.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Tower Treasure</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/tower-treasure?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:tower-treasure",
    "allowed_domains": ["tower-treasure.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:tower-treasure",
    allowed_domains: ["tower-treasure.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:tower-treasure",
    "allowed_domains": ["tower-treasure.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=tower-treasure retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
brasil-bingo.i-gaming.co

Bingo Royale

Slot · slug brasil-bingo
Embed em iframe (cole no HTML do subdomínio)html
<!-- brasil-bingo.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Bingo Royale</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/brasil-bingo?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:brasil-bingo",
    "allowed_domains": ["brasil-bingo.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:brasil-bingo",
    allowed_domains: ["brasil-bingo.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:brasil-bingo",
    "allowed_domains": ["brasil-bingo.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=brasil-bingo retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
tropical-slice.i-gaming.co

Tropical Slice

Slot · slug fruta-explosiva
Embed em iframe (cole no HTML do subdomínio)html
<!-- tropical-slice.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Tropical Slice</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/fruta-explosiva?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:fruta-explosiva",
    "allowed_domains": ["tropical-slice.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:fruta-explosiva",
    allowed_domains: ["tropical-slice.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:fruta-explosiva",
    "allowed_domains": ["tropical-slice.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=fruta-explosiva retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
boom-mines.i-gaming.co

Boom Mines

Slot · slug boom-mines
Embed em iframe (cole no HTML do subdomínio)html
<!-- boom-mines.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Boom Mines</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/boom-mines?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:boom-mines",
    "allowed_domains": ["boom-mines.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:boom-mines",
    allowed_domains: ["boom-mines.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:boom-mines",
    "allowed_domains": ["boom-mines.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=boom-mines retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
C
corrida-motoboy.i-gaming.co

Motoca do Grau

Crash · slug corrida-de-moto
Embed em iframe (cole no HTML do subdomínio)html
<!-- corrida-motoboy.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Motoca do Grau</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/corrida-de-moto?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:corrida-de-moto",
    "allowed_domains": ["corrida-motoboy.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:corrida-de-moto",
    allowed_domains: ["corrida-motoboy.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:corrida-de-moto",
    "allowed_domains": ["corrida-motoboy.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=corrida-de-moto retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
pirates-mines.i-gaming.co

Piratas Mines

Slot · slug piratas-mines
Embed em iframe (cole no HTML do subdomínio)html
<!-- pirates-mines.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Piratas Mines</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/piratas-mines?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:piratas-mines",
    "allowed_domains": ["pirates-mines.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:piratas-mines",
    allowed_domains: ["pirates-mines.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:piratas-mines",
    "allowed_domains": ["pirates-mines.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=piratas-mines retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
C
treasure-dive.i-gaming.co

Mergulho ao Tesouro

Crash · slug mergulho-ao-tesouro
Embed em iframe (cole no HTML do subdomínio)html
<!-- treasure-dive.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Mergulho ao Tesouro</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/mergulho-ao-tesouro?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:mergulho-ao-tesouro",
    "allowed_domains": ["treasure-dive.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:mergulho-ao-tesouro",
    allowed_domains: ["treasure-dive.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:mergulho-ao-tesouro",
    "allowed_domains": ["treasure-dive.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=mergulho-ao-tesouro retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
C
india-rush.i-gaming.co

India Rush

Crash · slug india-rush
Embed em iframe (cole no HTML do subdomínio)html
<!-- india-rush.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>India Rush</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/india-rush?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:india-rush",
    "allowed_domains": ["india-rush.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:india-rush",
    allowed_domains: ["india-rush.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:india-rush",
    "allowed_domains": ["india-rush.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=india-rush retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
deuses-da-terra.i-gaming.co

Deuses da Terra

Slot · slug deuses-da-terra
Embed em iframe (cole no HTML do subdomínio)html
<!-- deuses-da-terra.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Deuses da Terra</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/deuses-da-terra?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:deuses-da-terra",
    "allowed_domains": ["deuses-da-terra.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:deuses-da-terra",
    allowed_domains: ["deuses-da-terra.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:deuses-da-terra",
    "allowed_domains": ["deuses-da-terra.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=deuses-da-terra retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
dragao-imperial-slot.i-gaming.co

Dragão Imperial

Slot · slug dragao-imperial
Embed em iframe (cole no HTML do subdomínio)html
<!-- dragao-imperial-slot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Dragão Imperial</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/dragao-imperial?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:dragao-imperial",
    "allowed_domains": ["dragao-imperial-slot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:dragao-imperial",
    allowed_domains: ["dragao-imperial-slot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:dragao-imperial",
    "allowed_domains": ["dragao-imperial-slot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=dragao-imperial retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
farao-slot.i-gaming.co

Faraó Dourado

Slot · slug farao-dourado
Embed em iframe (cole no HTML do subdomínio)html
<!-- farao-slot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Faraó Dourado</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/farao-dourado?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:farao-dourado",
    "allowed_domains": ["farao-slot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:farao-dourado",
    allowed_domains: ["farao-slot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:farao-dourado",
    "allowed_domains": ["farao-slot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=farao-dourado retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
los-muertos.i-gaming.co

Los Muertos

Slot · slug los-muertos
Embed em iframe (cole no HTML do subdomínio)html
<!-- los-muertos.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Los Muertos</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/los-muertos?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:los-muertos",
    "allowed_domains": ["los-muertos.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:los-muertos",
    allowed_domains: ["los-muertos.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:los-muertos",
    "allowed_domains": ["los-muertos.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=los-muertos retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
tropical-slot.i-gaming.co

Tropical Slot

Slot · slug tropical-slot
Embed em iframe (cole no HTML do subdomínio)html
<!-- tropical-slot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Tropical Slot</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/tropical-slot?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:tropical-slot",
    "allowed_domains": ["tropical-slot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:tropical-slot",
    allowed_domains: ["tropical-slot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:tropical-slot",
    "allowed_domains": ["tropical-slot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=tropical-slot retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
favela-slot.i-gaming.co

Favela Slot

Slot · slug favela-slot
Embed em iframe (cole no HTML do subdomínio)html
<!-- favela-slot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Favela Slot</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/favela-slot?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:favela-slot",
    "allowed_domains": ["favela-slot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:favela-slot",
    allowed_domains: ["favela-slot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:favela-slot",
    "allowed_domains": ["favela-slot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=favela-slot retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
caramelo-fortune.i-gaming.co

Caramelo da Sorte

Slot · slug caramelo-da-sorte
Embed em iframe (cole no HTML do subdomínio)html
<!-- caramelo-fortune.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Caramelo da Sorte</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/caramelo-da-sorte?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:caramelo-da-sorte",
    "allowed_domains": ["caramelo-fortune.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:caramelo-da-sorte",
    allowed_domains: ["caramelo-fortune.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:caramelo-da-sorte",
    "allowed_domains": ["caramelo-fortune.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=caramelo-da-sorte retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
capivara-jackspot.i-gaming.co

Capivara Milionária

Slot · slug capivara-milionaria
Embed em iframe (cole no HTML do subdomínio)html
<!-- capivara-jackspot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Capivara Milionária</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/capivara-milionaria?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:capivara-milionaria",
    "allowed_domains": ["capivara-jackspot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:capivara-milionaria",
    allowed_domains: ["capivara-jackspot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:capivara-milionaria",
    "allowed_domains": ["capivara-jackspot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=capivara-milionaria retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
S
boteco-slot.i-gaming.co

Boteco da Sorte

Slot · slug boteco-da-sorte
Embed em iframe (cole no HTML do subdomínio)html
<!-- boteco-slot.i-gaming.co -->
<!doctype html>
<html lang="pt-BR">
  <head>
    <meta charset="utf-8" />
    <title>Boteco da Sorte</title>
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <style>
      html,body{margin:0;height:100%;background:#0a0a0a}
      .frame{position:fixed;inset:0;border:0;width:100%;height:100%}
    </style>
  </head>
  <body>
    <iframe
      class="frame"
      src="https://i-gaming.co/games/boteco-da-sorte?token={{TOKEN}}&lang=pt-BR&currency=BRL"
      allow="autoplay; fullscreen"
      referrerpolicy="strict-origin-when-cross-origin"
    ></iframe>
    <script>
      window.addEventListener("message", (e) => {
        if (e.origin !== "https://i-gaming.co") return;
        const { type, payload } = e.data || {};
        if (type === "igaming:ready")       console.log("Jogo pronto", payload);
        if (type === "igaming:bet.placed")  console.log("Aposta", payload);
        if (type === "igaming:bet.lost")    console.log("Derrota", payload);
        if (type === "igaming:error")       console.error("Erro", payload);
      });
    </script>
  </body>
</html>
Gerar token de produção (cURL)bash
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "production",
    "scope": "game:boteco-da-sorte",
    "allowed_domains": ["boteco-slot.i-gaming.co"],
    "expires_in_seconds": 86400,
    "rotate_previous": true
  }'
Gerar token de produção (Node.js)ts
// Node 20+ (fetch nativo)
const res = await fetch("https://i-gaming.co/api/public/v1/tokens/request", {
  method: "POST",
  headers: {
    "X-Operator-Token": process.env.OPERATOR_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    environment: "production",
    scope: "game:boteco-da-sorte",
    allowed_domains: ["boteco-slot.i-gaming.co"],
    expires_in_seconds: 86_400,
    rotate_previous: true,
  }),
});
const { token, expires_at, token_id } = await res.json();
Token demo para validaçãobash
# Token demo (não consome saldo real)
curl -X POST https://i-gaming.co/api/public/v1/tokens/request \
  -H "X-Operator-Token: $OPERATOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "demo",
    "scope": "game:boteco-da-sorte",
    "allowed_domains": ["boteco-slot.i-gaming.co"],
    "expires_in_seconds": 3600
  }'
Pré-flight: GET /api/public/v1/game-config?slug=boteco-da-sorte retorna RTP efetivo, min_bet, max_bet e max_payout aplicáveis a este operador.
Extras — aprofundamento
Complemento opcional. Tudo acima já é suficiente para ir ao ar.
Ver funcionando em 30 segundos
Iframe demo real (sem token, sem saldo real). Eventos aparecem ao vivo abaixo.
Abrir em ambiente isolado
Console de postMessage
Aguardando eventos…
Referência de eventos postMessage
Todos os eventos que o iframe emite para o parent. Origin é sempre https://i-gaming.co.
TipoQuandoPayload exemplo
igaming:readyJogo iniciado e pronto para receber input.{ slug, session_id }
igaming:bet.placedAposta aceita, saldo debitado.{ round_id, amount_cents }
igaming:bet.wonRodada ganha liquidada.{ round_id, win_cents, multiplier }
igaming:bet.lostRodada perdida liquidada.{ round_id, amount_cents }
igaming:wallet.syncSaldo atualizado (qualquer origem).{ balance_cents }
igaming:round.settledRodada finalizada (ganho ou perda).{ round_id, delta_cents }
igaming:errorErro genérico — veja payload.code.{ code, message }
Códigos de erro do wallet HMAC
Códigos retornados por /api/public/dl/seamless/*.
CódigoSignificadoO que fazer
origin_or_signature_requiredSem header HMAC ou origin inválida.Envie os headers x-dl-ts e x-dl-sig.
bad_signatureAssinatura não bate com o secret.Confira PORTAL_HMAC_SECRET e payload.
launch_not_foundLaunch token não registrado.Gere novo token via /tokens/request.
launch_token_invalidToken expirado, revogado ou malformado.Rotacione o token antes de expires_at.
insufficient_fundsSaldo do jogador abaixo da aposta.Mostre UI de recarga no seu lado.
duplicate_roundRodada já liquidada (idempotência).Pode ignorar — replay foi bloqueado.
stale_timestampHeader x-dl-ts com drift > 60s.Sincronize o relógio via NTP.
Testar agora sem cadastro
Ambiente isolado roda uma rodada real E2E com token demo. Não consome saldo real.

Checklist de go-live

  • Token criado com allowed_domains exato do subdomínio
  • Pré-flight game-config retornou status 200 e RTP esperado
  • Iframe carrega com referrerpolicy strict-origin-when-cross-origin
  • Evento igaming:ready recebido no postMessage
  • Teste com ?demo=1 concluído sem erros
  • Produção ativada removendo demo=1 e incluindo user_id
  • Rotação de token agendada antes de expires_at
  • Logs de auditoria revisados em /operator → Tokens