ETH Price: $2,954.13 (-1.10%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw239961082025-12-12 10:59:2347 days ago1765537163IN
0xCBf1eCc3...a23d6709b
0 ETH0.000073532.0947011
Withdraw239960382025-12-12 10:45:2347 days ago1765536323IN
0xCBf1eCc3...a23d6709b
0 ETH0.000073332.0897386
Withdraw239832152025-12-10 15:30:4749 days ago1765380647IN
0xCBf1eCc3...a23d6709b
0 ETH0.000006640.20366655
Transfer239702142025-12-08 19:37:3551 days ago1765222655IN
0xCBf1eCc3...a23d6709b
0.01163702 ETH0.000051942.30761204
Transfer239674472025-12-08 10:19:2351 days ago1765189163IN
0xCBf1eCc3...a23d6709b
0.00031058 ETH0.000052622.33759164
Transfer239642692025-12-07 23:36:4752 days ago1765150607IN
0xCBf1eCc3...a23d6709b
0.0003208 ETH0.000047812.12414711
Transfer239641072025-12-07 23:03:5952 days ago1765148639IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000002240.09980804
Transfer239640892025-12-07 23:00:1152 days ago1765148411IN
0xCBf1eCc3...a23d6709b
0.00038724 ETH0.000002470.11
Transfer239640892025-12-07 23:00:1152 days ago1765148411IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000047312.10188652
Transfer239640892025-12-07 23:00:1152 days ago1765148411IN
0xCBf1eCc3...a23d6709b
0.00684138 ETH0.000047312.10188652
Transfer239640892025-12-07 23:00:1152 days ago1765148411IN
0xCBf1eCc3...a23d6709b
0.00038724 ETH0.000047312.10188652
Transfer239640882025-12-07 22:59:5952 days ago1765148399IN
0xCBf1eCc3...a23d6709b
0.00038724 ETH0.000004550.20230025
Transfer239640882025-12-07 22:59:5952 days ago1765148399IN
0xCBf1eCc3...a23d6709b
0.00077449 ETH0.000002450.1090772
Transfer239640882025-12-07 22:59:5952 days ago1765148399IN
0xCBf1eCc3...a23d6709b
0.00193623 ETH0.000004080.18130025
Transfer239640882025-12-07 22:59:5952 days ago1765148399IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000047322.10230025
Transfer239640882025-12-07 22:59:5952 days ago1765148399IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000036071.60230025
Transfer239640882025-12-07 22:59:5952 days ago1765148399IN
0xCBf1eCc3...a23d6709b
0.00037069 ETH0.000047322.10230025
Transfer239640872025-12-07 22:59:4752 days ago1765148387IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000047182.09618841
Transfer239640862025-12-07 22:59:3552 days ago1765148375IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000001930.08609842
Transfer239640862025-12-07 22:59:3552 days ago1765148375IN
0xCBf1eCc3...a23d6709b
0.00677849 ETH0.000001930.0861008
Transfer239640862025-12-07 22:59:3552 days ago1765148375IN
0xCBf1eCc3...a23d6709b
0.00074139 ETH0.000001930.08615461
Transfer239640862025-12-07 22:59:3552 days ago1765148375IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000022190.98609287
Transfer239640852025-12-07 22:59:2352 days ago1765148363IN
0xCBf1eCc3...a23d6709b
0.00129082 ETH0.000004270.18975212
Transfer239640852025-12-07 22:59:2352 days ago1765148363IN
0xCBf1eCc3...a23d6709b
0.00038724 ETH0.000004270.18975212
Transfer239640852025-12-07 22:59:2352 days ago1765148363IN
0xCBf1eCc3...a23d6709b
0.00032436 ETH0.000044741.98775212
View all transactions

Latest 17 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer239961082025-12-12 10:59:2347 days ago1765537163
0xCBf1eCc3...a23d6709b
1.96555489 ETH
Transfer239960382025-12-12 10:45:2347 days ago1765536323
0xCBf1eCc3...a23d6709b
11.03460615 ETH
Transfer239832152025-12-10 15:30:4749 days ago1765380647
0xCBf1eCc3...a23d6709b
0.54738689 ETH
Transfer239640132025-12-07 22:44:3552 days ago1765147475
0xCBf1eCc3...a23d6709b
0.0003208 ETH
Transfer239578112025-12-07 1:53:2353 days ago1765072403
0xCBf1eCc3...a23d6709b
0.00192131 ETH
Transfer239560052025-12-06 19:48:2353 days ago1765050503
0xCBf1eCc3...a23d6709b
0.00036935 ETH
Transfer239553072025-12-06 17:27:4753 days ago1765042067
0xCBf1eCc3...a23d6709b
0.00990684 ETH
Transfer239552922025-12-06 17:24:4753 days ago1765041887
0xCBf1eCc3...a23d6709b
0.00032116 ETH
Transfer239537852025-12-06 12:17:3553 days ago1765023455
0xCBf1eCc3...a23d6709b
0.00038513 ETH
Transfer239533692025-12-06 10:53:3553 days ago1765018415
0xCBf1eCc3...a23d6709b
0.00036932 ETH
Transfer239532982025-12-06 10:39:2353 days ago1765017563
0xCBf1eCc3...a23d6709b
0.00032315 ETH
Transfer239424642025-12-04 21:57:1155 days ago1764885431
0xCBf1eCc3...a23d6709b
0.04238505 ETH
Transfer239424132025-12-04 21:46:5955 days ago1764884819
0xCBf1eCc3...a23d6709b
0.04238505 ETH
Transfer239400962025-12-04 13:51:4755 days ago1764856307
0xCBf1eCc3...a23d6709b
0.00061246 ETH
Transfer239387112025-12-04 9:05:5955 days ago1764839159
0xCBf1eCc3...a23d6709b
0.00092011 ETH
Transfer239385712025-12-04 8:34:3556 days ago1764837275
0xCBf1eCc3...a23d6709b
0.00108114 ETH
Transfer239352532025-12-03 20:20:2356 days ago1764793223
0xCBf1eCc3...a23d6709b
0.04358001 ETH
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:
PaymentVault

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 95000 runs

Other Settings:
cancun EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

/// @title PaymentVault
/// @notice Simple vault that accepts ETH payments and allows the owner to withdraw to arbitrary recipients.
contract PaymentVault is Ownable {
    /// @dev Emitted when `sender` makes a payment of `amount` ETH.
    event Payment(address indexed sender, uint256 amount);

    /// @dev Emitted when the owner withdraws `amount` of ETH to `recipient`.
    event Withdrawal(address indexed recipient, uint256 amount);

    constructor() Ownable(msg.sender) {}

    /// @notice Make a payment to the vault.
    function pay() external payable {
        require(msg.value > 0, "PaymentVault: payment value must be positive");
        emit Payment(msg.sender, msg.value);
    }

    /// @notice Withdraw `amount` of ETH to `recipient`.
    /// @param recipient Address that will receive the withdrawn ETH.
    /// @param amount Amount of ETH (in wei) to withdraw.
    function withdraw(address payable recipient, uint256 amount) external onlyOwner {
        require(recipient != address(0), "PaymentVault: recipient is zero address");
        require(amount > 0, "PaymentVault: amount is zero");
        require(address(this).balance >= amount, "PaymentVault: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "PaymentVault: ETH transfer failed");

        emit Withdrawal(recipient, amount);
    }

    /// @notice Returns the current ETH balance held by the vault.
    function balance() external view returns (uint256) {
        return address(this).balance;
    }

    /// @notice Receive function enabling direct ETH transfers without calldata.
    receive() external payable {
        require(msg.value > 0, "PaymentVault: payment value must be positive");
        emit Payment(msg.sender, msg.value);
    }

    /// @notice Fallback function to accept ETH with calldata.
    fallback() external payable {
        require(msg.value > 0, "PaymentVault: payment value must be positive");
        emit Payment(msg.sender, msg.value);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

Settings
{
  "evmVersion": "cancun",
  "optimizer": {
    "enabled": true,
    "runs": 95000
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": [
    "project/:@openzeppelin/contracts/=npm/@openzeppelin/[email protected]/"
  ]
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Payment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawal","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"balance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ff8061009b5f395ff3fe608060405260043610610068575f3560e01c8063b69ef8a811610042578063b69ef8a81461021d578063f2fde38b14610237578063f3fef3a31461025657610138565b80631b9265b8146101c7578063715018a6146101d15780638da5cb5b146101e557610138565b36610138575f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2005b5f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b6101cf610275565b005b3480156101dc575f5ffd5b506101cf61033b565b3480156101f0575f5ffd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610228575f5ffd5b50604051478152602001610214565b348015610242575f5ffd5b506101cf61025136600461077d565b61034e565b348015610261575f5ffd5b506101cf61027036600461079f565b6103b1565b5f3411610304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2565b610343610696565b61034c5f6106e8565b565b610356610696565b73ffffffffffffffffffffffffffffffffffffffff81166103a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016100f8565b6103ae816106e8565b50565b6103b9610696565b73ffffffffffffffffffffffffffffffffffffffff821661045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5061796d656e745661756c743a20726563697069656e74206973207a65726f2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016100f8565b5f81116104c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5061796d656e745661756c743a20616d6f756e74206973207a65726f0000000060448201526064016100f8565b80471015610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f5061796d656e745661756c743a20696e73756666696369656e742062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146105ab576040519150601f19603f3d011682016040523d82523d5f602084013e6105b0565b606091505b5050905080610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5061796d656e745661756c743a20455448207472616e73666572206661696c6560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b8273ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658360405161068991815260200190565b60405180910390a2505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461034c576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016100f8565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146103ae575f5ffd5b5f6020828403121561078d575f5ffd5b81356107988161075c565b9392505050565b5f5f604083850312156107b0575f5ffd5b82356107bb8161075c565b94602093909301359350505056fea26469706673582212207835ff02a3fdc904682be9cccda9eecbaa03fb46c92f95b761261bfb9a25140464736f6c634300081c0033

Deployed Bytecode

0x608060405260043610610068575f3560e01c8063b69ef8a811610042578063b69ef8a81461021d578063f2fde38b14610237578063f3fef3a31461025657610138565b80631b9265b8146101c7578063715018a6146101d15780638da5cb5b146101e557610138565b36610138575f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2005b5f3411610101576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b6101cf610275565b005b3480156101dc575f5ffd5b506101cf61033b565b3480156101f0575f5ffd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b348015610228575f5ffd5b50604051478152602001610214565b348015610242575f5ffd5b506101cf61025136600461077d565b61034e565b348015610261575f5ffd5b506101cf61027036600461079f565b6103b1565b5f3411610304576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f5061796d656e745661756c743a207061796d656e742076616c7565206d75737460448201527f20626520706f736974697665000000000000000000000000000000000000000060648201526084016100f8565b60405134815233907fd4f43975feb89f48dd30cabbb32011045be187d1e11c8ea9faa43efc352825199060200160405180910390a2565b610343610696565b61034c5f6106e8565b565b610356610696565b73ffffffffffffffffffffffffffffffffffffffff81166103a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016100f8565b6103ae816106e8565b50565b6103b9610696565b73ffffffffffffffffffffffffffffffffffffffff821661045c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f5061796d656e745661756c743a20726563697069656e74206973207a65726f2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016100f8565b5f81116104c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5061796d656e745661756c743a20616d6f756e74206973207a65726f0000000060448201526064016100f8565b80471015610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f5061796d656e745661756c743a20696e73756666696369656e742062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b5f8273ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f81146105ab576040519150601f19603f3d011682016040523d82523d5f602084013e6105b0565b606091505b5050905080610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f5061796d656e745661756c743a20455448207472616e73666572206661696c6560448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b8273ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b658360405161068991815260200190565b60405180910390a2505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461034c576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016100f8565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff811681146103ae575f5ffd5b5f6020828403121561078d575f5ffd5b81356107988161075c565b9392505050565b5f5f604083850312156107b0575f5ffd5b82356107bb8161075c565b94602093909301359350505056fea26469706673582212207835ff02a3fdc904682be9cccda9eecbaa03fb46c92f95b761261bfb9a25140464736f6c634300081c0033

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.