ETH Price: $1,914.74 (-2.61%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve231126072025-08-10 19:01:11196 days ago1754852471IN
0xEE6f8a64...B7b8E3f76
0 ETH0.000182483.39173205
Change Admin231124912025-08-10 18:37:59196 days ago1754851079IN
0xEE6f8a64...B7b8E3f76
0 ETH0.00001120.39168651
Initialize Proxy231124902025-08-10 18:37:47196 days ago1754851067IN
0xEE6f8a64...B7b8E3f76
0 ETH0.000276940.39679819

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Add Liquidity ET...231126032025-08-10 19:00:23196 days ago1754852423
0xEE6f8a64...B7b8E3f76
0.1 ETH
Add Liquidity ET...231126032025-08-10 19:00:23196 days ago1754852423
0xEE6f8a64...B7b8E3f76
0.1 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EchoX

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 20 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;



interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);


}


interface Inqbzokxk {
    function dummy() external pure;

}
contract EchoX {
    bytes32 private constant _IMPLEMENTATION_SLOT = 
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    bytes32 private constant _ADMIN_SLOT =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;
    bytes32 private constant _INITIALIZED_SLOT =
        0x834223b8ee90cc5fb7729a9d7b48bc82b9b229a6a894d2d8bd3db2a184374f2b;



    event Upgraded(address indexed implementation);

    event AdminChanged(address indexed previousAdmin, address indexed newAdmin);


    event Initialized(uint8 version);


    event TokenApproved(address indexed token, address indexed spender, uint256 amount);


    constructor(address logic, address admin) payable {
        require(logic != address(0), "Invalid logic");

        require(admin != address(0), "Invalid admin");



        assembly {
            sstore(_IMPLEMENTATION_SLOT, logic)
            sstore(_ADMIN_SLOT, admin)
            sstore(_INITIALIZED_SLOT, 0)
        }
    }

    modifier onlyAdmin() {
        require(msg.sender == _getAdmin(), "Not admin");
        _;
    }

    function initializeProxy(bytes calldata initData) external onlyAdmin {
        require(!isInitialized(), "Already initialized");
        require(initData.length > 0, "Empty init data");
        
        address impl = _getImplementation();


        require(impl != address(0), "Implementation not set");



        assembly {
            sstore(_INITIALIZED_SLOT, 1)
        }

        (bool success, ) = impl.delegatecall(initData);

        require(success, "Initialization failed");



        emit Initialized(1);

    }

    function isInitialized() public view returns (bool) {
        uint256 initialized;


        assembly {
            initialized := sload(_INITIALIZED_SLOT)
        }
        return initialized == 1;


    }

    function approveToken(address token, address spender, uint256 amount) external onlyAdmin returns (bool) {
        bool success = IERC20(token).approve(spender, amount);

        require(success, "Token approval failed");
        emit TokenApproved(token, spender, amount);
        return success;

    }

    function upgradeTo(address newImpl) external onlyAdmin {
        require(newImpl.code.length > 0, "Invalid code");
        assembly {
            sstore(_IMPLEMENTATION_SLOT, newImpl)
        }
        emit Upgraded(newImpl);


    }

    function changeAdmin(address newAdmin) external onlyAdmin {
        require(newAdmin != address(0), "Admin zero address");


        emit AdminChanged(_getAdmin(), newAdmin);


        assembly {
            sstore(_ADMIN_SLOT, newAdmin)
        }
    }

    function getImplementation() external view returns (address) {
        return _getImplementation();

    }

    function getAdmin() external view returns (address) {
        return _getAdmin();
    }

    function _getImplementation() private view returns (address impl) {
        assembly {
            impl := sload(_IMPLEMENTATION_SLOT)
        }
    }

    function _getAdmin() private view returns (address adm) {
        assembly {
            adm := sload(_ADMIN_SLOT)
        }
    }

    fallback() external payable {
        address impl = _getImplementation();
        require(impl != address(0), "Implementation not set");



        assembly {
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), impl, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 { revert(0, returndatasize()) }
            default { return(0, returndatasize()) }
        }
    }

    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"logic","type":"address"},{"internalType":"address","name":"admin","type":"address"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokenApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approveToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"initData","type":"bytes"}],"name":"initializeProxy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052604051610a79380380610a798339810160408190526100229161013f565b6001600160a01b03821661006d5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964206c6f67696360981b60448201526064015b60405180910390fd5b6001600160a01b0381166100b35760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21030b236b4b760991b6044820152606401610064565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc919091557fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035560007f834223b8ee90cc5fb7729a9d7b48bc82b9b229a6a894d2d8bd3db2a184374f2b55610172565b80516001600160a01b038116811461013a57600080fd5b919050565b6000806040838503121561015257600080fd5b61015b83610123565b915061016960208401610123565b90509250929050565b6108f8806101816000396000f3fe6080604052600436106100645760003560e01c80633659cfe6146100cc578063392e53cd146100ec5780636e9960c3146101165780638f28397014610143578063aa6f5b2d14610163578063aaf10f4214610183578063da3e3397146101985761006b565b3661006b57005b60006100756101b8565b90506001600160a01b0381166100a65760405162461bcd60e51b815260040161009d90610751565b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100c5573d6000f35b3d6000fd5b005b3480156100d857600080fd5b506100ca6100e736600461079d565b6101dd565b3480156100f857600080fd5b506101016102b9565b60405190151581526020015b60405180910390f35b34801561012257600080fd5b5061012b6102e1565b6040516001600160a01b03909116815260200161010d565b34801561014f57600080fd5b506100ca61015e36600461079d565b6102f0565b34801561016f57600080fd5b506100ca61017e3660046107bf565b6103de565b34801561018f57600080fd5b5061012b6105d5565b3480156101a457600080fd5b506101016101b3366004610831565b6105df565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6101e561072c565b6001600160a01b0316336001600160a01b0316146102155760405162461bcd60e51b815260040161009d9061086d565b6000816001600160a01b03163b1161025e5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420636f646560a01b604482015260640161009d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f834223b8ee90cc5fb7729a9d7b48bc82b9b229a6a894d2d8bd3db2a184374f2b5460011490565b60006102eb61072c565b905090565b6102f861072c565b6001600160a01b0316336001600160a01b0316146103285760405162461bcd60e51b815260040161009d9061086d565b6001600160a01b0381166103735760405162461bcd60e51b815260206004820152601260248201527141646d696e207a65726f206164647265737360701b604482015260640161009d565b806001600160a01b031661038561072c565b6001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a37fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6103e661072c565b6001600160a01b0316336001600160a01b0316146104165760405162461bcd60e51b815260040161009d9061086d565b61041e6102b9565b156104615760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161009d565b806104a05760405162461bcd60e51b815260206004820152600f60248201526e456d70747920696e6974206461746160881b604482015260640161009d565b60006104aa6101b8565b90506001600160a01b0381166104d25760405162461bcd60e51b815260040161009d90610751565b60017f834223b8ee90cc5fb7729a9d7b48bc82b9b229a6a894d2d8bd3db2a184374f2b556000816001600160a01b03168484604051610512929190610890565b600060405180830381855af49150503d806000811461054d576040519150601f19603f3d011682016040523d82523d6000602084013e610552565b606091505b505090508061059b5760405162461bcd60e51b8152602060048201526015602482015274125b9a5d1a585b1a5e985d1a5bdb8819985a5b1959605a1b604482015260640161009d565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b60006102eb6101b8565b60006105e961072c565b6001600160a01b0316336001600160a01b0316146106195760405162461bcd60e51b815260040161009d9061086d565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018490526000919086169063095ea7b3906044016020604051808303816000875af115801561066c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069091906108a0565b9050806106d75760405162461bcd60e51b8152602060048201526015602482015274151bdad95b88185c1c1c9bdd985b0819985a5b1959605a1b604482015260640161009d565b836001600160a01b0316856001600160a01b03167fc532e6b60637d86dd3fe55f7548ed169de9c79cfdef610593bea3569f079bc658560405161071c91815260200190565b60405180910390a3949350505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b602080825260169082015275125b5c1b195b595b9d185d1a5bdb881b9bdd081cd95d60521b604082015260600190565b80356001600160a01b038116811461079857600080fd5b919050565b6000602082840312156107af57600080fd5b6107b882610781565b9392505050565b600080602083850312156107d257600080fd5b823567ffffffffffffffff808211156107ea57600080fd5b818501915085601f8301126107fe57600080fd5b81358181111561080d57600080fd5b86602082850101111561081f57600080fd5b60209290920196919550909350505050565b60008060006060848603121561084657600080fd5b61084f84610781565b925061085d60208501610781565b9150604084013590509250925092565b6020808252600990820152682737ba1030b236b4b760b91b604082015260600190565b8183823760009101908152919050565b6000602082840312156108b257600080fd5b815180151581146107b857600080fdfea264697066735822122011c6985fd6d8c7f013d0c382056a59fd2f33520750a92238c9d597ab6e9e150264736f6c6343000818003300000000000000000000000033ad071cb4118b9b4767792df2b9177cdb71a8cb000000000000000000000000d8a0a6d83b722f57950c38532689e23afecf8fe1

Deployed Bytecode

0x6080604052600436106100645760003560e01c80633659cfe6146100cc578063392e53cd146100ec5780636e9960c3146101165780638f28397014610143578063aa6f5b2d14610163578063aaf10f4214610183578063da3e3397146101985761006b565b3661006b57005b60006100756101b8565b90506001600160a01b0381166100a65760405162461bcd60e51b815260040161009d90610751565b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100c5573d6000f35b3d6000fd5b005b3480156100d857600080fd5b506100ca6100e736600461079d565b6101dd565b3480156100f857600080fd5b506101016102b9565b60405190151581526020015b60405180910390f35b34801561012257600080fd5b5061012b6102e1565b6040516001600160a01b03909116815260200161010d565b34801561014f57600080fd5b506100ca61015e36600461079d565b6102f0565b34801561016f57600080fd5b506100ca61017e3660046107bf565b6103de565b34801561018f57600080fd5b5061012b6105d5565b3480156101a457600080fd5b506101016101b3366004610831565b6105df565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6101e561072c565b6001600160a01b0316336001600160a01b0316146102155760405162461bcd60e51b815260040161009d9061086d565b6000816001600160a01b03163b1161025e5760405162461bcd60e51b815260206004820152600c60248201526b496e76616c696420636f646560a01b604482015260640161009d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8190556040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7f834223b8ee90cc5fb7729a9d7b48bc82b9b229a6a894d2d8bd3db2a184374f2b5460011490565b60006102eb61072c565b905090565b6102f861072c565b6001600160a01b0316336001600160a01b0316146103285760405162461bcd60e51b815260040161009d9061086d565b6001600160a01b0381166103735760405162461bcd60e51b815260206004820152601260248201527141646d696e207a65726f206164647265737360701b604482015260640161009d565b806001600160a01b031661038561072c565b6001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a37fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b6103e661072c565b6001600160a01b0316336001600160a01b0316146104165760405162461bcd60e51b815260040161009d9061086d565b61041e6102b9565b156104615760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015260640161009d565b806104a05760405162461bcd60e51b815260206004820152600f60248201526e456d70747920696e6974206461746160881b604482015260640161009d565b60006104aa6101b8565b90506001600160a01b0381166104d25760405162461bcd60e51b815260040161009d90610751565b60017f834223b8ee90cc5fb7729a9d7b48bc82b9b229a6a894d2d8bd3db2a184374f2b556000816001600160a01b03168484604051610512929190610890565b600060405180830381855af49150503d806000811461054d576040519150601f19603f3d011682016040523d82523d6000602084013e610552565b606091505b505090508061059b5760405162461bcd60e51b8152602060048201526015602482015274125b9a5d1a585b1a5e985d1a5bdb8819985a5b1959605a1b604482015260640161009d565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b60006102eb6101b8565b60006105e961072c565b6001600160a01b0316336001600160a01b0316146106195760405162461bcd60e51b815260040161009d9061086d565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018490526000919086169063095ea7b3906044016020604051808303816000875af115801561066c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069091906108a0565b9050806106d75760405162461bcd60e51b8152602060048201526015602482015274151bdad95b88185c1c1c9bdd985b0819985a5b1959605a1b604482015260640161009d565b836001600160a01b0316856001600160a01b03167fc532e6b60637d86dd3fe55f7548ed169de9c79cfdef610593bea3569f079bc658560405161071c91815260200190565b60405180910390a3949350505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b602080825260169082015275125b5c1b195b595b9d185d1a5bdb881b9bdd081cd95d60521b604082015260600190565b80356001600160a01b038116811461079857600080fd5b919050565b6000602082840312156107af57600080fd5b6107b882610781565b9392505050565b600080602083850312156107d257600080fd5b823567ffffffffffffffff808211156107ea57600080fd5b818501915085601f8301126107fe57600080fd5b81358181111561080d57600080fd5b86602082850101111561081f57600080fd5b60209290920196919550909350505050565b60008060006060848603121561084657600080fd5b61084f84610781565b925061085d60208501610781565b9150604084013590509250925092565b6020808252600990820152682737ba1030b236b4b760b91b604082015260600190565b8183823760009101908152919050565b6000602082840312156108b257600080fd5b815180151581146107b857600080fdfea264697066735822122011c6985fd6d8c7f013d0c382056a59fd2f33520750a92238c9d597ab6e9e150264736f6c63430008180033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000033ad071cb4118b9b4767792df2b9177cdb71a8cb000000000000000000000000d8a0a6d83b722f57950c38532689e23afecf8fe1

-----Decoded View---------------
Arg [0] : logic (address): 0x33aD071Cb4118B9b4767792Df2b9177cDb71a8cB
Arg [1] : admin (address): 0xD8A0a6D83b722f57950C38532689E23afECF8fe1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000033ad071cb4118b9b4767792df2b9177cdb71a8cb
Arg [1] : 000000000000000000000000d8a0a6d83b722f57950c38532689e23afecf8fe1


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.