Roles assigned as encrypted state. Night kills computed on ciphertext. Nobody can prove their role with a screenshot. The contract is the game master.
Every role in FHE Mafia is stored as an encrypted handle on the Fhenix CoFHE threshold network — invisible to nodes, explorers, and other players.
At game start, the contract assigns each player a euint8 role handle. The ciphertext never appears in plaintext, even in the EVM.
Access control is enforced by the FHE ACL. Only the role owner's wallet can request decryption — and only via the threshold network.
Decryption requires a threshold of independent nodes to agree. No single party holds the key. Not even Fhenix.
Everyone gets a role. Nobody can prove it. That’s the whole game.


No tricks. No secrets. Just your gut and the people around you. Spot the liar, rally the room, and vote them out before it's too late.


You know who the wolves are — because you're one of them. Play innocent by day, strike by night. Your secret is sealed. No one can prove a thing.


Every night you peer behind one mask. The answer comes back to you — and only you. Trust what you learn. The table is counting on it.


One life per night. One choice. Pick wrong and someone disappears by morning. Pick right and you change everything.
A new game contract is deployed with a unique ID. No server. No middleman. Pure Solidity.
Your browser generates a disposable session wallet. One-click join — no MetaMask popup, no gas headache.
The contract calls Fhenix CoFHE to encrypt every role as euint8. The ciphertext lives on the threshold network — not on any node.
Day votes are tallied publicly. Night kills are computed on encrypted data. You see only what the contract allows you to see.
A single session wallet. No MetaMask popups. Pure on-chain deduction — encrypted by Fhenix, adjudicated by Solidity.