Page cover

spadeBaccarat

Standard Punto Banco baccarat (Player, Banker, Tie) with the third-card draw rules implemented in pure Solidity.

How it works

The Overtime Baccarat contract implements the classic third-card rules of Punto Banco baccarat. When you place a bet:

  1. You stake on Player, Banker or Tie

  2. The contract requests a random word from Chainlink VRF

  3. From that random word, the contract deals the initial four cards (Player + Banker, two each)

  4. The third-card draw rules are applied deterministically based on the totals

  5. The hand totals are computed, the winner is determined, and your payout is transferred

The hand is dealt and resolved in the same VRF callback — there's no stateful turn-by-turn UX as in blackjack, because in Punto Banco the player makes no decisions after placing the bet.


Bet types and payouts

Bet
Win condition
Total payout

Player

Player hand wins

2.00× (1:1 + stake)

Banker

Banker hand wins

1.95× default (configurable, capped 1.00×–2.00× on-chain)

Tie

Player and Banker totals equal

9.00× (8:1 + stake)

Player or Banker bet, when result is Tie

/

Stake refunded (push)

The Banker payout being slightly under 2× reflects the standard 5% commission found at any traditional baccarat table — except in Overtime's case the multiplier is a public state variable. Any change emits a BankerPayoutMultiplierChanged event. Every bettor who comes after sees the new number before they place their stake.

The contract structurally enforces that the Banker payout cannot be set outside the [1.00×, 2.00×] range. It is not possible to deploy a configuration that under-pays Banker bets to a degrading degree.


Limits

Parameter
Value

Minimum bet

3 USD

Banker payout multiplier

1.95× default, configurable in [1.00×, 2.00×]

Maximum profit per bet

Set per deployment (maxProfitUsd)

Cancel timeout

30 seconds minimum

Supported collaterals: USDC, WETH, $OVER.


Punto Banco rules in plain text

After the initial four cards:

  1. If either Player or Banker has a natural 8 or 9, the hand stands. No third cards.

  2. Otherwise, Player rule: Player draws if total is 0–5, stands on 6–7.

  3. Banker rule (depends on whether Player drew, and on Player's third card):

    • If Player stood: Banker draws on 0–5, stands on 6–7.

    • If Player drew: Banker's draw rule depends on Banker's current total and the value of Player's third card, per the standard Punto Banco draw chart.

  4. Final hand totals are computed (modulo 10), and the higher total wins. Equal totals = Tie.

The full rule logic is implemented in the contract and can be inspected directly. Card values follow the standard convention: 2–9 are face value, 10 / J / Q / K count as 0, Ace counts as 1.


User guide

1. Open the Baccarat table

Select Baccarat from the casino lobby.

[Screenshot — Baccarat lobby tile]

2. Place your stake

Choose your collateral, enter your stake, and click on the PLAYER, BANKER or TIE betting area.

[Screenshot — bet placement on Player/Banker/Tie]

3. Confirm the bet

Sign the transaction. The bet enters PENDING while waiting for Chainlink VRF to fulfill.

[Screenshot — pending bet]

4. Cards are dealt and resolved

When the random word arrives, the entire hand plays out at once: initial four cards, third-card draws (if applicable), final totals, and the winner. The cards and result are revealed in your bet UI.

[Screenshot — hand reveal with Player and Banker totals]

5. Payout

If you won, your payout is transferred in the same transaction that resolved the hand. If your Player or Banker bet pushed because of a Tie, your stake is refunded. The full result is in your bet history and on-chain.

[Screenshot — resolved hand with payout]


Why this matters

Baccarat is one of the simpler casino games — but it's also one of the most heavily abused by predatory operators, especially around variable Banker commissions and "house rule" surprises. Overtime makes that impossible:

  • The Banker payout multiplier is a public number. You can read it from the contract before you bet.

  • The cap is welded in. The owner cannot drop it below 1.00× or push it above 2.00×.

  • The third-card rules are code, not house policy. They cannot be adjusted between hands.

  • The cards do not exist until Chainlink generates the random word. No pre-shuffled shoe. No operator-chosen sequence.


Free bets

Baccarat supports placeBetWithFreeBet for users with an Overtime free-bet balance. The mechanics are identical, and resolution flows through the existing free-bets infrastructure.

Last updated