Protocol Participants
Governance Delegates
Section titled “Governance Delegates”All current Governance Delegates must deploy a new Vote Delegate V3 contract using the Vote Delegate Factory V3 0x4Cf3DaeFA2683Cd18df00f7AFF5169C00a9EccD5. To do this, call the create() function on the factory. After deployment, verify that the delegate’s chief() field points to the upgraded Chief contract. Migrate any self-staked MKR to SKY, and inform all MKR or SKY holders who delegate to you that they must re-delegate to your new address. Old V2 delegate contracts will stop counting votes once the new Chief is ratified.
Steps for Governance Delegates
Section titled “Steps for Governance Delegates”-
Deploy a V3 Delegate: Call
create()on Vote Delegate Factory V3. The factory will deploy a new your new Vote Delegate contract which will be linked to the upgraded Chief and Polling contracts. -
Verify the Link: Call
chief()on your new delegate contract. It must return the new Chief address, confirming V3 compatibility. -
Migrate Your Own Stake: Convert any MKR you have locked to SKY, then call
lock()in your V3 delegate contract to stake your SKY. -
Update Public References: Update your Governance Portal profile, delegate registry repositories, forum threads, dashboards, and ENS records to show your new delegate address.
-
Announce the Change: Share the update via forum posts, X/Twitter, Discord, newsletters, and Governance & Risk calls. Provide a direct link to the Voting Portal’s “Re-Delegate” flow, pre-filled with your new address.
-
Deprecate the Old Contract: Once all delegations have moved, label the old delegate contract as deprecated wherever possible.
Broadcast Message for Delegators
Feel free to use or adapt the following message:
Action required: Our new Vote Delegate V3 contract is live at 0xAB...34. Please open the Voting Portal and re-delegate your SKY balance to the new delegate address to keep your voting weight active under the upgraded Chief.
Governance Participants
Section titled “Governance Participants”As a governance participant, you currently either deposit MKR directly in the Chief contract to vote yourself or delegate your voting weight through a Vote Delegate contract managed by a Governance Delegate. With the Sky Ecosystem governance upgrade, MKR and DSChief are replaced by SKY and the new Chief, and new Vote Delegate V3 contracts are introduced. After the new Chief is ratified, DSChief and all Delegate V2 contracts will stop accruing voting weight. You must move your MKR from the current Chief to your new SKY token balance in the upgraded Chief. MKR can be upgraded to SKY without incurring any Delayed Upgrade Penalties for a limited time.
Direct Self-Voting with SKY
Section titled “Direct Self-Voting with SKY”-
Withdraw MKR from DSChief: In the current Voting Portal, choose Withdraw, approve the IOU, then execute
free(). DSChief requires two transactions because it burns an IOU token first. -
Upgrade MKR to SKY: Use the official converter (or any interface that calls the published
MkrSkycontract). One MKR mints 24,000 SKY until Sky Ecosystem governance activates the Delayed Upgrade Penalty on all upgrade conversions. -
Deposit SKY into the New Chief:
lock(uint256)function deposits your SKY token balance into the new Chief. -
Vote: Use
prepareSlateandvote(bytes32[])as before; the only difference is the token. -
Withdraw Later: Use
free()to withdraw SKY from Chief back to your wallet; IOU approval is no longer needed.
Delegated Voting through Delegate V3
Section titled “Delegated Voting through Delegate V3”-
Withdraw MKR from the V2 Delegate: Use
free()to withdraw. V2 delegates will be ignored once the new Chief is live. -
Upgrade MKR to SKY: Only SKY counts in the new Chief.
-
Find Your Delegate’s New Address: Every active Governance Delegate will publish a V3 contract. Look for the new address on the Delegates page or their forum thread, or select a new Governance Delegate.
-
Verify the Delegate Contract: Call
chief()on the contract; it must return the new Chief address, confirming V3 compatibility. -
Confirm Official Deployment: Ensure the Vote Delegate V3 contract was deployed using the official Vote Delegate Factory V3 by calling the
createdgetter function, which returns1for a valid contract. -
Deposit SKY into the V3 Delegate: Use the Voting Portal to deposit SKY into the V3 Vote Delegate contract or use the
lock()function on the Vote Delegate V3 contract.
Seal Engine Stakers
Section titled “Seal Engine Stakers”If you have a position in the Seal Engine (also known as LockStake Engine V1), you must close it and migrate to the Staking Engine (LockStake Engine V2).
This applies to current vaults that:
- Are earning farming rewards (lsMKR)
- Have an active vote delegate
- May or may not have USDS debt
1. Collect Your Position Data
Section titled “1. Collect Your Position Data”Check the following before starting the migration:
| What to Check | Why It Matters During Shutdown |
|---|---|
| USDS debt (drawn balance) | Must be zero before you can unlock collateral in V1. |
| Collateral locked (MKR) | Ensure your receiving wallet has enough gas for the conversion. |
| lsMKR farm rewards | Claim any outstanding rewards; unclaimed lsMKR is burned at close. |
| Vote delegate address | You’ll need to re-delegate after opening your V2 vault. |
2. Close the V1 Position
Section titled “2. Close the V1 Position”All actions are performed using the V1 UI or contract.
-
Harvest lsMKR rewards: Call
harvest()to claim any outstanding lsMKR. -
Repay USDS debt (if any): Call
wipe(uint wad)to bring your USDS debt to exactly zero. Include stability fees in the wipe. -
Remove the vote delegate (optional): Call
delegate(0x000...00)to clear the delegate address. -
Unlock collateral: Call
free(uint wad)to release MKR to your wallet. -
Revoke unlimited approvals (optional): In your wallet UI, remove infinite MKR and lsMKR spend approvals for LockStake Engine V1.
3. Upgrade MKR to SKY
Section titled “3. Upgrade MKR to SKY”LockStake Engine V2 accepts SKY, not MKR. If you already hold SKY from another source, you can skip this conversion for that portion.
-
Convert MKR to SKY: Call
mkrToSky()on the Converter V2 contract. -
Receive SKY: You now hold SKY. When you lock SKY in V2, lsSKY is minted automatically.
4. Open a New V2 “Staking Engine” Vault
Section titled “4. Open a New V2 “Staking Engine” Vault”-
Approve SKY for V2: Call
sky.approve(lockstakeEngineV2, type(uint256).max)once. -
Lock collateral: Call
lock(uint wadSKY). -
(Optional) Draw USDS: Call
draw(uint wadDai). The per-vault fee is now immutable; check the UI for the set value. -
Set your vote delegate: Call
delegate(<delegateAddress>). -
Confirm farming has started: V2 emits
Lock()andDelegateChanged()events. Farming rewards accrue in lsSKY.
5. What You Get Back When Closing V1
Section titled “5. What You Get Back When Closing V1”| Asset | Returned? | Notes |
|---|---|---|
| MKR collateral | Yes | All locked MKR is returned to your wallet. |
| lsMKR farming rewards | Only if claimed | Unclaimed lsMKR is burned when the vault is closed. |
| Vote power | Removed | You must re-delegate in V2. |
| Any fees | No refund | Stability fees are consumed on wipe. |
You cannot lock MKR directly in V2—convert to SKY first.
On-Chain Migration with LockstakeMigrator
Section titled “On-Chain Migration with LockstakeMigrator”If you want to migrate a Seal Engine position with USDS debt without repaying the debt manually, use the on-chain migrator (if the new Staking Engine has enough debt ceiling).
LockstakeMigrator (flash-loan helper):
- Use the LockstakeMigrator contract instead of steps 2–4 for zero-debt-repayment migration.
- The migrator will:
- Take a short-lived USDS flash loan.
- Repay your V1 debt, unlock MKR, and convert it to SKY.
- Lock SKY into a new V2 vault.
- Draw USDS from the new vault to repay the flash loan.
Your vault will end up in V2 with the same debt and collateralization ratio, but with the new fee schedule and SKY collateral.
Released into the public domain (CC0 1.0 Universal) – trademarks remain with their owners; no warranty. See full license.