ABM Module
The ABM Governance Token Implementation
- Contract Name: token.sol
- Type/Category: ABMModule
The ABM Module contains the ABM token, which is a deployed Ds-Token contract. It is an ERC20 token that provides a standard ERC20 token interface. It also contains logic for burning and authorized minting of ABM.

guy
- user addresswad
- a quantity of tokens, usually as a fixed point integer with 10^18 decimal places.dst
- refers to the destination address.
mint
- credit tokens at an address whilst simultaneously increasing totalSupply (requires auth).burn
- debit tokens at an address whilst simultaneously decreasing totalSupply (requires auth).push
- transfer an amount from msg.sender to a given address.pull
- transfer an amount from a given address to msg.sender (requires trust or approval).move
- transfer an amount from a given src address to a given dst address (requires trust or approval).Standard ERC-20
name
- returns the name of the token - e.g. "MyToken".symbol
- token symbol.decimals
- returns the number of decimals the token uses - e.g. 8
, means to divide the token amount by 100000000
to get its user representation.transfer
- transfers _value amount of tokens to address _to, and MUST fire the Transfer event. This SHOULD throw if the message caller’s account balance does not have enough tokens to spend.transferFrom
- transfers _value amount of tokens from address _from to address _to, and MUST fire the Transfer event.approve
- allows _spender to withdraw from your account multiple times, up to the _value amount. If this function is called again it overwrites the current allowance with _value.totalSupply
- returns the total token supply.balanceOf
- returns the account balance of another account with address _owner.allowance
- returns the amount which _spender is still allowed to withdraw from _owner.Important note: there is a
transferFrom
auto approval when src == msg.sender
.Along with ABM having a standard ERC20 token interface, it also has the addition of DSAuth-protected mint and burn functions; binary approval via MAX_UINT; as well as a push, pull and move aliases for transferFrom operations.
The ABM token has 3 methods of use within the Maker Protocol :
- As a utility token: As dotBTC stability fees earned on Vaults accrue within the Maker Protocol, ABM holders can use ABM to vote to enable the Flapper auction house to sell dotBTC surplus for ABM. Once the auction is complete the Maker protocol burns the ABM.
- As a governance token: ABM is used by ABM holders to vote for the risk management and business logic of the Maker Protocol. Tokens are a simple representation of voting power.
- As a recapitalization resource: ABM can autonomously be minted by the Flopper auction house and sold for dotBTC , which is used to recap the Maker Protocol in times of insolvency.
- The ABM token is an ERC-20 token created using DSToken. A key difference to note between dotBTC and most other popular ERC20 tokens is that both these fields use
bytes32
instead of thestring
type.
ABM.stop
- ES cannot be triggered. ABM in the chief can still vote, but cannot join or exit.