Address Contract Partially Verified
Address
0xEB3b8751AAa0B81adda817f75F459450fdDEBd36
Balance
0 ETH
Nonce
1
Code Size
6871 bytes
Creator
0xB422987b...d3e9 at tx 0xdb4e328b...c1fc59
Indexed Transactions
0
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