maker

Installation
SKILL.md

MakerDAO / Sky Protocol

MakerDAO is the protocol behind DAI, the largest decentralized stablecoin on Ethereum. Users lock collateral in Maker Vaults (formerly CDPs) to mint DAI. The protocol charges a stability fee (interest) on outstanding DAI debt and maintains a target price of $1 through the DAI Savings Rate (DSR) and liquidation mechanisms. In 2024, MakerDAO rebranded to Sky Protocol, introducing USDS (upgraded DAI) and SKY (upgraded MKR). Both old and new tokens coexist -- DAI/MKR are not deprecated.

What You Probably Got Wrong

LLMs consistently hallucinate Maker contract interfaces. The system is complex: all accounting happens in the Vat using internal rad/wad/ray units. Users interact through DSProxy + DssProxyActions, NOT directly with the Vat. These corrections are non-negotiable.

  • Maker is mid-rebrand to Sky. DAI is becoming USDS. MKR is becoming SKY. Both coexist on mainnet. The old contracts still work. The new Sky contracts wrap/unwrap between old and new tokens. If someone says "Maker" they might mean either system. Always check which token set they need.

  • You do NOT call the Vat directly. Normal users interact through a DSProxy contract that delegates calls to DssProxyActions. The Vat uses internal accounting units (rad = 10^45) that require precise math. DssProxyActions handles this conversion. If you see raw Vat.frob() calls, you are writing low-level code that will almost certainly have precision errors.

  • DAI has two representations. Internal DAI in the Vat (vat.dai(address)) is measured in rad (10^45). External DAI (the ERC-20 token) is measured in wad (10^18). The DaiJoin adapter converts between them. Never confuse the two.

  • Stability fees accrue continuously. The Jug contract compounds the stability fee rate into an ever-increasing rate accumulator per collateral type (ilk). Debt is stored as normalized debt (art) in the Vat. Actual debt = art * rate. You MUST call jug.drip(ilk) to update the rate before calculating accurate debt.

  • Liquidation 2.0 uses Dutch auctions, not English auctions. The old Flipper (English auctions) was replaced by the Clipper (Dutch auctions) in Liquidation 2.0. Dutch auctions start at a high price and decrease over time. Bidders call clipper.take(), not bid().

  • Vault IDs (cdpId) are NOT the same as ilk identifiers. An ilk (e.g., ETH-A, WBTC-A) defines the collateral type and its risk parameters. A vault (CDP) is a specific user position within an ilk. The CdpManager maps vault IDs to (ilk, urn address) pairs.

Installs
1
First Seen
Aug 4, 2026
maker — justaname-id/cryptoskills