GEB Docs
  • Introduction to GEB
  • Community Resources
  • FLX Mechanics
  • FAQ
  • RAI
    • RAI Use-Cases
    • Multi-chain RAI
    • RAI Integrations
  • The Money God League
    • Intro to The League
  • Ungovernance
    • Governance Minimization Guide
  • Risk
    • GEB Risks
    • PID Failure Modes & Responses
  • Incentives
    • RAI Uniswap V2 Mint + LP Incentives Program
    • RAI Uniswap V3 Mint + LP Incentives Program (Inactive)
    • FLX Staking
    • RAI / ETH Uniswap V3 Oracle LP Incentives Program
  • Contract Variables Translation
    • Core Contracts Naming Transition
    • Governance Contracts Naming Transition
    • SAFE Management Contract Naming Transition
  • System Contracts
    • Core Module
      • SAFE Engine
      • Liquidation Engine
      • Accounting Engine
    • Auction Module
      • English Collateral Auction House
      • Fixed Discount Collateral Auction House
      • Increasing Discount Collateral Auction House
      • Debt Auction House
      • Surplus Auction House
    • Oracle Module
      • Oracle Relayer
      • Medianizer
        • DSValue
        • Governance Led Median
        • Chainlink Median
        • Uniswap V2 Median
      • FSM
        • Oracle Security Module
        • Dampened Security Module
        • FSM Governance Interface
    • Token Module
      • Token Adapters
      • System Coin
      • Protocol Token
      • Protocol Token Authority
      • Protocol Token Printing Permissions
    • Money Market Module
      • Tax Collector
    • Sustainability Module
      • Stability Fee Treasury
      • FSM Wrapper
      • Increasing Treasury Reimbursement
      • Mandatory Fixed Treasury Reimbursement
      • Increasing Reward Relayer
    • Automation Module
      • Collateral Auction Throttler
      • Single Spot Debt Ceiling Setter
      • ESM Threshold Setter
    • Governance Module
      • DSPause
    • Shutdown Module
      • Global Settlement
      • ESM
  • Proxy Infrastructure
    • DSProxy
    • Proxy Registry
  • Helper Contracts
    • SAFE Manager
  • GEB.js
    • Getting Started
    • Global Settlement Guide
    • API Reference
      • Geb
      • Safe
      • Proxy Actions
      • Geb Admin
  • APIs
    • API Endpoints
  • Pyflex
    • Getting Started
      • Configuration
      • GEB Basics
    • SAFE Management
      • Opening a SAFE
      • Closing a SAFE
    • Numerics
  • Keepers
    • Keeper Overview
    • Collateral Auction Keeper
      • Running in Docker
      • Running on a Host
      • Liquidations & Collateral Auctions
      • Collateral Auction Flash Swaps
    • Debt Auction Keeper
      • Running in Docker
      • Running on a Host
    • Staked Token Auction Keeper
      • Running in Docker
      • Running on a Host
    • Surplus Auction Keeper
      • Running in Docker
      • Running on a Host
    • Bidding Models
  • Liquidation Protection
    • SAFE Protection
    • Liquidation Protection Guide
    • Uni-V2 RAI/ETH Savior Details
    • Curve V1 Savior Details
Powered by GitBook
On this page
  • 1. Overview
  • 2. Component Descriptions
  • 3. Risks
  • 4. Governance Minimization

Was this helpful?

  1. System Contracts

Token Module

ERC20 tokens, authority contracts and adapters for exiting and joining collateral in an out of the system

PreviousFSM Governance InterfaceNextToken Adapters

Last updated 3 years ago

Was this helpful?

Relevant smart contracts:

1. Overview

The token module has four distinct parts:

  1. System Coin: token that the core system considers equal in value to its internal debt unit.

  2. Protocol Token: a ds-token with delegation capabilities inherited from which were in turn inherited from . It contains logic for burning and authorized minting. The token can be used to govern the system and as a recapitalization source.

  3. Protocol Token Authority: authority contract that determines who is eligible to mint and burn protocol tokens.

  4. Geb Printing Permissions: permissioning system to allow multiple debt auction contracts to mint protocol tokens.

  5. Token Adapters:

    • Collateral Adapters: contracts that allow anyone to join or exit collateral in and out of GEB

    • Coin Join: adapter for the system coin to exit the system in the form of an ERC20 and enter the system in the form of SAFEEngine.coinBalance

2. Component Descriptions

  • System Coin: this contract is the user facing ERC20 token maintaining the accounting for external system coin balances.

    • As a governance token: tokens can be used as a representation of voting power

    • As a recapitalization resource: protocol tokens can autonomously be minted by the DebtAuctionHouse and sold for system coins which are used to recapitalize the system in times of insolvency

  • Protocol Token Authority: determines who can mint and burn protocol tokens. Can be controlled directly by token holders, by the Protocol Token Authority or in some cases all control can be withdrawn from it.

  • Geb Printing Permissions: forces governance to adhere to specific rules in order to allow multiple, independent DebtAuctionHouses to print protocol tokens.

  • Token Adapters: these are custom contracts that can allow anyone to deposit and withdraw collateral or they can have whitelisting in place to

3. Risks

  • Emergency shutdown cannot be triggered if governance calls PROTOCOL_TOKEN.stop beforehand

  • There is the possibility for a user to have their funds stolen by a malicious adapter which does not actually send tokens to the SAFEEngine, but instead to some other contract or wallet.

4. Governance Minimization

Governance can withdraw their voting power over all contracts, although, if they wish to allow the Protocol Token to protect multiple GEBs, they may retain influence over the Geb Printing Permissions.

All of the contracts in this module are part of Level 1 Gov Minimization.

Protocol Token: a token adhering to the ERC20 standard which also has -protected mint and burn functions as well as delegation capabilities. The protocol token has two main use-cases:

The system coin is susceptible to the

DSDelegateToken
Coin
BasicTokenAdapters
AdvancedTokenAdapters
ProtocolTokenAuthority
GebPrintingPermissions
UNI
COMP
DSAuth
ERC20 race condition