Contracts and controls
The MSS2 contracts on each chain, what the owner can and cannot change, and why staking is upgradeable.
MSS2 runs on five contracts per chain. This page lists them and sets out what the owner can and cannot change.
The contracts
| Contract | What it does | Upgradeable |
|---|---|---|
| MSS2 token | The ERC-20 token and LayerZero bridge endpoint. Handles minting, claims, referrals, credits, and the entry points for staking, Buy & stake and gifts. | No |
| Staking proxy | Holds every stake on the chain. Pays collect and compound. Issues referral stake credits. | Yes |
| Staking implementation | The code the staking proxy runs. Holds no funds. | Replaced by upgrade |
| Liquidity vault | Holds the permanently locked Topaz position. Collects and reinvests fees. | No |
| Buy & stake executor | Buys MSS2 from the pool for Buy & stake only. Has no owner. | No |
The same set is deployed on Robinhood and on Arc. The token on each chain accepts bridge messages only from its counterpart on the other chain.
Addresses
| Network | MSS2 token | Staking |
|---|---|---|
| Published at launch | Published at launch | |
| Published at launch | Published at launch |
Upgradeable staking
The staking contract is upgradeable, so its functionality can be improved and refined over time if the need arises. Upgrades update the code behind the same staking address, so stakes stay exactly where they are and nothing needs to be moved.
The token contract, which is not upgradeable, remains the only way into staking. It only ever moves the caller's own tokens, and never more than the caller offered.
What the owner can do
Token owner
- Pause and unpause new mints. Claims, withdrawals, staking and trading are not affected.
- Set the launch time, and change it only before that time arrives.
- Change the operations wallet. Credits already earned stay with whoever earned them.
- Configure the bridge route to the other chain and its LayerZero settings.
- Transfer ownership.
Before launch, the owner connects the liquidity vault, the Buy & stake executor and the staking contract once each, and funds the opening pool. These links are then fixed.
Staking owner
- Change the per-wallet stake cap, never below 1,000,000 MSS2. Stakes above a lowered cap are kept but cannot grow.
- Change the referral stake credit rate between 0% and 10%. It starts at 5%.
- Upgrade the staking contract.
- Transfer ownership.
Liquidity vault owner
The vault owner prepares the pool before it is funded. After funding, the owner has no control over the position or its fees.
What is fixed
These are set in contracts that cannot be upgraded:
- the mint price, the 25% step, the 1,000,000-token limit per mint and the payment limit
- the 5% / 2.5% / 1.25% mint referral rates and the 75% liquidity share
- everyone's recorded referrer
- the locked liquidity, which can never be withdrawn, transferred or reduced
- wallet balances, which no one but the holder can move
- referral credits in ETH or USDC, which only their earner can withdraw
- no transfer, buy or sell tax
Other roles
| Role | Can do |
|---|---|
| Operations wallet | Withdraw its credits and change the operations address |
| Fee keeper | Automatically collect and reinvest the 3% trading fees, which anyone can also do |
| Anyone | Claim a mint for its recorded owner, and collect and reinvest pool fees |
Details
- Standards. The token is an ERC-20 with 18 decimals and a LayerZero OFT for bridging. Staking uses a UUPS proxy (ERC-1967).
- No plain-transfer purchases. Sending ETH or USDC directly to the token is rejected. Minting always goes through a mint request.
- Before launch. MSS2 cannot be transferred or traded until the opening time.