Skip to content

Token Holders

Sky Protocol’s MkrSky Converter contracts enable MKR holders to convert MKR to SKY through an on-chain mechanism at a protocol-defined fixed rate. Converter V1 will stay active until the governance upgrade spell is executed, and Converter V2 will activate following the passage of the MKR/SKY governance upgrade.

All conversions in the upgrade process are executed unidirectionally via the mkrToSky function, with fees applied according to the Delayed Upgrade Penalty schedule post-upgrade. Note that reverse conversion from SKY back to MKR requires utilizing an exchange and will not be possible through the Sky protocol.

For critical dates regarding the upgrade process, consult the upgrade timeline, which specifies when Converter V2 activates and when the Delayed Upgrade Penalties take effect.

The mkrToSky function within the Converter contract (MkrSky.sol) facilitates on-chain MKR→SKY conversions at the protocol-defined rate.

Signature

function mkrToSky(address usr, uint256 mkrAmt) external;

Input Parameters

  • usr (address): Destination address for receiving SKY tokens.
  • mkrAmt (uint256): Quantity of MKR tokens (18-decimal precision) to convert.

Fee Parameter

  • fee (uint256, WAD): Protocol-wide conversion fee rate (scaled by 1e18) configurable by governance through the file("fee", newFee) admin operation. When non-zero, this fee is deducted from the calculated SKY output.

Event Log Each mkrToSky execution emits an event containing (caller, usr, mkrAmt, skyAmt, skyFee).

event MkrToSky(
address indexed caller,
address indexed usr,
uint256 mkrAmt,
uint256 skyAmt,
uint256 skyFee
);

Follow this procedure to calculate the expected SKY output from your MKR conversion:

  1. Query the current fee rate

    • Call the public getter on the Converter contract: fee() returns the current fee (WAD-scaled, where 1 WAD = 1e18).
    • Example: a 1% fee is represented as 0.01 × 1e18 = 1e16.
  2. Calculate gross SKY amount

    • The protocol conversion rate is fixed at 1 MKR → 24,000 SKY.
    • grossSky = mkrAmt × 24,000
  3. Calculate fee amount in SKY

    • skyFee = grossSky × fee ÷ 1e18
  4. Calculate net SKY received

    • netSky = grossSky - skyFee
  5. Calculation example (100 MKR, 1% fee)

    grossSky = 100 × 24,000 = 2,400,000 SKY
    skyFee = 2,400,000 × 0.01 = 24,000 SKY
    netSky = 2,400,000 - 24,000 = 2,376,000 SKY

Converter V1 is currently operational. Upon approval of the governance upgrade proposal, Converter V1 will be deactivated and Converter V2 will become operational. Conversions are irreversible within the protocol; converting SKY back to MKR requires executing a swap on an external exchange.

Sky governance allocates the required amount of SKY tokens to the Converter V2 contract to accommodate the conversion of the entire outstanding MKR supply. During conversion, the Converter transfers these SKY tokens directly to your specified address rather than minting new tokens—you will observe a transfer event from the Converter, not a mint event on the SKY token contract. Simultaneously, Converter V2 burns the corresponding MKR tokens as part of the upgrade transaction. Please note that Converter V1 previously minted new SKY tokens on-demand unlike Converter V2.

Fees collected during conversions accumulate within the Converter contract and are tracked by the internal take variable. Governance can extract these accumulated fees by executing the collect(to) function at its discretion.

The MKR:SKY conversion ratio is fixed at 1:24,000. In the future, Sky protocol governance may activate a Delayed Upgrade Penalty that will reduce this conversion ratio by a specified percentage. Refer to the upgrade timeline for details regarding the anticipated activation date of the Delayed Upgrade Penalty and its future schedule of increases.

Released into the public domain (CC0 1.0 Universal) – trademarks remain with their owners; no warranty. See full license.