S Price: $0.067303 (-3.00%)
Gas: 55 Gwei

Contract

0xd7f7161B008A798CE01fed14FA7479ebb7a34f9F

Overview

S Balance

Sonic LogoSonic LogoSonic Logo0 S

S Value

$0.00

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Approve608885912026-01-22 0:36:504 days ago1769042210IN
0xd7f7161B...bb7a34f9F
0 S0.002573850
Approve576877452025-12-11 14:04:1145 days ago1765461851IN
0xd7f7161B...bb7a34f9F
0 S0.0024648550.0001
Approve562810032025-11-24 9:25:2362 days ago1763976323IN
0xd7f7161B...bb7a34f9F
0 S0.0028325555
Approve557965052025-11-19 16:45:3767 days ago1763570737IN
0xd7f7161B...bb7a34f9F
0 S0.0028311855
Approve525577342025-10-30 5:21:2988 days ago1761801689IN
0xd7f7161B...bb7a34f9F
0 S0.0015718455
Approve513851592025-10-21 7:15:3196 days ago1761030931IN
0xd7f7161B...bb7a34f9F
0 S0.0024648550.0001
Approve513090832025-10-20 12:10:1997 days ago1760962219IN
0xd7f7161B...bb7a34f9F
0 S0.0028304655
Approve513089422025-10-20 12:08:2197 days ago1760962101IN
0xd7f7161B...bb7a34f9F
0 S0.002573250.001
Approve481275832025-09-25 8:59:55122 days ago1758790795IN
0xd7f7161B...bb7a34f9F
0 S0.0028311855
Approve478137392025-09-22 20:00:13125 days ago1758571213IN
0xd7f7161B...bb7a34f9F
0 S0.0024648550.0001
Transfer477003002025-09-22 0:23:01126 days ago1758500581IN
0xd7f7161B...bb7a34f9F
0 S0.0029986555
Approve476807642025-09-21 19:22:49126 days ago1758482569IN
0xd7f7161B...bb7a34f9F
0 S0.0028311855
Approve441619852025-08-23 0:29:55156 days ago1755908995IN
0xd7f7161B...bb7a34f9F
0 S0.0018464655.01
Approve441619112025-08-23 0:28:43156 days ago1755908923IN
0xd7f7161B...bb7a34f9F
0 S0.0028316955.01
Approve440558002025-08-22 6:29:52156 days ago1755844192IN
0xd7f7161B...bb7a34f9F
0 S0.0015721355.01
Approve429657612025-08-14 10:45:14164 days ago1755168314IN
0xd7f7161B...bb7a34f9F
0 S0.0014842355
Approve429657442025-08-14 10:45:07164 days ago1755168307IN
0xd7f7161B...bb7a34f9F
0 S0.0014842355
Approve429657272025-08-14 10:45:00164 days ago1755168300IN
0xd7f7161B...bb7a34f9F
0 S0.0014809355
Approve414683062025-08-03 9:54:32175 days ago1754214872IN
0xd7f7161B...bb7a34f9F
0 S0.0028337355.01
Approve406788602025-07-29 2:25:04181 days ago1753755904IN
0xd7f7161B...bb7a34f9F
0 S0.0028316955.01
Approve405900812025-07-28 12:28:02181 days ago1753705682IN
0xd7f7161B...bb7a34f9F
0 S0.0014634654.2306923
Approve404950652025-07-27 20:20:54182 days ago1753647654IN
0xd7f7161B...bb7a34f9F
0 S0.0019290867.5
Approve404938802025-07-27 20:07:54182 days ago1753646874IN
0xd7f7161B...bb7a34f9F
0 S0.0017290260.5
Approve401617862025-07-25 11:03:37184 days ago1753441417IN
0xd7f7161B...bb7a34f9F
0 S0.0024648550.0001
Approve398901682025-07-23 17:26:35186 days ago1753291595IN
0xd7f7161B...bb7a34f9F
0 S0.00339257.59999999
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
113658072025-03-03 9:23:38328 days ago1740993818  Contract Creation0 S
Cross-Chain Transactions
Loading...
Loading

Minimal Proxy Contract for 0xbe97f14f11f97f7299fefc82926bfa8e339badf8

Contract Name:
SonicxfunToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at SonicScan.org on 2025-01-23
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
// @title SonicX - Decentralized Exchange Protocol
// @notice Powered by SonicXSwap.com, enabling fast and secure transactions
// @author SuryaprakashMalgo

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 approve(address spender, uint256 amount) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external returns (uint256);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    function decimals() external returns (uint8);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract SonicxfunToken is IERC20 {
    string public name;
    string public symbol;
    uint8 public constant decimals = 18;
    uint8 public constant version = 2;

    address public initialFrom;
    address public deployerFrom;
    bool public isInitialized;
    bool public dexInitiated;

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

    function initialize(
        uint256 initialSupply,
        string memory _name,
        string memory _symbol,
        address _midDeployer,
        address _deployer
    ) external {
        require(!isInitialized);
        _mint(_midDeployer, initialSupply);
        initialFrom = _midDeployer;
        deployerFrom = _deployer;
        name = _name;
        symbol = _symbol;
        isInitialized = true;
    }

    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) {
        require(_validateTransfer(msg.sender), "not dex listed");

        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        require(_validateTransfer(msg.sender), "not dex listed");
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }
    function Burn(uint256 amount) public returns (bool) {
        _burn(msg.sender, amount);
        return true;
    }

    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");
        require(amount > 0, "invalid transfer amount");

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

    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);
    }

    function _approve(address owner, address spender, uint256 amount) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _validateTransfer(address _from) internal view returns (bool) {
        if (dexInitiated) {
            return true;
        }
        if (_from == initialFrom || _from == deployerFrom) {
            return true;
        }
        return false;
    }

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

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public returns (bool) {
        require(spender != address(0));

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

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public returns (bool) {
        require(spender != address(0));

        _allowances[msg.sender][spender] = (_allowances[msg.sender][spender] -
            subtractedValue);
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }
    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param amount The amount that will be burnt.
     */
    function _burn(address account, uint256 amount) internal {
        require(account != address(0));
        require(amount <= _balances[account]);

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

    function initiateDex() public {
        require(msg.sender == initialFrom, "only fun allowed");
        dexInitiated = true;
    }
}

Contract ABI

API
[{"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":"uint256","name":"amount","type":"uint256"}],"name":"Burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deployerFrom","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexInitiated","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialFrom","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"address","name":"_midDeployer","type":"address"},{"internalType":"address","name":"_deployer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initiateDex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]

Block Transaction Gas Used Reward
view all blocks ##produced##

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.