ETH Price: $1,818.94 (-3.49%)
Gas: 0.34 Gwei

Contract

0x827962404D7104202C5aaa6b929115C8211d9596
 
Transaction Hash
Method
Block
From
To
Bridge ERC20221365712025-03-27 6:51:352 days ago1743058295IN
Kroma: L1 Standard Bridge
0 ETH0.000536390.86719801
Bridge ERC20221032492025-03-22 15:15:357 days ago1742656535IN
Kroma: L1 Standard Bridge
0 ETH0.000314480.51241615
Bridge ERC20220818962025-03-19 15:45:4710 days ago1742399147IN
Kroma: L1 Standard Bridge
0 ETH0.001067672.2328235
Bridge ERC20220783802025-03-19 3:57:4710 days ago1742356667IN
Kroma: L1 Standard Bridge
0 ETH0.000289540.48781843
Bridge ERC20220651142025-03-17 7:27:4712 days ago1742196467IN
Kroma: L1 Standard Bridge
0 ETH0.00029850.4863463
Bridge ERC20220594172025-03-16 12:23:1113 days ago1742127791IN
Kroma: L1 Standard Bridge
0 ETH0.000515460.83987988
Bridge ETH To220375322025-03-13 11:04:4716 days ago1741863887IN
Kroma: L1 Standard Bridge
0.02 ETH0.000300830.52956022
Bridge ERC20220064682025-03-09 2:55:5920 days ago1741488959IN
Kroma: L1 Standard Bridge
0 ETH0.000329020.53610744
Bridge ERC20220015552025-03-08 10:26:4721 days ago1741429607IN
Kroma: L1 Standard Bridge
0 ETH0.000393950.64189316
Bridge ERC20219949672025-03-07 12:21:1122 days ago1741350071IN
Kroma: L1 Standard Bridge
0 ETH0.000503530.82043779
Bridge ETH To219513292025-03-01 10:10:2328 days ago1740823823IN
Kroma: L1 Standard Bridge
0.005 ETH0.000568081
Bridge ETH To219511502025-03-01 9:34:3528 days ago1740821675IN
Kroma: L1 Standard Bridge
0.005 ETH0.000511270.9
Bridge ERC20219159452025-02-24 11:40:4733 days ago1740397247IN
Kroma: L1 Standard Bridge
0 ETH0.000637211.03820784
Bridge ETH To219092182025-02-23 13:07:2334 days ago1740316043IN
Kroma: L1 Standard Bridge
0.01 ETH0.00073851.3
Bridge ETH To218830032025-02-19 21:08:4738 days ago1739999327IN
Kroma: L1 Standard Bridge
0.003 ETH0.000420190.73966791
Bridge ERC20218795152025-02-19 9:27:4738 days ago1739957267IN
Kroma: L1 Standard Bridge
0 ETH0.000482610.78635453
Bridge ETH To218622592025-02-16 23:32:5940 days ago1739748779IN
Kroma: L1 Standard Bridge
0.015 ETH0.000450240.79256641
Bridge ERC20218526322025-02-15 15:11:2342 days ago1739632283IN
Kroma: L1 Standard Bridge
0 ETH0.000627741.02278516
Bridge ERC20218518162025-02-15 12:26:4742 days ago1739622407IN
Kroma: L1 Standard Bridge
0 ETH0.000585980.95473816
Bridge ERC20218386202025-02-13 16:02:3544 days ago1739462555IN
Kroma: L1 Standard Bridge
0 ETH0.000979083.84065714
Bridge ERC20218355382025-02-13 5:40:4744 days ago1739425247IN
Kroma: L1 Standard Bridge
0 ETH0.000607780.98261953
Bridge ERC20218144372025-02-10 6:50:2347 days ago1739170223IN
Kroma: L1 Standard Bridge
0 ETH0.000568740.92665598
Bridge ERC20218104712025-02-09 17:32:2348 days ago1739122343IN
Kroma: L1 Standard Bridge
0 ETH0.00086631.40027499
Bridge ERC20218013182025-02-08 10:52:2349 days ago1739011943IN
Kroma: L1 Standard Bridge
0 ETH0.000714991.15566889
Bridge ERC20217946152025-02-07 12:25:2350 days ago1738931123IN
Kroma: L1 Standard Bridge
0 ETH0.000584710.95250913
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer221532082025-03-29 14:38:357 hrs ago1743259115
Kroma: L1 Standard Bridge
0.0012 ETH
Finalize Bridge ...221532082025-03-29 14:38:357 hrs ago1743259115
Kroma: L1 Standard Bridge
0.0012 ETH
Transfer221531622025-03-29 14:29:237 hrs ago1743258563
Kroma: L1 Standard Bridge
0.02774651 ETH
Finalize Bridge ...221531622025-03-29 14:29:237 hrs ago1743258563
Kroma: L1 Standard Bridge
0.02774651 ETH
Transfer221435242025-03-28 6:08:3539 hrs ago1743142115
Kroma: L1 Standard Bridge
1.03243148 ETH
Finalize Bridge ...221435242025-03-28 6:08:3539 hrs ago1743142115
Kroma: L1 Standard Bridge
1.03243148 ETH
Transfer221392352025-03-27 15:45:592 days ago1743090359
Kroma: L1 Standard Bridge
0.02955 ETH
Finalize Bridge ...221392352025-03-27 15:45:592 days ago1743090359
Kroma: L1 Standard Bridge
0.02955 ETH
Transfer221369492025-03-27 8:07:352 days ago1743062855
Kroma: L1 Standard Bridge
0.99981521 ETH
Finalize Bridge ...221369492025-03-27 8:07:352 days ago1743062855
Kroma: L1 Standard Bridge
0.99981521 ETH
Transfer221325982025-03-26 17:32:233 days ago1743010343
Kroma: L1 Standard Bridge
0.00597042 ETH
Finalize Bridge ...221325982025-03-26 17:32:233 days ago1743010343
Kroma: L1 Standard Bridge
0.00597042 ETH
Transfer221325852025-03-26 17:29:473 days ago1743010187
Kroma: L1 Standard Bridge
0.0059322 ETH
Finalize Bridge ...221325852025-03-26 17:29:473 days ago1743010187
Kroma: L1 Standard Bridge
0.0059322 ETH
Transfer221314482025-03-26 13:42:113 days ago1742996531
Kroma: L1 Standard Bridge
0.01174694 ETH
Finalize Bridge ...221314482025-03-26 13:42:113 days ago1742996531
Kroma: L1 Standard Bridge
0.01174694 ETH
Transfer221314152025-03-26 13:35:353 days ago1742996135
Kroma: L1 Standard Bridge
0.077 ETH
Finalize Bridge ...221314152025-03-26 13:35:353 days ago1742996135
Kroma: L1 Standard Bridge
0.077 ETH
Transfer221274042025-03-26 0:10:473 days ago1742947847
Kroma: L1 Standard Bridge
0.005165 ETH
Finalize Bridge ...221274042025-03-26 0:10:473 days ago1742947847
Kroma: L1 Standard Bridge
0.005165 ETH
Transfer221263422025-03-25 20:37:234 days ago1742935043
Kroma: L1 Standard Bridge
0.003 ETH
Finalize Bridge ...221263422025-03-25 20:37:234 days ago1742935043
Kroma: L1 Standard Bridge
0.003 ETH
Transfer221139682025-03-24 3:06:595 days ago1742785619
Kroma: L1 Standard Bridge
0.059 ETH
Finalize Bridge ...221139682025-03-24 3:06:595 days ago1742785619
Kroma: L1 Standard Bridge
0.059 ETH
Transfer221044282025-03-22 19:11:597 days ago1742670719
Kroma: L1 Standard Bridge
0.039 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
Proxy

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 1 : Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

/**
 * @title Proxy
 * @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or
 *         if the caller is address(0), meaning that the call originated from an off-chain
 *         simulation.
 */
contract Proxy {
    /**
     * @notice The storage slot that holds the address of the implementation.
     *         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
     */
    bytes32 internal constant IMPLEMENTATION_KEY =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @notice The storage slot that holds the address of the owner.
     *         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)
     */
    bytes32 internal constant OWNER_KEY =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @notice An event that is emitted each time the implementation is changed. This event is part
     *         of the EIP-1967 specification.
     *
     * @param implementation The address of the implementation contract
     */
    event Upgraded(address indexed implementation);

    /**
     * @notice An event that is emitted each time the owner is upgraded. This event is part of the
     *         EIP-1967 specification.
     *
     * @param previousAdmin The previous owner of the contract
     * @param newAdmin      The new owner of the contract
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @notice A modifier that reverts if not called by the owner or by address(0) to allow
     *         eth_call to interact with this proxy without needing to use low-level storage
     *         inspection. We assume that nobody is able to trigger calls from address(0) during
     *         normal EVM execution.
     */
    modifier proxyCallIfNotAdmin() {
        if (msg.sender == _getAdmin() || msg.sender == address(0)) {
            _;
        } else {
            // This WILL halt the call frame on completion.
            _doProxyCall();
        }
    }

    /**
     * @notice Sets the initial admin during contract deployment. Admin address is stored at the
     *         EIP-1967 admin storage slot so that accidental storage collision with the
     *         implementation is not possible.
     *
     * @param _admin Address of the initial contract admin. Admin as the ability to access the
     *               transparent proxy interface.
     */
    constructor(address _admin) {
        _changeAdmin(_admin);
    }

    // slither-disable-next-line locked-ether
    receive() external payable {
        // Proxy call by default.
        _doProxyCall();
    }

    // slither-disable-next-line locked-ether
    fallback() external payable {
        // Proxy call by default.
        _doProxyCall();
    }

    /**
     * @notice Set the implementation contract address. The code at the given address will execute
     *         when this contract is called.
     *
     * @param _implementation Address of the implementation contract.
     */
    function upgradeTo(address _implementation) public virtual proxyCallIfNotAdmin {
        _setImplementation(_implementation);
    }

    /**
     * @notice Set the implementation and call a function in a single transaction. Useful to ensure
     *         atomic execution of initialization-based upgrades.
     *
     * @param _implementation Address of the implementation contract.
     * @param _data           Calldata to delegatecall the new implementation with.
     */
    function upgradeToAndCall(address _implementation, bytes calldata _data)
        public
        payable
        virtual
        proxyCallIfNotAdmin
        returns (bytes memory)
    {
        _setImplementation(_implementation);
        (bool success, bytes memory returndata) = _implementation.delegatecall(_data);
        require(success, "Proxy: delegatecall to new implementation contract failed");
        return returndata;
    }

    /**
     * @notice Changes the owner of the proxy contract. Only callable by the owner.
     *
     * @param _admin New owner of the proxy contract.
     */
    function changeAdmin(address _admin) public virtual proxyCallIfNotAdmin {
        _changeAdmin(_admin);
    }

    /**
     * @notice Gets the owner of the proxy contract.
     *
     * @return Owner address.
     */
    function admin() public virtual proxyCallIfNotAdmin returns (address) {
        return _getAdmin();
    }

    /**
     * @notice Queries the implementation address.
     *
     * @return Implementation address.
     */
    function implementation() public virtual proxyCallIfNotAdmin returns (address) {
        return _getImplementation();
    }

    /**
     * @notice Sets the implementation address.
     *
     * @param _implementation New implementation address.
     */
    function _setImplementation(address _implementation) internal {
        assembly {
            sstore(IMPLEMENTATION_KEY, _implementation)
        }
        emit Upgraded(_implementation);
    }

    /**
     * @notice Changes the owner of the proxy contract.
     *
     * @param _admin New owner of the proxy contract.
     */
    function _changeAdmin(address _admin) internal {
        address previous = _getAdmin();
        assembly {
            sstore(OWNER_KEY, _admin)
        }
        emit AdminChanged(previous, _admin);
    }

    /**
     * @notice Performs the proxy call via a delegatecall.
     */
    function _doProxyCall() internal {
        address impl = _getImplementation();
        require(impl != address(0), "Proxy: implementation not initialized");

        assembly {
            // Copy calldata into memory at 0x0....calldatasize.
            calldatacopy(0x0, 0x0, calldatasize())

            // Perform the delegatecall, make sure to pass all available gas.
            let success := delegatecall(gas(), impl, 0x0, calldatasize(), 0x0, 0x0)

            // Copy returndata into memory at 0x0....returndatasize. Note that this *will*
            // overwrite the calldata that we just copied into memory but that doesn't really
            // matter because we'll be returning in a second anyway.
            returndatacopy(0x0, 0x0, returndatasize())

            // Success == 0 means a revert. We'll revert too and pass the data up.
            if iszero(success) {
                revert(0x0, returndatasize())
            }

            // Otherwise we'll just return and pass the data up.
            return(0x0, returndatasize())
        }
    }

    /**
     * @notice Queries the implementation address.
     *
     * @return Implementation address.
     */
    function _getImplementation() internal view returns (address) {
        address impl;
        assembly {
            impl := sload(IMPLEMENTATION_KEY)
        }
        return impl;
    }

    /**
     * @notice Queries the owner of the proxy contract.
     *
     * @return Owner address.
     */
    function _getAdmin() internal view returns (address) {
        address owner;
        assembly {
            owner := sload(OWNER_KEY)
        }
        return owner;
    }
}

Settings
{
  "remappings": [
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/",
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "@rari-capital/=node_modules/@rari-capital/",
    "@rari-capital/solmate/=node_modules/@rari-capital/solmate/",
    "ds-test/=node_modules/ds-test/src/",
    "forge-std/=node_modules/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106d9565b610224565b6100a86100a33660046106f4565b610296565b6040516100b59190610777565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106d9565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ea565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060b565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106357fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d457600080fd5b919050565b6000602082840312156106eb57600080fd5b610412826106b0565b60008060006040848603121561070957600080fd5b610712846106b0565b9250602084013567ffffffffffffffff8082111561072f57600080fd5b818601915086601f83011261074357600080fd5b81358181111561075257600080fd5b87602082850101111561076457600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a457858101830151858201604001528201610788565b818111156107b6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000a

Block Transaction Difficulty 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
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.