Protocol Configurations

Design Ethos

We have designed many parameters in PLAY Finance to be configurable. While the initial configurations are set by the core developer team, we have every intention to let the Governance community decide on what needs to be changed which will happen through voting.

Timelock

Timelock is a contract for delaying changes to the protocol. This contract is an owner of all the major contracts in PLAY Finance. Hence, every change needs to execute through this contract, which makes it function as a security moat.

In essence, every order from the admin(the group of core developers) has to pass through this contract and is delayed for 24 hours before taking effect. To be specific, the execution command for the order goes to the queue, waiting to be executed when the 24h delay is passed. This is a security feature that enables the community to see any upcoming updates and prepare in advance for them. If anything looks suspicious, they can pull their funds from the protocol before the update takes effect.

Below are the contracts owned by Timelock

  • All Vault Contracts

  • FairLaunch Contract

  • Lottery Contract

  • PriceOracle Contracts

  • Config Contracts

  • SAFU Contracts

Proof of Transfer Ownership:

Time lock Parameters

Minimum delays of 86,400 seconds -i.e., 24 hours

Adjustable Parameters

This section lists all adjustable parameters and functions in PLAY Finance

FairLaunch Contract

  • setMultiplierDenominator(multiplierDenominator)

  • setPlayPerBlock(playPerBlock)

  • setMaxTransferPrize(maxTransferPrize)

  • addBlackList(target)

Vault Contract

  • setMinDepositAmount(minDepositAmount)

  • setWithdrawFee(withdrawFee)

PriceOracle Contract

  • setFeeder(feeder)

Lottery Contract

  • setRefreshPrizeOn(refreshPrizeOn)

  • setCleanupDepositListOn(cleanupDepositListOn)

  • setGetNumUsersOn(getNumUsersOn)

  • setLottoConfig(lotteryType, canCreateNewLotto, timeInterval, maxValidRange, feePlayToTheMoon, feeSafu, feeOperator, feeNextLottery, feeDenominator, prizeLocker, prizeLockupBlock)

  • addVault(vault, lotteryType, allocPoint, startBlock, multiplier, fixedPrice, isFixedPrice)

  • updateVault(vault, lotteryType, allocPoint, multiplier, fixedPrice, isFixedPrice)

Config Contract

  • setRouter(router)

  • setFactory(factory)

  • setWbnb(wbnb)

  • setPriceOracle(priceOracle)

  • setRefPriceToken(refPriceToken)

  • setSwapWhiteList(token, canSwap)

Last updated

Was this helpful?