🪙USC Token

USC token is the stable coin in the ecosystem

Overview

Contract: USC.sol

USC Token is an ERC20Upgradeable smart contract that acts as the stable coin in the ecosystem.

You can refer to the Whitepaper for reference.

Dependencies

  • ERC20Upgradeable: Openzeppelin's ERC20 smart contract that is upgradeable.

  • Pausable: Allows for pausing/unpausing of the smart contract.

  • Mintable: Allows for minting new USC tokens to a user.

  • Burnable: Allows for holders of USC token to burn their tokens.

  • AccessControl: Allows for multiple permission roles to exist in the same contract.

How it works

The USC token is a basic ERC20 contract with no modification or limitation for users. Users are free to transfer, approve, burn,... just like other ERC20 tokens.

The owner of the USC contract can mint new tokens to a user without any special mechanism.

Roles

  • Admin (DEFAULT_ADMIN_ROLE): Admin role is able to pause/unpause the smart contract and can perform mintaction. Admin role will be held by a gnosis safe address to ensure security.

  • Minter (MINTER_ROLE): Minter role is able to perform mint action. The TokenController contract has Minter role so it can perform the redeem workflow.

  • Pauser (PAUSER_ROLE): Pauser role is able to pause/unpause the contract in case of emergencies. Initially no specific address is the holder of the Pauser role other than the Admin.

  • Upgrader (UPGRADER_ROLE): Upgrader role is able to upgrade the smart contract for future phases. Initially no specific address is the holder of the Upgrader role other than the Admin.

Participants

  • Gnosis-safe address as Admin: This ensures important roles are secure and doesn't have single-point-of-failure. Also for future extension, Admin can grant roles to other addresses if needed.

  • TokenController as Minter: The Token controller will have Minter role as it is a part of the redeem flow. TokenController can mint new USC tokens in exchange for burning user's AGC token as a part of the redeem process.

  • User: Freely to do whatever he/she wants with the token with no restrictions.

Last updated