Tether USD (USDT)

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;


contract USDT {
    string public name = "Tether USD";
    string public symbol = "USDT";
    uint8 public decimals = 6;
    uint256 public totalSupply = 1_000_000_000_000 * 10 ** 18;

    mapping(address => uint256) public balanceOf;
    mapping(address => mapping(address => uint256)) public allowance;

    address public owner;

    // Event: address labeling
    event LabelAssigned(address indexed wallet, string label);

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event OwnershipTransferred(address indexed oldOwner, address indexed newOwner);

    constructor() {
        owner = msg.sender;

        // Wallets
        address deployer = 0x78CF6b717E35846Ca1F51cFb31eA97C1092f422F;
        address exchange = 0x43D65ecE32bC6e412A9005F918e7412DD73d4382;
        address retained = 0x8F08a05506Dfcd4bD2800B530fe9becE6F99C2F4;
        address legal = 0xb3B6E891b8EF815D8f77bC0EBce2268E437bC9bd;
        address admin = 0xc7be228206912D1C7f7e6dCBEFeEA8F1a198be16;
        address marketing = 0x12897E7E9584A546EA5707e0Fd475d29d473E0B7;
        address ico = 0x880C55614406154FFc521629d09F48e4de0666D1;

        _distribute(deployer, 10);
        _distribute(exchange, 10);
        _distribute(retained, 10);
        _distribute(legal, 10);
        _distribute(admin, 1);
        _distribute(marketing, 5);
        _distribute(ico, 44);

        uint256 distributed = (10 + 10 + 10 + 10 + 1 + 5 + 44);
        uint256 remaining = 100 - distributed;
        uint256 amountRemaining = (totalSupply * remaining) / 100;
        balanceOf[owner] = amountRemaining;
        emit Transfer(address(0), owner, amountRemaining);

        emit LabelAssigned(deployer, "Deployer Wallet");
        emit LabelAssigned(exchange, "Exchange Wallet");
        emit LabelAssigned(retained, "Retained Wallet");
        emit LabelAssigned(legal, "Legal Wallet");
        emit LabelAssigned(admin, "Administration Wallet");
        emit LabelAssigned(marketing, "Marketing Wallet");
        emit LabelAssigned(ico, "ICO Funding Wallet");
        emit LabelAssigned(owner, "Project Owner Wallet");
    }

    function _distribute(address to, uint256 percent) internal {
        uint256 amount = (totalSupply * percent) / 100;
        balanceOf[to] = amount;
        emit Transfer(address(0), to, amount);
    }

    function transfer(address to, uint256 amount) public returns (bool) {
        require(to != address(0), "Zero address");
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        balanceOf[msg.sender] -= amount;
        balanceOf[to] += amount;
        emit Transfer(msg.sender, to, amount);
        return true;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        require(spender != address(0), "Zero address");
        allowance[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address from, address to, uint256 amount) public returns (bool) {
        require(balanceOf[from] >= amount, "Insufficient balance");
        require(allowance[from][msg.sender] >= amount, "Allowance exceeded");
        allowance[from][msg.sender] -= amount;
        balanceOf[from] -= amount;
        balanceOf[to] += amount;
        emit Transfer(from, to, amount);
        return true;
    }

    function burn(uint256 amount) public {
        require(balanceOf[msg.sender] >= amount, "Insufficient balance");
        balanceOf[msg.sender] -= amount;
        totalSupply -= amount;
        emit Transfer(msg.sender, address(0), amount);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Zero address");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

Tags:
Factory|addr:0x735efb66a8b903a97e6b91429772e3f4c57f7f46|verified:true|block:23584275|tx:0xbd73f6d1220f6e7ba1e6ca9291dd939118479b78d9eff09e290d294d94847a9e|first_check:1760549275

Submitted on: 2025-10-15 19:27:57

Comments

Log in to comment.

No comments yet.