Any game with simultaneous secret moves, a shared pot and payouts fits. Concept only; detailed design deferred.
GAMEHOUSE
one reusable contract on Arc · HopeVault per cartridge
join · haloSigcommit / revealdealssettleSettled event
CART 01 · INSERTED
Open or Steal
Open / Steal
CART 02
Minority Game
A / B; the minority side splits the pot
CART 03
Lowest Unique Number
1–9 on a dial
CART 04
Beauty Contest
Guess 2/3 of the table's average
CART 05
Volunteer's Dilemma
One player sacrifices so the rest win
CART 06
HOPE Auction
Sealed bids for the jackpot
interface IGameRules {
function config() external view returns (Config memory);
// seats, stake, phase durations, move space
function resolve(uint8[] calldata moves, uint256 pot)
external pure returns (uint256[] memory payouts,
uint256 toHope, bytes memory stats);
}
contract GameHouse {
// seats & identity : join(gameId, seat, haloSig)
// — HaLo-signed EIP-712 + USDC authorization
// commit / reveal : commit(gameId, seat, hash)
// → reveal(gameId, seat, move, salt); timeouts → default move
// deals : conditional transfers keyed on revealed moves
// Pact(members, bond) · Bribe(from, to, amt, ifMove) · Cut(from, to, bps)
// settle : rules.resolve() → payouts, deals,
// HopeVault[cartridge] += toHope
// events : Settled(gameId, payouts, stats, episodeRoot)
// → ENS reputation mirror, 0G episode root
}