There are 4 roles in the contract. Notably, various gnosis multisigs are used to secure the contract.
The following are the roles in the Paradox contract, and the associated information with how the roles are currently governed.
DEFAULT_ADMIN_ROLE
Deploys Contract, sets addresses of all roles, revokes their role.
GAME_ADMIN_ROLE (2/3 Game Admin Multisig)
CreatePool - Creates games people can bet on.
ADMIN_ROLE (4/7 Admin Role Multisig)
AuthorizeUpgrade - Push changes to the contract.
UpdateVerisignerAddress - Update address that signs commission (changes private key that allows users to claim commission)
UpdateERC20Contract - Accept new token.
UpdateVaultContract - Direct unclaimed winnings and commission to new wallet.
UpdateBettingAddress - Change the address of the smart contract for taking bets.
UpdateProxyAddress - Upgrade the proxy address.
Signers:
0xefce3Be5fBDC1cEDB6b426BBb852e47fBcBEe1f8
0x093a4733Df5F52ef44d05ffceE49954D0c3931aC
0x770514BC77FB9619Ad4ca3510a618E6bDAB91d33
0xa16975d07a21D42C4FF41aeDfC3f6Be949768749
0x810984Ddc9116895F1BDe426F576E715CB608A23
0xE1Ad4e51CE80415Ac6EBb9e4F6b5C42FA305Ea32
0x2C5Edcc5c4a8fd151Ef490FC246935882D63158B
MULTI-SIG_ROLE (3/6 Game Grading Multisig)
Enter winner(s) — Allow all users to claim winnings and commissions from the contract.
Refund Pool — Allow all users to claim their bets back from the contract, including the commission paid.
Close Pool — Stop betting on the pool.
Start Pool — Opens a pool up for users to bet on.
Transfer Unclaimed Commission to Vault — Move all unclaimed commissions for a given event to a vault address, which must occur at least 90 days after the end time of the pool.
Transfer Unclaimed Payouts to Vault — Move all unclaimed winnings for a given event to a vault address, which must occur at least 90 days after the end time of the pool.
Change Start Time — Change the start time of the pool.