Old MCD System Diagram

Updated MCD System Diagram

Legend

Actions

Act - Public action

Act - Authorised action

Act - Governance action

Storage

var - Storage variable [type]

var - Storage variable updatable via governance [type]

Cat The Liquidator

The Cat is the system's liquidation agent: it decides when a position is unsafe and allows it to be seized and sent off to auction.


Bite - Trigger liquidation of an unsafe Vault


File - Gov config

wards(usr: address) - Auth [uint]


ilks(ilk: bytes32) - Collateral type [Ilk]


live - Cage flag [uint]

vat - Vat [address]

vow - Vow [address]

cat.sol


Dai Token

The Dai contract is the user facing ERC20 contract maintaining the accounting for external Dai balances. Most functions are standard for a token with changing supply, but it also notably features the ability to issue approvals for transfers based on signed messages.


Mint - Mint to an address


Burn - Burn at an address


Push - Transfer


Pull - Transfer From


Move - Transfer From


Approve - Allow pulls and moves


Permit - Approve by signature

name - Dai Stablecoin [string]

symbol - DAI [string]

version - 1 [string]

decimals - 18 [uint8]


totalSupply - Total Supply [uint]


balanceOf(usr: address) - User balance [uint]

allowance(src: address, dst: address) - Approvals [uint]

nonces(usr: address) - Permit nonce [uint]

dai.sol


DaiJoin Token adapter

The DaiJoin adapter allows users to withdraw their Dai from the system into a standard ERC20 token.


Join - Deposit tokens to the system


Exit - Remove tokens from the system

join.sol


End Global settlement

end.sol


ESM Emergency Shutdown Module