MCD Glossaries
A list of words, terms, variables, functions and more relating to the Maker Protocol
2. MCD Core Smart Contracts Glossary:
General
guy
,usr
: some addresswad
: some quantity of tokens, usually as a fixed point integer with 18 decimal places.ray
: a fixed point integer, with 27 decimal places.rad
: a fixed point integer, with 45 decimal places.file
: administer some configuration value
Auth
auth
: check whether an address can call this methodward
: an address that is allowed to call auth'ed methodsrely
: allow an address to call auth'ed methodsdeny
: disallow an address from calling auth'ed methodsAuthority
- checks whether an address can call this methodKiss
- cancels out surplus and on-auction debt
Vat (Vault Engine)
gem
: collateral tokens.dai
: stablecoin tokens.sin
: unbacked stablecoin (system debt, not belonging to anyurn
).ilk
: a collateral type.rate
: stablecoin debt multiplier (accumulated stability fees).take
: collateral balance multiplier.Ink
: total collateral balance.Art
: total normalized stablecoin debt.
init
: create a new collateral type.urn
: a specific Vault.ink
: collateral balance.art
: normalized outstanding stablecoin debt.
slip
: modify a user's collateral balance.flux
: transfer collateral between users.move
: transfer stablecoin between users.grab
: liquidate a Vault.heal
: create / destroy equal quantities of stablecoin and system debt (vice
).fold
: modify the debt multiplier, creating / destroying corresponding debt.toll
: modify the collateral multiplier, creating / destroying corresponding collateral.suck
: mint unbacked stablecoin (accounted for withvice
).spot
: collateral price with safety margin, i.e. the maximum stablecoin allowed per unit of collateral.line
: the debt ceiling for a specific collateral type.Line
: the total debt ceiling for all collateral types.dust
: the minimum possible debt of a Vault.frob
: modify a Vault.lock
: transfer collateral into a Vault.free
: transfer collateral from a Vault.draw
: increase Vault debt, creating Dai.wipe
: decrease Vault debt, destroying Dai.dink
: change in collateral.dart
: change in debt.calm
: true when the Vault remains under both collateral and total debt ceilings.cool
: true when the stablecoin debt does not increase.firm
: true when the collateral balance does not decrease.safe
: true when the Vault's ratio of collateral to debt is above the collateral's liquidation ratio.
fork
: to split a Vault - binary approval or splitting/merging Vaults.dink
: amount of collateral to exchange.dart
: amount of stablecoin debt to exchange.
wish
: check whether an address is allowed to modify another address's gem or dai balance.hope
: enablewish
for a pair of addresses.nope
: disablewish
for a pair of addresses.
Note: art
and Art
represent normalized debt, i.e. a value that when multiplied by the correct rate gives the up-to-date, current stablecoin debt.
Accounting
debt
: the sum of alldai
(the total quantity of dai issued).vice
: the sum of allsin
(the total quantity of system debt).ilk.Art
: the sum of allart
in theurn
s for thatilk
.debt
: isvice
plus the sum ofilk.Art * ilk.rate
across allilk
's.
Collateral
gem
: can always be transferred to any address by it's owner.
Dai
dai
: can only move with the consent of it's owner / can always be transferred to any address by it's owner.
Other
LogNote
: a general purpose log that can be added to any function from a contract.
Jug (Stability Fees)
Structs
Ilk
: contains two uint256
values—duty
, the collateral-specific risk premium, and rho
, the timestamp of the last fee update
VatLike
: mock contract to make Vat interfaces callable from code without an explicit dependency on the Vat contract itself
Storage
wards
: mapping(address => uint)
that indicates which addresses may call administrative functions
ilks
: mapping (bytes32 => Ilk)
that stores an Ilk
struct for each collateral type
vat
: a VatLike
that points the the system's Vat contract
vow
: the address
of the Vow contract
base
: a uint256
that specifies a fee applying to all collateral types
Administrative
These methods require wards[msg.sender] == 1
(i.e. only authorized users may call them).
rely
/deny
: add or remove authorized users (via modifications to the wards
mapping)
init(bytes32)
: start stability fee collection for a particular collateral type
file(bytes32, bytes32, uint)
: set duty
for a particular collateral type
file(bytes32, data)
: set the base
value
file(bytes32, address)
: set the vow
value
Fee Collection Methods
drip(bytes32)
: collect stability fees for a given collateral type
Cat (Liquidations)
mat
: the liquidation ratiochop
: the liquidation penaltylump
: the liquidation quantity, i.e. the fixed debt quantity to be covered by any one liquidation eventbite
: initiate liquidation of a Vaultflip
: liquidate collateral from a Vault to cover a fixed quantity of debt
Vow (Settlement)
sin
: the system debt queue.Sin
: the total amount of debt in the queue.Ash
: the total amount of on-auction debt.wait
: length of the debt queuesump
: debt auction bid size, i.e. the fixed debt quantity to be covered by any one debt auctiondump
: debt auction lot size, i.e. the starting amount of MKR offered to cover thelot
/sump
bump
: surplus auction lot size, i.e. the fixed surplus quantity to be sold by any one surplus auctionhump
: surplus buffer, must be exceeded before surplus auctions are possible
Other terms included in Vow documentation:
move
: transfers stablecoin between users.kick
: starts an auction.woe
: indicates specifically bad debt, or be used as a variable name for any amount of debt.
Flipper (Collateral Auctions)
wards [usr: address]
,rely
/deny
/auth
: Auth mechanismsBid
: State of a specific Auction {bid
,lot
,guy
,tic
,end
,usr
,gal
,tab
}bid
: Bid amount (DAI)/ DAI paidlot
: quantity up for auction / collateral gems for saleguy
: high bidder (address)tic
: Bid expiryend
: when the auction will finish / max auction durationusr
: address of the Vault being auctioned. Receives gems during thedent
phasegal
: recipient of auction income / receives dai income (this is the Vow contract)tab
: total dai wanted from the auction / total dai to be raised (in flip auction)
bids[id: uint]
: storage of all bidsvat
: storage of the Vat's addressilk
: id of the Ilk for which the Flipper is responsiblebeg
: minimum bid increase (default: 5%)ttl
: bid duration (default: 3 hours)tau
: auction length (default: 2 days)kicks
: Total auction count, used to track auctionid
skick
: function used byCat
to start an auction / Put collateral up for auctiontick
: restart an auction if there have been 0 bids and theend
has passedtend
: first phase of an auction. Increasing Daibid
s for a setlot
of Gemsdent
: second phase of an auction. Set Daibid
for a decreasinglot
of Gemsfile
: function used by governance to setbeg
,ttl
, andtau
deal
: claim a winning bid / settles a completed auctionyank
: used during Global Settlement to movetend
phase auctions to theEnd
by retrieving the collateral and repaying dai to the highest bidder.
Flapper (Surplus Auctions)
Flap
: surplus auction (selling stablecoins for MKR) [contract]wards [usr: address]
:rely
/deny
/auth
Auth Mechanisms [uint]Bid
: State of a specific Auction[Bid]bid
: quantity being offered for thelot
(MKR) [uint]lot
: lot amount (DAI) [uint]guy
: high bidder [address]tic
: Bid expiry [uint48]end
: when the auction will finish [uint48]
bids (id: uint)
: storage of allBid
s byid
[mapping]vat
: storage of the Vat's address [address]ttl
: bid lifetime / max bid duration (default: 3 hours) [uint48]lot
: lot amount (DAI) [uint]beg
: minimum bid increase (default: 5%) [uint]tau
: maximum auction duration (default: 2 days) [uint48]kick
: start an auction / put up a new DAIlot
for auction [function]tend
: make a bid, thus increasing the bid size / submit an MKR bid (increasingbid
) [function]deal
: claim a winning bid / settling a completed auction [function]gem
: MKR Token [address]kicks
: total auction count [uint]live
: cage flag [uint]file
: used by governance to setbeg
,ttl
, andtau
[function]yank
: is used during Global Settlement to movetend
phase auctions to theEnd
by retrieving the collateral and repaying DAI to the highest bidder. [function]tick()
: resets theend
value if there has been 0 bids and the originalend
has passed.
Flopper (Debt Auctions)
flop
: debt auction (covering debt by inflating MKR and selling for stablecoins)lot
: quantity up for auction / gems for sale (MKR)guy
: high bidder (address)gal
: recipient of auction income / receives dai income (this is the Vow contract)ttl
: bid lifetime (Max bid duration / single bid lifetime)beg
: minimum bid decreasepad
: Increase forlot
size duringtick
(default to 50%)tau
: maximum auction durationend
: when the auction will finish / max auction durationkick
: start an auction / Put up a new MKRbid
for auctiondent
: make a bid, decreasing the lot size (Submit a fixed DAIbid
with decreasinglot
size)deal
: claim a winning bid / settles a completed auctionvat
: the Vat's addressgem
: MKR Token (address)kicks
: Total auction count, used to track auctionid
slive
: Cage flagwards [usr: address]
,rely
/deny
/auth
: Auth mechanismsBid
: State of a specific Auction {bid
,lot
,guy
,tic
,end
}bid
: Bid amount inDAI / DAI paidtic
: Bid expirytick
: restarts an auction
End (Global Settlement / Shutdown)
cage
: Locks the system and initiates shutdown. This is done by freezing the user-facing actions, canceling flap
and flop
auctions, locking the rest of the system's contracts, disabling certain governance actions that could interfere with the settlement process, and starting the cool-down period.
cage(ilk)
: Tags the Ilk prices / Sets the final price for an ilk (tag
).
skim
: Settles a Vault at the tagged price / Cancels owed Dai from the Vault
free
: Remove (remaining) collateral from a settled Vault. This occurs only after there is no debt in the Vault.
thaw
: Fixes the Dai supply after all Skims / Fixes the total outstanding supply of stablecoin.
flow
: Calculates the fixed price for an ilk, possibly adjusting the cage
price with surplus/deficit.
pack
: Locks Dai ahead of Cash / Puts some stablecoin into a bag
in preparation for cash
.
cash
: Exchange pack
ed Dai for collateral / Exchange some Dai from bag
for a given gem
, share proportional to bag
size.
file
: The Governance configuration—sets various parameter values.
skip
: optionally cancel live auctions.
Other
wards(usr: address)
: Auth Mechanism
vat
: Vat contract
cat
: Cat contract
vow
: Vow contract
spot
: Spotter contract
live
: Cage flag
"Live" contracts have
live
= 1, indicating the system is running normally. Thus, whencage()
is invoked, it sets the flag to 0. This includes theEnd
contract, which means thatcage()
can only be invoked once and the subsequent functions cannot be invoked until we are "dead" and in the End process
ilk
: A collateral type
when
: Time of cage / the time of settlement.
wait
: Processing cooldown duration / the length of processing cooldown.
debt
: Outstanding Dai after processing / outstanding stablecoin supply, after system surplus/deficit has been absorbed.
tag
: Cage price / price per collateral type at time of settlement.
gap
: Collateral shortfall / shortfall per collateral considering undercollateralised Vaults.
Art
: Total debt per Ilk/outstanding stablecoin debt.
fix
: Final cash price / the cash price for an ilk (amount per stablecoin).
bag(usr: address)
: Dai packed for cash
/ nontransferable stablecoins ready to exchange for collateral.
out
: Cash out / the amount of already exchanged stablecoin for a given address.
skip
: Optionally cancel live auctions.
wad
: Some quantity of tokens, usually as a fixed point integer with 10^18 decimal places.
urn
: A specific Vault.
tend
: To make a bid, increasing the bid size.
bid
: The quantity being offered for the lot
.
lot
: The quantity up for auction.
dent
: To make a bid, decreasing the lot size.
Join (Token Adapters)
vat
: storage of theVat
’s address.ilk
: id of the Ilk for which aGemJoin
is created for.gem
: the address of theilk
for transferring.dai
: the address of thedai
token.one
: a 10^27 uint used for math inDaiJoin
.live
: an access flag for thejoin
adapter.dec
: decimals for the Gem.
Cat (Liquidations)
mul(uint, uint)
/rmul(uint, uint)
: will revert on overflow or underflowbite(bytes32, address)
: will revert iflot
orart
are larger than or equal to 2^255.bite
: will not leave a Vault with debt and no collateral.wards
: are allowed to call protected functions (Administration andcage()
)ilks
: storesIlk
structsIlk
is the struct with the address of the collateral auction contract (flip
), the penalty for that collateral to be liquidated (chop
) and the maximum size of collateral that can be auctioned at once (lump
).
live
: must be1
for theCat
tobite
(seecage
in mechanisms)vat
: address that conforms to aVatLike
interface (seevat
documentation [TODO - Link] for more info). It is set during the constructor and cannot be changed.vow
: address that conforms to aVowLike
interface (seevow
documentation [TODO - Link] for more info).
Events
Bite
: emitted when abite(bytes32, address)
is successfully executed. Contains:ilk
: Collateralurn
: Vault addressink
: seelot
inbite
art
: seeart
inbite
tab
: seetab
inbite
flip
: address of the auction contractid
: ID of the auction in theFlipper
Spot (Oracles and Contracts Liaison)
ilk
: a given collateral typeilk.pip
: the contract which holds the current price of a givenilk
ilk.mat
: the liquidation ratio for a givenilk
vat
: the core of the mcd systempar
: the relationship between DAI and 1 unit of value in the price. (Similar to TRFM)
Collateral
Only authorized users can update any variables in contract
Pot (Savings Dai)
Math
mul(uint, uint)
,rmul(uint, uint)
,add(uint, uint)
&sub(uint, uint)
: will revert on overflow or underflowrpow(uint x, uint n, uint base)
: used for exponentiation indrip
, is a fixed-point arithmetic function that raisesx
to the powern
.
Auth
wards
: are allowed to call protected functions (Administration)
Storage
pie
: stores the address'Pot
balance.Pie
: stores the total balance in thePot
.dsr
: thedai savings rate
. It starts as1
(ONE = 10^27
), but can be updated by governance.chi
: the rate accumulator. This is the always increasing value which decides how muchdai
: given whendrip()
is called.vat
: an address that conforms to aVatLike
interface. It is set during the constructor and cannot be changed.vow
: an address that conforms to aVowLike
interface. Not set in constructor. Must be set by governance.rho
: the last time that drip is called.
Dai (Stablecoin)
name
: Dai Stablecoin
symbol
: DAI
version
: 1
decimals
: 18
wad
: fixed point decimal with 18 decimals (for basic quantities, e.g. balances).
totalSupply
: Total DAI Supply
balanceOf(usr: address)
: User balance
allowance(src: address, dst: address)
: Approvals
nonces(usr: address)
: Permit nonce
Last updated