Zoth
  • Getting Started
    • Introduction
    • Overview
    • Why Zoth
    • Our Values
    • Zoth Protocol
      • ZOTH Fi - Fixed Income Products
      • Atlas - Permissionless Gateway for RWAs
    • FAQs
  • Products
    • ZeUSD - An Omni-chain, and Composable Stable Token
      • Mechanics of ZeUSD
      • Minting Reward and Withdrawal Fees
      • Add ZeUSD to Metamask
    • ZeUSD Debt Position (ZeDP)
    • Zoth Tokenized Liquid Notes Prime (ZTLN-P)
    • Zoth Secure Trade Finance - ZSTF
      • Invest in ZSTF
    • Zoth Rewards
    • ZOTH Token
  • Tech Center
    • Architecture
    • LTV Mechanism
    • Smart Contracts
      • ZeUSD Token
      • ZeUSD Router
      • Collateral Vault
      • Sub Vaults
    • Eligible Real World Assets
      • ZTLN-P (By Zoth)
      • USYC (By Hashnote)
      • USD0++ (By Usual Money)
      • TBILL (By OpenEden)
      • wSTBT (By MatrixDock)
      • Wrapped $M (By M0)
    • Contract Deployments
  • LEGAL
    • ZTLN-P
      • Legal Disclaimer
      • Terms of Use
      • Privacy Policy
    • ZSTF
      • Terms of Use
      • Privacy Policy
      • Risk Disclosure
      • Onboarding Disclaimer
      • Legal FAQs
    • Anti-Money Laundering Policy
  • Resources
    • Brand Assets
    • Official links
    • Audits
    • ZeUSD Risks and Mitigation Strategies
    • Onchain Data
Powered by GitBook
On this page
  • Overview
  • Key Features
  • 1. Token Configuration
  • 2. Access Control System
  • 3. Security Features
  • Core Functions
  • Minting
  • Burning
  1. Tech Center
  2. Smart Contracts

ZeUSD Token

PreviousSmart ContractsNextZeUSD Router

Last updated 4 months ago

Overview

ZeUSD is an upgradeable ERC-20 token that serves as the core stable asset of the ZeUSD protocol. It incorporates advanced features like blacklisting, role-based access control, and cross-chain compatibility through Layer Zero.

Key Features

1. Token Configuration

  • Name: ZeUSD

  • Symbol: ZeUSD

  • Decimals: 6

  • Implementation: ERC-20 Upgradeable

2. Access Control System

  • DEFAULT_ADMIN_ROLE (Owner): Controls administrative functions

  • ADMIN_ROLE (Admin): Manages operational features.

  • : Exclusive minting privileges

3. Security Features

Blacklist System

  • Prevents malicious actors from using the token

  • Administrators can add/remove addresses

  • Affects transfers and approvals

mapping(address => bool) private _blacklist;

function setBlacklistStatus(address account, bool status) external onlyRole(ADMIN_ROLE) {
    _blacklist[account] = status;
    emit Blacklisted(account, status);
}

Router Control

  • Only authorized router can mint/burn tokens

  • Prevents unauthorized token creation

  • Ensures protocol integrity

modifier onlyRouter() {
    require(msg.sender == router, "Only router can call");
    _;
}

Core Functions

Minting

function mint(address to, uint256 amount) external onlyRouter {
    _mint(to, amount);
}
  • Called exclusively by router

  • Creates new tokens based on collateral

  • Emits Transfer event

Burning

function burn(uint256 amount) external onlyRouter {
    _burn(msg.sender, amount);
}

function burnFrom(address account, uint256 amount) external onlyRouter {
    _spendAllowance(account, msg.sender, amount);
    _burn(account, amount);
}
  • Destroys tokens when collateral is redeemed

  • Requires approval for burnFrom

  • Updates total supply

Router