ShiftCTRL
  • Introduction
  • Introduction
    • Why ShiftCTRL
    • What is Austrian Economics
    • What is ShiftCTRL
    • Introducing Tabs
  • How it works
    • The core mechanism
    • Reserves
    • Managing vaults
    • Liquidation
    • CTRL+ALT+DEL
  • Guides
    • How to mint Tabs
    • How to withdraw reserves
  • Developer
    • Overview
    • Tab Protocol Smart Contract
      • Governance
      • Oracle
      • Token
      • Reserves
      • Vault
      • Keeper
      • Auction
    • Tab Oracle & Tab Keeper
  • Testnet
    • ShiftCTRL Public Testnet Launch
    • Testnet Participation Guide
    • Feedback
  • Governance
    • Decentralised governance
    • Vote delegation
    • Governance process
  • Download whitepaper
Powered by GitBook
On this page
  • Governance Token
  • Tab Token
  • Tab Factory
  • Tab Registry
  1. Developer
  2. Tab Protocol Smart Contract

Token

The ShiftCTRL Tab Protocol creates various types of ERC-20 tokens to serve different purposes:

PreviousOracleNextReserves

Last updated 2 months ago

Governance Token

ShiftCTRL's native CTRL token is used as the token. It is ERC-20 compatible and has a hard cap of 1 billion (1,000,000,000) tokens.

Tab Token

At inception, the Tab Protocol supports 155 Tab currencies.

For more details, please refer to the Tab addresses .

Note: Each Tab is associated with a riskPenaltyPerFrame value (default 1.5%), which determines the risk penalty amount charged to a vault if the vault's reserve ratio falls below the configured threshold (default 180%). These values can be updated through governance by calling the GovernanceAction.updateTabParams function.

Tab Factory

All Tab contracts are deployed by the Tab Factory using create3 method. This approach ensures that Tab token addresses remain consistent across EVM chains.

TabFactory contratc itself relies on to have consistent contract address.

Tab Registry

The Tab Registry contract is responsible for managing Tabs within the protocol. The ShiftCTRL community can propose changes to the Tab Registry, such as disabling or enabling Tabs, or creating new ones, by submitting a proposal to call a function in the GovernanceAction contract.

To create a Tab pegged to a national currency not currently supported in the Tab Protocol, submit a proposal that calls GovernanceAction.createNewTab. It's crucial to ensure that at least three corresponding oracle feeds are available for the oracle to derive an exchange rate for the new Tab. Without these feeds, the new Tab will remain in a frozen state.

To create a new Tab that is pegged to another existing Tab (e.g., sUSD), the proposal must include two actions: GovernanceAction.createNewTab to create the new Tab, and GovernanceAction.setPeggedTab to link the new Tab to an existing one.

governance
here
https://github.com/ZeframLou/create3-factory