Cryo Explorer Ethereum Mainnet

Address Contract Partially Verified

Address 0xEB3b8751AAa0B81adda817f75F459450fdDEBd36
Balance 0 ETH
Nonce 1
Code Size 6871 bytes
Indexed Transactions 0
External Etherscan · Sourcify

Contract Bytecode

6871 bytes
0x608060405234801561000f575f80fd5b50600436106100e8575f3560e01c806370a082311161008a57806395d89b411161006457806395d89b4114610236578063a9059cbb14610254578063dd62ed3e14610284578063f2fde38b146102b4576100e8565b806370a08231146101de578063715018a61461020e5780638da5cb5b14610218576100e8565b806318160ddd116100c657806318160ddd1461015657806323b872dd14610174578063313ce567146101a457806342966c68146101c2576100e8565b806306fdde03146100ec578063095ea7b31461010a5780631171bda91461013a575b5f80fd5b6100f46102d0565b604051610101919061120d565b60405180910390f35b610124600480360381019061011f91906112be565b610360565b6040516101319190611316565b60405180910390f35b610154600480360381019061014f919061132f565b6104bb565b005b61015e6106e8565b60405161016b919061138e565b60405180910390f35b61018e6004803603810190610189919061132f565b6106f1565b60405161019b9190611316565b60405180910390f35b6101ac61092d565b6040516101b991906113c2565b60405180910390f35b6101dc60048036038101906101d791906113db565b610932565b005b6101f860048036038101906101f39190611406565b610a85565b604051610205919061138e565b60405180910390f35b610216610acb565b005b610220610c12565b60405161022d9190611440565b60405180910390f35b61023e610c39565b60405161024b919061120d565b60405180910390f35b61026e600480360381019061026991906112be565b610cc9565b60405161027b9190611316565b60405180910390f35b61029e60048036038101906102999190611459565b610cdf565b6040516102ab919061138e565b60405180910390f35b6102ce60048036038101906102c99190611406565b610d61565b005b6060600180546102df906114c4565b80601f016020809104026020016040519081016040528092919081815260200182805461030b906114c4565b80156103565780601f1061032d57610100808354040283529160200191610356565b820191905f5260205f20905b81548152906001019060200180831161033957829003601f168201915b5050505050905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036103cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c69061153e565b60405180910390fd5b8160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104a9919061138e565b60405180910390a36001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053f906115a6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ad9061160e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061b90611676565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401610660929190611694565b6020604051808303815f875af115801561067c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106a091906116e5565b9050806106e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d99061175a565b60405180910390fd5b50505050565b5f600354905090565b5f8060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a8906117e8565b60405180910390fd5b6107bc858585610f17565b82816107c89190611833565b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560055f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054604051610919919061138e565b60405180910390a360019150509392505050565b601281565b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156109b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a9906118b0565b60405180910390fd5b8060045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109fe9190611833565b925050819055508060035f828254610a169190611833565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a7a919061138e565b60405180910390a350565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f906115a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610c48906114c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c74906114c4565b8015610cbf5780601f10610c9657610100808354040283529160200191610cbf565b820191905f5260205f20905b815481529060010190602001808311610ca257829003601f168201915b5050505050905090565b5f610cd5338484610f17565b6001905092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de5906115a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5390611918565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c90611980565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fea906119e8565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106a90611a50565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110bf9190611833565b925050819055508060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111129190611a6e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611176919061138e565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156111ba57808201518184015260208101905061119f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6111df82611183565b6111e9818561118d565b93506111f981856020860161119d565b611202816111c5565b840191505092915050565b5f6020820190508181035f83015261122581846111d5565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61125a82611231565b9050919050565b61126a81611250565b8114611274575f80fd5b50565b5f8135905061128581611261565b92915050565b5f819050919050565b61129d8161128b565b81146112a7575f80fd5b50565b5f813590506112b881611294565b92915050565b5f80604083850312156112d4576112d361122d565b5b5f6112e185828601611277565b92505060206112f2858286016112aa565b9150509250929050565b5f8115159050919050565b611310816112fc565b82525050565b5f6020820190506113295f830184611307565b92915050565b5f805f606084860312156113465761134561122d565b5b5f61135386828701611277565b935050602061136486828701611277565b9250506040611375868287016112aa565b9150509250925092565b6113888161128b565b82525050565b5f6020820190506113a15f83018461137f565b92915050565b5f60ff82169050919050565b6113bc816113a7565b82525050565b5f6020820190506113d55f8301846113b3565b92915050565b5f602082840312156113f0576113ef61122d565b5b5f6113fd848285016112aa565b91505092915050565b5f6020828403121561141b5761141a61122d565b5b5f61142884828501611277565b91505092915050565b61143a81611250565b82525050565b5f6020820190506114535f830184611431565b92915050565b5f806040838503121561146f5761146e61122d565b5b5f61147c85828601611277565b925050602061148d85828601611277565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806114db57607f821691505b6020821081036114ee576114ed611497565b5b50919050565b7f417070726f766520746f207a65726f20616464726573730000000000000000005f82015250565b5f61152860178361118d565b9150611533826114f4565b602082019050919050565b5f6020820190508181035f8301526115558161151c565b9050919050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f61159060178361118d565b915061159b8261155c565b602082019050919050565b5f6020820190508181035f8301526115bd81611584565b9050919050565b7f43616e6e6f74207265636f766572206f776e20746f6b656e00000000000000005f82015250565b5f6115f860188361118d565b9150611603826115c4565b602082019050919050565b5f6020820190508181035f830152611625816115ec565b9050919050565b7f526563697069656e742063616e6e6f74206265207a65726f20616464726573735f82015250565b5f61166060208361118d565b915061166b8261162c565b602082019050919050565b5f6020820190508181035f83015261168d81611654565b9050919050565b5f6040820190506116a75f830185611431565b6116b4602083018461137f565b9392505050565b6116c4816112fc565b81146116ce575f80fd5b50565b5f815190506116df816116bb565b92915050565b5f602082840312156116fa576116f961122d565b5b5f611707848285016116d1565b91505092915050565b7f546f6b656e207265636f76657279206661696c656400000000000000000000005f82015250565b5f61174460158361118d565b915061174f82611710565b602082019050919050565b5f6020820190508181035f83015261177181611738565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f6117d260218361118d565b91506117dd82611778565b604082019050919050565b5f6020820190508181035f8301526117ff816117c6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61183d8261128b565b91506118488361128b565b92508282039050818111156118605761185f611806565b5b92915050565b7f4275726e20616d6f756e7420657863656564732062616c616e636500000000005f82015250565b5f61189a601b8361118d565b91506118a582611866565b602082019050919050565b5f6020820190508181035f8301526118c78161188e565b9050919050565b7f4e6577206f776e65722063616e6e6f74206265207a65726f20616464726573735f82015250565b5f61190260208361118d565b915061190d826118ce565b602082019050919050565b5f6020820190508181035f83015261192f816118f6565b9050919050565b7f5472616e736665722066726f6d207a65726f20616464726573730000000000005f82015250565b5f61196a601a8361118d565b915061197582611936565b602082019050919050565b5f6020820190508181035f8301526119978161195e565b9050919050565b7f5472616e7366657220746f207a65726f206164647265737300000000000000005f82015250565b5f6119d260188361118d565b91506119dd8261199e565b602082019050919050565b5f6020820190508181035f8301526119ff816119c6565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f611a3a601f8361118d565b9150611a4582611a06565b602082019050919050565b5f6020820190508181035f830152611a6781611a2e565b9050919050565b5f611a788261128b565b9150611a838361128b565b9250828201905080821115611a9b57611a9a611806565b5b9291505056fea264697066735822122020e3405bc8de6dc7dc5a1b1aa377150d72c04da2058c21955a9645e4c9bda4dd64736f6c63430008160033

Verified Source Code Partial Match

Compiler: v0.8.22+commit.4fc1097e EVM: shanghai Optimization: No
CypherToken.sol 215 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

/*

Cypher Chat AI
Website: https://cypherchat.pro
X: https://x.com/cypherchatai
*/

/**
 * @title IERC20
 * @notice ERC-20 interface definition
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Ownable
 * @dev Basic access control mechanism with ownership transfer and renounce functionality.
 */
abstract contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @notice Initializes the contract setting the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        require(initialOwner != address(0), "Owner cannot be zero address");
        _owner = initialOwner;
        emit OwnershipTransferred(address(0), initialOwner);
    }

    /**
     * @notice Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @notice Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == msg.sender, "Caller is not the owner");
        _;
    }

    /**
     * @notice Transfers ownership to a new address.
     * @param newOwner Address of the new owner.
     */
    function transferOwnership(address newOwner) external onlyOwner {
        require(newOwner != address(0), "New owner cannot be zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

    /**
     * @notice Renounces ownership of the contract.
     * @dev Leaves the contract without an owner. Cannot be undone.
     */
    function renounceOwnership() external onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

/**
 * @title CypherToken
 * @notice Fully compliant ERC-20 token with burn, recovery, and ownership control.
 */
contract CypherToken is IERC20, Ownable {
    string private _name;
    string private _symbol;
    uint8 public constant decimals = 18;

    uint256 private _totalSupply;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    /**
     * @notice Constructs the ERC-20 token with custom parameters.
     * @param name_ The name of the token (e.g., "Cypher Chat Token").
     * @param symbol_ The symbol of the token (e.g., "CYPHER").
     * @param initialSupply_ The initial supply in whole tokens (converted to 18 decimals).
     * @param recipient The address receiving the initial supply.
     */
    constructor(
        string memory name_,
        string memory symbol_,
        uint256 initialSupply_,
        address recipient
    ) Ownable(msg.sender) {
        require(bytes(name_).length > 0, "Token name required");
        require(bytes(symbol_).length > 0, "Token symbol required");
        require(recipient != address(0), "Recipient cannot be zero address");
        require(initialSupply_ > 0, "Initial supply must be greater than 0");

        _name = name_;
        _symbol = symbol_;

        // Mint full supply (converted to 18 decimals)
        _mint(recipient, initialSupply_ * 10 ** uint256(decimals));
    }

    // ---------------- ERC20 Standard ----------------

    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function allowance(address owner_, address spender) public view override returns (uint256) {
        return _allowances[owner_][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        require(spender != address(0), "Approve to zero address");

        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "Transfer amount exceeds allowance");

        _transfer(sender, recipient, amount);

        _allowances[sender][msg.sender] = currentAllowance - amount;
        emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
        return true;
    }

    // ---------------- Internal Transfers ----------------

    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "Transfer from zero address");
        require(recipient != address(0), "Transfer to zero address");
        require(_balances[sender] >= amount, "Transfer amount exceeds balance");

        _balances[sender] -= amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "Mint to zero address");

        _totalSupply += amount;
        _balances[account] += amount;

        emit Transfer(address(0), account, amount);
    }

    // ---------------- Extensions ----------------

    /**
     * @notice Burns tokens from the caller's account.
     * @param amount Amount to burn (in wei).
     */
    function burn(uint256 amount) external {
        require(_balances[msg.sender] >= amount, "Burn amount exceeds balance");

        _balances[msg.sender] -= amount;
        _totalSupply -= amount;

        emit Transfer(msg.sender, address(0), amount);
    }

    /**
     * @notice Allows owner to recover ERC20 tokens mistakenly sent to this contract.
     * @param token Address of the token to recover.
     * @param to Destination address.
     * @param amount Amount to recover.
     */
    function recoverERC20(address token, address to, uint256 amount) external onlyOwner {
        require(token != address(this), "Cannot recover own token");
        require(to != address(0), "Recipient cannot be zero address");

        bool success = IERC20(token).transfer(to, amount);
        require(success, "Token recovery failed");
    }
}

Read Contract

allowance 0xdd62ed3e → uint256
balanceOf 0x70a08231 → uint256
decimals 0x313ce567 → uint8
name 0x06fdde03 → string
owner 0x8da5cb5b → address
symbol 0x95d89b41 → string
totalSupply 0x18160ddd → uint256

Write Contract 7 functions

These functions modify contract state and require a wallet transaction to execute.

approve 0x095ea7b3
address spender
uint256 amount
returns: bool
burn 0x42966c68
uint256 amount
recoverERC20 0x1171bda9
address token
address to
uint256 amount
renounceOwnership 0x715018a6
No parameters
transfer 0xa9059cbb
address recipient
uint256 amount
returns: bool
transferFrom 0x23b872dd
address sender
address recipient
uint256 amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner

Recent Transactions

No transactions found for this address