{
  "schemaVersion": 1,
  "cluster": "mainnet-beta",
  "scope": "Read-only finalized bank account observation and targeted review of admin signer checks against the byte-verified public source. Not an independent full security audit.",
  "transactionsSubmitted": 0,
  "bankAccount": {
    "checkedAt": "2026-10-21T08:11:06.525Z",
    "commitment": "finalized",
    "slot": 459557603,
    "address": "9vBaKrxgtQEc6zavSVTvptAM2oRmX38SkyHXpfvUFoKR",
    "owner": "CuTLp7pDmNGkFgi4aoh8Ef1YSjc2BzECQRLzYqaoVWBR",
    "version": 4,
    "authority": "5SD2yUKBHkUhpC7rHzEqLgYKHrkNoyYymNkDXmFaoJ1Y",
    "maxWagerBaseUnits": "1000000000000",
    "sourceCommit": "8c86ff6a501d385508fbe4953f7aa515f2054cb7",
    "reviewedFiles": [
      "lib.rs",
      "shared.rs",
      "funding.rs",
      "banking.rs",
      "economy/locks.rs",
      "economy/staking.rs",
      "economy/perps_contribution.rs",
      "blackjack/instructions.rs",
      "blackjack/sol_funding.rs",
      "blackjack/magicblock.rs",
      "blackjack/network_funding.rs",
      "slots/mod.rs",
      "tournament.rs",
      "tournament/games.rs"
    ],
    "sourceComparison": "LF-normalized exact text match",
    "transactionsSubmitted": 0
  },
  "adminControls": [
    {
      "title": "Future Cee-lo wager limit",
      "effect": "Tag 17 changes bank.max_wager for future acceptance. It does not rewrite accepted stakes, reserved liabilities, randomness, deadlines or payouts.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/shared.rs#L438"
    },
    {
      "title": "Blackjack tables",
      "effect": "Initialize tables with permitted wager limits (tag 80) and enable/disable a table (tag 93). The rules and settlement code remain fixed.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/blackjack/instructions.rs#L26"
    },
    {
      "title": "Slots availability and wager cap",
      "effect": "Tag 106 enables/disables slots and sets its permitted cap, bounded by bank.max_wager and the fixed slots wager rules.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/slots/mod.rs#L226"
    },
    {
      "title": "Available house SOL reserves",
      "effect": "Tag 53 withdraws available Cee-lo rent-reserve SOL to the admin; blackjack tag 99 similarly withdraws its house SOL reserve. These instructions target separate SOL reserves, not the SDICE bank vault, player deposits or SOL already held by active game accounts. Depleting reserves can impede account creation/processing until replenished.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/funding.rs#L140"
    },
    {
      "title": "Blackjack SOL reserve withdrawal",
      "effect": "Tag 99 requires the bank admin and the canonical table reserve. Player deposit refunds use separate paths.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/blackjack/sol_funding.rs#L209"
    },
    {
      "title": "Guarded funding and VRF setup",
      "effect": "Version/state-gated instructions enable Cee-lo player-funded/rent-reserve modes, configure blackjack VRF inboxes, and enable/disable its network-funding configuration. Blackjack network configuration requires disabled, empty tables; removal also requires no open purses and no competition mode.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/blackjack/network_funding.rs#L118"
    },
    {
      "title": "Competition setup",
      "effect": "Initialize the game-specific competition series and enable blackjack tracking; advance eligible series entry versions only when no event is current. Prize calculation and payment destinations remain enforced by the fixed event rules.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/tournament/games.rs#L34"
    },
    {
      "title": "Legacy account migrations",
      "effect": "One-way version-gated setup paths exist for old bank/staking/table accounts. The live version-4 bank cannot be downgraded through these migration instructions.",
      "source": "https://github.com/battlejoose/soltoshidice-programs/blob/8c86ff6a501d385508fbe4953f7aa515f2054cb7/games/chain/program/src/banking.rs"
    }
  ],
  "limits": [
    "The version-1 general token withdrawal (tag 6) rejects the live version-4 bank before its transfer. The reviewed version-4 admin paths do not provide a general SDICE-vault sweep. The house SOL reserve withdrawals above are real admin powers, but are different assets/accounts from the pooled SDICE vault.",
    "The bank key cannot replace the frozen executable or restore its loader upgrade authority. None of the listed configuration instructions lets it choose VRF outcomes or rewrite the hard-coded game and staking formulas.",
    "Bank-stake conversion to Perps requires the stake owner’s signature, exact accounts, share accounting and a minimum reward/expiry. It is not an admin power to move another user’s stake. The called Perps program remains separately upgradeable; bank immutability does not freeze that external program.",
    "This review identifies the listed admin checks and their guards; it is not a proof that the entire program is free of vulnerabilities. Source verification proves deployed code identity. It does not remove active-game escrow exposure, external-program dependencies or liquidity/availability constraints."
  ],
  "ceeloSettlementCheck": {
    "status": "pass",
    "checkedAt": "2026-10-21T08:12:12.984Z",
    "cluster": "mainnet-beta",
    "transactionsSubmitted": 0,
    "checks": [
      {
        "id": "receipts",
        "status": "pass",
        "detail": "7 successful transaction receipts; mainnet genesis matches"
      },
      {
        "id": "round-binding",
        "status": "pass",
        "detail": "Round 1758: wager locked before request and oracle responses; payment precedes cleanup"
      },
      {
        "id": "request-binding",
        "status": "pass",
        "detail": "Bank receipt, ORAO request instruction/event and fulfilled account share seed, client and output"
      },
      {
        "id": "vrf-signatures",
        "status": "pass",
        "detail": "3 distinct Ed25519 signatures verified locally; XOR matches ORAO fulfillment and game randomness"
      },
      {
        "id": "game-replay",
        "status": "pass",
        "detail": "Bank 4–4–1; automatic result, no player roll; player wins under v4 banker-first rules"
      },
      {
        "id": "payment",
        "status": "pass",
        "detail": "Token-2022 stake and winning transfer match; player credit and bank debit equal the calculated payout"
      }
    ],
    "round": "AqQWgDqWcFqZyv44hwtRMoxfgNJHdgrkx1DS2eAVKn5R",
    "nonce": "1758",
    "player": "E4VdNqdzHfiiAGZotUQ8WqWff6VVKmBhrS6Zr1mthRu3",
    "oracle": "83MQL29UvXfvq88pCpTV7s3xoveQThz7BKK3kdHiQPau",
    "authorities": [
      "A9iZdgYabRLeAFEwss72eQr8wWQfZ6hLRmDLtWyxKvKj",
      "9ZTHWWZDpB36UFe1vszf2KEpt83vwi27jDqtHQ7NSXyR",
      "2VYNr8yMma4KkJLFNiipUxQYbg1fsyao2H6YQfZ1H2Xi"
    ],
    "bankDice": [
      4,
      4,
      1
    ],
    "playerDice": [
      0,
      0,
      0
    ],
    "totals": {
      "mint": "4nCmpwne7hCoWTSpAd54uENmCgHJrHTyn4DMPCEMpump",
      "decimals": 6,
      "wagerBaseUnits": "10000000000",
      "grossPayoutBaseUnits": "20000000000",
      "netPlayerTokenChangeBaseUnits": "10000000000"
    },
    "receipts": [
      {
        "signature": "4S1gyfxfPWFNbxBNnFPkFYehbE87EWUYq46dNY8Ei8qq7r4fk8NnxxfEmBGjkcDYzXA5pvEsVK5KXj8BC1vTDXta",
        "slot": 458288143,
        "explorer": "https://solscan.io/tx/4S1gyfxfPWFNbxBNnFPkFYehbE87EWUYq46dNY8Ei8qq7r4fk8NnxxfEmBGjkcDYzXA5pvEsVK5KXj8BC1vTDXta"
      },
      {
        "signature": "2zcMUYtkj6ePkHPfwcHdaMXCb8T3UxtiyctazPyQwXGAUDtN2EADcPk8nh2b162G3dT2GTedf9TpquUG7rCLvvqT",
        "slot": 458288434,
        "explorer": "https://solscan.io/tx/2zcMUYtkj6ePkHPfwcHdaMXCb8T3UxtiyctazPyQwXGAUDtN2EADcPk8nh2b162G3dT2GTedf9TpquUG7rCLvvqT"
      },
      {
        "signature": "NcmXBHCWCCJkA9ejXs3DZHrKuygbX3WVM8W5XKcF5DoLc4WnSxRamwjMAo2TQt4Tt2ASwf6aA7SXfd8nW9wjdFY",
        "slot": 458288440,
        "explorer": "https://solscan.io/tx/NcmXBHCWCCJkA9ejXs3DZHrKuygbX3WVM8W5XKcF5DoLc4WnSxRamwjMAo2TQt4Tt2ASwf6aA7SXfd8nW9wjdFY"
      },
      {
        "signature": "4y4F2sczFFmKiJL2XurLrKQ65zt8iXqQ6yVaAgyM3CdBnkjaMBaAeQaSUgrHcop398itrpWYZxwChjm5bnpy6G9u",
        "slot": 458288441,
        "explorer": "https://solscan.io/tx/4y4F2sczFFmKiJL2XurLrKQ65zt8iXqQ6yVaAgyM3CdBnkjaMBaAeQaSUgrHcop398itrpWYZxwChjm5bnpy6G9u"
      },
      {
        "signature": "3TFNEpUg95orshrPepxUPiwWDPeBrEgykHFXKJJMTGHKxNtSBEDBUifZPXdTAYnhArcW9ywBZZK5WFHQi3Fy5zUB",
        "slot": 458288441,
        "explorer": "https://solscan.io/tx/3TFNEpUg95orshrPepxUPiwWDPeBrEgykHFXKJJMTGHKxNtSBEDBUifZPXdTAYnhArcW9ywBZZK5WFHQi3Fy5zUB"
      },
      {
        "signature": "472AaVywiAmCgMva53ktCAVLEXgwmupxbXjgY7ejHEHcLPeT9bA8Fn6dd8L8CEDt36SeVsVuF8sz5s3gX4jQt6yy",
        "slot": 458288481,
        "explorer": "https://solscan.io/tx/472AaVywiAmCgMva53ktCAVLEXgwmupxbXjgY7ejHEHcLPeT9bA8Fn6dd8L8CEDt36SeVsVuF8sz5s3gX4jQt6yy"
      },
      {
        "signature": "2e87E5f6Wgf1HtW7xrVvBrhyJsGUbe9oCb2uyvcQDNN22ubB1hUcDCXxXVBqsRsc1SqaRCG9mWxpsBZ48NkYevQD",
        "slot": 458288519,
        "explorer": "https://solscan.io/tx/2e87E5f6Wgf1HtW7xrVvBrhyJsGUbe9oCb2uyvcQDNN22ubB1hUcDCXxXVBqsRsc1SqaRCG9mWxpsBZ48NkYevQD"
      }
    ],
    "limits": [
      "One historical winning Cee-lo round, not all games, all payouts, an RTP audit or a new gameplay test.",
      "Live mode trusts the selected Solana RPC and consensus for finalized inclusion and transaction/log authenticity. Archived mode checks supplied evidence, not fresh chain inclusion.",
      "Oracle signatures and XOR are verified independently. Historical authority-set membership/quorum is trusted to the ORAO program that accepted those responses; historical configuration and executable bytes are not reconstructed here.",
      "PDA seeds and stored bumps are checked; canonical off-curve selection is trusted to the deployed program. Token totals exclude SOL transaction costs and refundable deposits.",
      "Bank code is now immutable; Poker, Fights, RPS and Perps remain upgradeable. Current authority evidence: https://soltoshidice.wtf/verification#bank-immutable. This proof does not remove upgrade-authority, oracle, custody or availability risks."
    ],
    "evidenceMode": "live-finalized-rpc",
    "freshGameplay": false,
    "rpc": "https://api.mainnet-beta.solana.com",
    "note": "A new read of a historical round. No new wager was submitted. The available browser Cee-lo harness is simulated and cannot establish devnet/mainnet settlement."
  }
}
