# HAI Production Deployment Parameters
## Relevant Files
- Testnet Params: https://github.com/hai-on-op/core/blob/main/script/GoerliParams.s.sol
- Mainnet Params: https://github.com/hai-on-op/core/blob/main/script/MainnetParams.s.sol
- Params: https://github.com/hai-on-op/core/blob/main/script/Params.s.sol
- Common: https://github.com/hai-on-op/core/blob/main/script/Common.s.sol
# Governance
### Gnosis Safe (Treasury)
Protocol treasury owned by the timelock.
Address: `0xDCb421Cc4Cbb7267F3b2cAcAb44Ec18AEbEd6724`
### Admin Safe
Governance owned 1 of 1 (2nd secondary tax receiver)
Address: `0x468c572c41DB8B206B3919AC9a41ad8dE2eAc822`
### Timelock Controller
Address: `0x00`
Contract: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v5.0/contracts/governance/TimelockController.sol
### HaiGovernor
Address: `0xe807f3282f3391d237BA8B9bECb0d8Ea3ba23777`
Contract: https://github.com/hai-on-op/core/blob/dev/src/contracts/governance/HaiGovernor.sol
```solidity
votingDelay: 43_200 // 12 hours - Delay since proposal is created until voting starts.
votingPeriod: 129_600 // 36 hours - Length of period during which people can cast their vote.
proposalThreshold: 5_000 * WAD // 5k - Minimum number of votes an account must have to create a proposal.
quorumNumeratorValue: 1 // 1% - Quorum required for a proposal to pass.
quorumVoteExtension: 86_400 // Minimum voting period after quorum is reached as a security protection against large voters
timelockMinDelay: 86_400 // 1 day - Initial minimum delay for operations
```
### Multi-Signature Safes
| Safe | Address | Security | Signers | Description |
| ------------- |:-------------------------------------------- |:-------- | ------- |:--------------------------------- |
| Incentives | `0x21a1Ec8c62bbdad4680742B88695F06f55a51bda` | `2/4` | Ameen, Reza, Pies, Kingfish | Early Usage Alignment (Incentives |
| FLX Alignment | `0x638d5CcAF57446363e8Ca5BD09b220EE7A87e8C6` | `2/4` | Ameen, Reza, Pies, Kingfish | Altar of RAI |
| Internal Vest | `0xDC1e6DD8bDf7FD3b8F9fE663Ee5E3340cEfaC854` | `3/5` | Ameen, Reza, Pies, Kingfish, Number Group | To Internal member streams |
| Partnership | `0x1eF475097fd67A8429DFC1065F774C0368e6312D` | `2/4` | Ameen, Reza, Pies, Kingfish | Partnership streams
| OP Grant | `0x7Cb4a147A54e1406AEA3C8BE623A26bdd554322B` | `2/4` | Ameen, Reza, Pies, Kingfish | OP from the initial grant
### Multi-Signature Signers
| User | Adress |
| -------- | -------- |
| Ameen | ameen.eth (`0x297BF847Dcb01f3e870515628b36EAbad491e5E8`) |
| Reza | reza.eth (`0x0a453F46f8AE9a99b2B901A26b53e92BE6c3c43E`) |
| Pies | 0xpies.eth (`0x2825803b02ddACe519de971F512568Ed983faB96`) |
| Kingfish | `0x9640F1cB81B370186d1fcD3B9CBFA2854e49555e` |
| Number Group | numbergroup.eth (`0xB8eB653DD6D0eD6f7FE15D7A3E216bbf147eAF99`) |
### Grants
## Optimism Cycle 14
[HAI grant application](https://app.charmverse.io/op-grants/page-5989100035328812)
[Cycle 14 results](https://gov.optimism.io/t/cycle-14-final-grants-roundup/6676)
# Miscellaneous
### Token Distrubtor
```solidity
root: bytes32(keccak256("420")), // TBD
totalClaimable: 1_000_000 * WAD,
claimPeriodStart: block.timestamp + 7 days, // 1 week after deploy
claimPeriodEnd: 1_735_689_599 // Last second of 2024 UTC
```
### HAI Params
```solidity
bytes32 constant HAI = bytes32('HAI'); // 0x4841490000000000000000000000000000000000000000000000000000000000
uint256 constant HAI_USD_INITIAL_PRICE = 1e18; // 1 HAI = 1 USD
```
### Job Params
```solidity
uint256 constant JOB_REWARD = 1e18; // 1 HAI
```
# Protocol
### Constants
```solidity
uint256 constant MINUS_0_5_PERCENT_PER_HOUR = 999_998_607_628_240_588_157_433_861;
```
### SAFE Engine
Params: `SAFEEngineParams`
Address: `0x9Ff826860689483181C5FAc9628fd2F70275A700`
Contract: https://github.com/hai-on-op/core/blob/dev/src/contracts/SAFEEngine.sol
```solidity
safeDebtCeiling: 1_000_000 * WAD, // WAD - 1M
globalDebtCeiling: 0 // RAD - For launch
// globalDebtCeiling: 55_000_000 * RAD // RAD * Change to 55M w/ proposal
```
### Accounting Engine
Params: `AccountingEngineParams`
Address: `0xa4900795EbFfadc12790f05f7c4AC42CD765Bd10`
Contract: https://github.com/hai-on-op/core/blob/dev/src/contracts/AccountingEngine.sol
```solidity
surplusIsTransferred: 0, // Surplus is auctioned - Boolean: whether the surplus is transferred or auctione)
surplusDelay: 1 days, // Delay since last surplus auction trigger
popDebtDelay: 14 days, // ~ 14 - 21 - Delay between collateral auction and protocol debt settlement
disableCooldown: 3 days, // Time after GS to transfer the surplus to the PostGSSurplusAuctioneer
surplusAmount: 42_000 * RAD, // 42k HAI - Amount over target needed to trigger auction
surplusBuffer: 100_000 * RAD, // > 100k HAI or .1% - Target of surplus Buffer
debtAuctionMintedTokens: 10_000 * WAD, // 10k KITE - Lot size of debt auction (Governance Tokens)
debtAuctionBidSize: 10_000 * RAD // 10k HAI - Bid size of system debt token during Debt Auction
```
### Debt Auction House
Params: `DebtAuctionHouseParams`
Address: `0x7CdE0d7296725aFB80EA091Eca8D06A377f617b3`
Contract https://github.com/hai-on-op/core/blob/dev/src/contracts/DebtAuctionHouse.sol
```solidity
bidDecrease: 1.025 * WAD, // 2.5% - Minimum bid change size in Debt Auction
amountSoldIncrease: 1.5 * WAD, // 50% - Increse in token lot size upon auction restart
bidDuration: 3 hours, // Maximum length of an auction before it can be settled
totalAuctionLength: 2 days // Minimum length of an auction before it can be settled
```
### Surplus Auction House
Params: `SurplusAuctionHouseParams`
Address: `0x096125Fa7E2181DbA78136782365a39c3a1778E9`
Contract https://github.com/hai-on-op/core/blob/dev/src/contracts/SurplusAuctionHouse.sol
```solidity
bidIncrease: 1.01 * WAD, // 1% - Minimum bid change
bidDuration: 6 hours, // maximum time after bid before Surplus Auction closes
totalAuctionLength: 1 days, // Deadline for an auction to be settled (no more bids after time elapsed, can be restarted if no bids)
bidReceiver: governor, // Governor = Timelock for Rabbit
recyclingPercentage: 0 // 100% is burned
```
### Liquidation Engine
Params: `LiquidationEngineParams`
Address: `0x8Be588895BE9B75F9a9dAee185e0c2ad89891b56`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/LiquidationEngine.sol
```solidity
onAuctionSystemCoinLimit: 10_000_000 * RAD, // 10M HAI - Maximum Size of debt that can be liquidated at one time (global, all liquidations)
saviourGasLimit: 10_000_000 // 10M gas - We are not launching with saviours so this doesn't do anything
```
### Stability Fee Treasury
Params: `StabilityFeeTreasuryParams`
Address: `0xE9E54c55d41D6622933F9F736e0c55484b3c4f6f`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/StabilityFeeTreasury.sol
```solidity
treasuryCapacity: 1_000_000 * RAD, // 1M HAI - At which amount of surplus the Treasury can give back funds to AccEngine
pullFundsMinThreshold: 0, // no threshold - Minimum amount in SF Treasury that will allow funds to be pulled
surplusTransferDelay: 1 days // Time between transfer back to AccountingEngine
```
### Tax Collector
Params: `taxCollectorParams`
Address: `0x62B82ccE08f8F2D808348409E9418c65EB1973C3`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/TaxCollector.sol
```solidity
primaryTaxReceiver: address(accountingEngine), // 59%
globalStabilityFee: RAY, // no global SF
maxStabilityFeeRange: RAY - MINUS_0_5_PERCENT_PER_HOUR, // +- 0.5% per hour
maxSecondaryReceivers: 5 // stabilityFeeTreasury
// Secondary Tax Receiver
// per all collaterals:
receiver: address(stabilityFeeTreasury),
canTakeBackTax: true, // [bool]
taxPercentage: 0.2 * WAD // [wad%] 20%
// Tertiary Tax Receiver (For all admin stuff, e.g. protocol pay taxes etc...)
// per all collaterals:
receiver: 0x468c572c41DB8B206B3919AC9a41ad8dE2eAc822,
canTakeBackTax: true, // [bool]
taxPercentage: 0.21 * WAD // [wad%] 21%
```
# PID
### Constants
```solidity!
// See - https://github.com/makerdao/spells-mainnet/blob/master/scripts/rates.sh
REDEMPTION_RATE_UPPER_BOUND = 1000000074561623060142516377 // 950 %
REDEMPTION_RATE_LOWER_BOUND = 99999999999997789272222624 // -90% (10%)
```
### Oracle Relayer
Params: `OracleRelayerParams`
Address: `0x6270403b908505F02Da05BE5c1956aBB59FDb3A6`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/OracleRelayer.sol
```solidity!
redemptionRateUpperBound: REDEMPTION_RATE_UPPER_BOUND, // 950% - Maximum value of redemption rate
// 950%: 1000000074561623060142516377
redemptionRateLowerBound: REDEMPTION_RATE_LOWER_BOUND // -90% (10%) - Minimum value of redemption rate
```
### PID Controller
Params: `PIDControllerParams`
Address: `0x6f9aeC3c0DF4DF7A0Da66453a38B8C767972f609`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/PIDController.sol
```solidity!
// uint256 constant HALF_LIFE_30_DAYS = 999_999_732_582_000_000_000_000_000;
perSecondCumulativeLeak: HALF_LIFE_30_DAYS, // .999999732582e27 - Controls weight of previously observed integral error
noiseBarrier: .995 * WAD, // 0.5 %
feedbackOutputLowerBound: -int256(RAY - 1), // unbounded - Governor for how quickly redemption rate can change from one update to next
feedbackOutputUpperBound: RAD, // unbounded - Governor for how quickly redemption rate can change from one update to next
integralPeriodSize: 1 hours // ASK BERT - Min amount of time that has to pass for I-term to incorporate data
```
### PID Controller Gains
Params: `ControllerGains`
Address: `0x6f9aeC3c0DF4DF7A0Da66453a38B8C767972f609`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/PIDController.sol
```solidity!
// GET VALUES HERE - NOTE: imported from https://etherscan.io/address/0x5CC4878eA3E6323FdA34b3D28551E1543DEe54C6
// RAI Values
// uint256 constant PROPORTIONAL_GAIN = 222_002_205_862;
// uint256 constant INTEGRAL_GAIN = 16_442;
// HAI (We will use these)
// kp: 111_001_102_931 (50% of RAI)
// ki: 32_884 (200% of RAI)
kp: int256(PROPORTIONAL_GAIN), // 30 - 50% of current RAI
ki: int256(INTEGRAL_GAIN) // 100 - 150% of current RAI
```
### PID Rate Setter
Params: `PIDRateSetterParams`
Address: `0x1F76F20C9D9075dc160d0E47cd214dF0B7434d2f`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/PIDRateSetter.sol
```solidity
updateRateDelay: 1 hours // Frequency that redemption rate can be updated
```
# Global Settlement
### Global Settlement
Params: `GlobalSettlementParams`
Address: `0x75880aca7230462a630Ad65ad5444cb1E1864218`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/settlement/GlobalSettlement.sol
```solidity!
shutdownCooldown: 3 days // Time delay from start of GS process to freeze system (e.g., coin supply)
```
### Post Settlement Surplus Auction House
Params: `PostSettlementSAHParams`
Address: `0x1fa281EA8d0e9DB78bEAA1F5b1a452058F956d66`
Contract https://github.com/hai-on-op/core/blob/main/src/contracts/settlement/PostSettlementSurplusAuctionHouse.sol
```solidity!
bidIncrease: 1.01 * WAD, // + 1 %
bidDuration: 3 hours,
totalAuctionLength: 1 days // doesn't really matter
```
# Collateral
### Constants
```solidity!
DEBT_FLOOR = 150 * RAD // 150 HAI - Minimum debt minted per safe
LIQUIDATION_QUANTITY = 50_000 * RAD // 50k HAI - ceiling of debt that can be auctioned at once (lot size max)
```
### WETH
```solidity
// OracleRelayerCollateralParams
oracle: 0x00, // TBD - Collateral Oracle
safetyCRatio: 1.30 * RAY // 135% - Minimum collateral ratio (usage)
liquidationCRatio: 1.25 * RAY // 130% - Minimum collateral ratio (liquidation)
// TaxCollectorCollateralParams
stabilityFee: 1000000000472114805215157978 // 1.5% / yr - WETH safe stability fee (additive to global)
// SAFEEngineCollateralParams
debtCeiling: 25_000_000 * RAD, // 25M HAI - Maximum debt minted from WETH Safes
debtFloor: DEBT_FLOOR
// LiquidationEngineCollateralParams
collateralAuctionHouse: 0x00 // TBD
liquidationPenalty: 1.1 * WAD // 10% - Additional collateral auctioned to satisfy safe debt
liquidationQuantity: LIQUIDATION_QUANTITY
// CollateralAuctionHouseParams
minimumBid: 100 * WAD, // 100 HAI - Minimum liquidation auction bid size
minDiscount: 1 * WAD, // no discount - Discount that a collateral starts at
maxDiscount: 0.9 * WAD, // 10% - Max discount that a collateral can have
perSecondDiscountUpdateRate: 999985366702115272120527460 // RAY - 10% / 2hs
```
### WSTETH
```solidity
// OracleRelayerCollateralParams
oracle: 0x00, // TBD - WETH / USD Oracle
safetyCRatio: 1.35 * RAY // 140% - Minimum collateral ratio (usage)
liquidationCRatio: 1.30 * RAY // 135% - Minimum collateral ratio (liquidation)
// TaxCollectorCollateralParams
stabilityFee: 1000000000627937192491029810 // 2% / yr - WSTETH safe stability fee (additive to global)
// SAFEEngineCollateralParams
debtCeiling: 25_000_000 * RAD, // 25M HAI - Maximum debt minted from WSTETH Safes
debtFloor: DEBT_FLOOR
// LiquidationEngineCollateralParams
collateralAuctionHouse: 0x00 // TBD
liquidationPenalty: 1.1 * WAD // 10% - Additional collateral auctioned to satisfy safe debt
liquidationQuantity: LIQUIDATION_QUANTITY
// CollateralAuctionHouseParams
minimumBid: 100 * WAD, // 100 HAI - Minimum liquidation auction bid size
minDiscount: 1 * WAD, // no discount - Discount that a collateral starts at
maxDiscount: .9 * WAD, // 10 % - Max discount that a collateral can have
perSecondDiscountUpdateRate: 999985366702115272120527460 // RAY - 10% / 2hs
```
### OP
```solidity
// OracleRelayerCollateralParams
oracle: 0x00, // TBD - OP / USD Oracle
safetyCRatio: 1.80 * RAY // 165% - Minimum collateral ratio (usage)
liquidationCRatio: 1.75 * RAY // 160% - Minimum collateral ratio (liquidation)
// TaxCollectorCollateralParams
stabilityFee: 1000000001547125957863212448 // 5% / yr - OP safe stability fee (additive to global)
// SAFEEngineCollateralParams
debtCeiling: 5_000_000 * RAD, // 5M - Maximum debt minted from WETH Safes
debtFloor: DEBT_FLOOR
// LiquidationEngineCollateralParams
collateralAuctionHouse: 0x00 // TBD
liquidationPenalty: 1.15 * WAD // 15% - Additional collateral auctioned to satisfy safe debt
liquidationQuantity: LIQUIDATION_QUANTITY
// CollateralAuctionHouseParams
minimumBid: 100 * WAD, // 100 HAI - Minimum liquidation auction bid size
minDiscount: 1 * WAD, // no discount - Discount that a collateral starts at
maxDiscount: .85 * WAD, // 15% - Max discount that a collateral can have
perSecondDiscountUpdateRate: 999977428181205977622596568 // RAY - 15% / 2hs
```