Hoodi Testnet

Contract

0xE115783e35776a1104d29880af211Cc03e81f393

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount
Batch Native Tra...17846542025-12-09 0:19:241 hr ago1765239564IN
0xE115783e...03e81f393
0.00036 ETH0.000064641.10963285
Batch Native Tra...17846502025-12-09 0:18:361 hr ago1765239516IN
0xE115783e...03e81f393
0 ETH0.000054081.12816245
Batch Native Tra...17846492025-12-09 0:18:241 hr ago1765239504IN
0xE115783e...03e81f393
3 wei0.000076281.01230973
Batch Native Tra...17846252025-12-09 0:13:241 hr ago1765239204IN
0xE115783e...03e81f393
0 ETH0.000046220.96500286
Batch Native Tra...17846082025-12-09 0:09:482 hrs ago1765238988IN
0xE115783e...03e81f393
3 wei0.000114211.13810333
Batch Native Tra...17779152025-12-08 0:20:2425 hrs ago1765153224IN
0xE115783e...03e81f393
0.00036 ETH0.000064051.09939305
Batch Native Tra...17779102025-12-08 0:19:2425 hrs ago1765153164IN
0xE115783e...03e81f393
0 ETH0.000055521.15823333
Batch Native Tra...17779092025-12-08 0:19:1225 hrs ago1765153152IN
0xE115783e...03e81f393
3 wei0.000078521.04225514
Batch Native Tra...17778842025-12-08 0:14:0025 hrs ago1765152840IN
0xE115783e...03e81f393
0 ETH0.000053961.12661093
Batch Native Tra...17778622025-12-08 0:09:3626 hrs ago1765152576IN
0xE115783e...03e81f393
3 wei0.000099160.98817726
Batch Native Tra...17713752025-12-07 0:20:002 days ago1765066800IN
0xE115783e...03e81f393
0.00036 ETH0.000065231.11965222
Batch Native Tra...17713712025-12-07 0:19:002 days ago1765066740IN
0xE115783e...03e81f393
0 ETH0.000053091.1075338
Batch Native Tra...17713702025-12-07 0:18:482 days ago1765066728IN
0xE115783e...03e81f393
3 wei0.000074610.99012043
Batch Native Tra...17713582025-12-07 0:15:362 days ago1765066536IN
0xE115783e...03e81f393
0 ETH0.000048211.00652508
Batch Native Tra...17649672025-12-06 0:16:483 days ago1764980208IN
0xE115783e...03e81f393
0.00036 ETH0.000065091.11725524
Batch Native Tra...17649622025-12-06 0:15:483 days ago1764980148IN
0xE115783e...03e81f393
0 ETH0.000055431.15637711
Batch Native Tra...17649612025-12-06 0:15:363 days ago1764980136IN
0xE115783e...03e81f393
3 wei0.000078441.0410067
Batch Native Tra...17649422025-12-06 0:11:243 days ago1764979884IN
0xE115783e...03e81f393
0 ETH0.000051411.07333206
Batch Native Tra...17649252025-12-06 0:08:003 days ago1764979680IN
0xE115783e...03e81f393
3 wei0.000116991.16580131
Batch Native Tra...17581922025-12-05 0:18:244 days ago1764893904IN
0xE115783e...03e81f393
0.00036 ETH0.000061911.06266412
Batch Native Tra...17581862025-12-05 0:17:124 days ago1764893832IN
0xE115783e...03e81f393
0 ETH0.000050651.05658676
Batch Native Tra...17581852025-12-05 0:17:004 days ago1764893820IN
0xE115783e...03e81f393
3 wei0.000084241.11798512
Batch Native Tra...17581602025-12-05 0:11:364 days ago1764893496IN
0xE115783e...03e81f393
0 ETH0.000048541.01333854
Batch Native Tra...17581442025-12-05 0:08:244 days ago1764893304IN
0xE115783e...03e81f393
3 wei0.0001051.04642651
Batch Native Tra...17512732025-12-04 0:13:125 days ago1764807192IN
0xE115783e...03e81f393
0 ETH0.000053221.11117468
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Amount
Transfer17846542025-12-09 0:19:241 hr ago1765239564
0xE115783e...03e81f393
0.00013 ETH
Transfer17846542025-12-09 0:19:241 hr ago1765239564
0xE115783e...03e81f393
0.00012 ETH
Transfer17846542025-12-09 0:19:241 hr ago1765239564
0xE115783e...03e81f393
0.00011 ETH
Transfer17846502025-12-09 0:18:361 hr ago1765239516
0xE115783e...03e81f393
0 ETH
Transfer17846502025-12-09 0:18:361 hr ago1765239516
0xE115783e...03e81f393
0 ETH
Transfer17846492025-12-09 0:18:241 hr ago1765239504
0xE115783e...03e81f393
2 wei
Transfer17846492025-12-09 0:18:241 hr ago1765239504
0xE115783e...03e81f393
1 wei
Transfer17846252025-12-09 0:13:241 hr ago1765239204
0xE115783e...03e81f393
0 ETH
Transfer17846252025-12-09 0:13:241 hr ago1765239204
0xE115783e...03e81f393
0 ETH
Transfer17846082025-12-09 0:09:482 hrs ago1765238988
0xE115783e...03e81f393
2 wei
Transfer17846082025-12-09 0:09:482 hrs ago1765238988
0xE115783e...03e81f393
1 wei
Transfer17779152025-12-08 0:20:2425 hrs ago1765153224
0xE115783e...03e81f393
0.00013 ETH
Transfer17779152025-12-08 0:20:2425 hrs ago1765153224
0xE115783e...03e81f393
0.00012 ETH
Transfer17779152025-12-08 0:20:2425 hrs ago1765153224
0xE115783e...03e81f393
0.00011 ETH
Transfer17779102025-12-08 0:19:2425 hrs ago1765153164
0xE115783e...03e81f393
0 ETH
Transfer17779102025-12-08 0:19:2425 hrs ago1765153164
0xE115783e...03e81f393
0 ETH
Transfer17779092025-12-08 0:19:1225 hrs ago1765153152
0xE115783e...03e81f393
2 wei
Transfer17779092025-12-08 0:19:1225 hrs ago1765153152
0xE115783e...03e81f393
1 wei
Transfer17778842025-12-08 0:14:0025 hrs ago1765152840
0xE115783e...03e81f393
0 ETH
Transfer17778842025-12-08 0:14:0025 hrs ago1765152840
0xE115783e...03e81f393
0 ETH
Transfer17778622025-12-08 0:09:3626 hrs ago1765152576
0xE115783e...03e81f393
2 wei
Transfer17778622025-12-08 0:09:3626 hrs ago1765152576
0xE115783e...03e81f393
1 wei
Transfer17713752025-12-07 0:20:002 days ago1765066800
0xE115783e...03e81f393
0.00013 ETH
Transfer17713752025-12-07 0:20:002 days ago1765066800
0xE115783e...03e81f393
0.00012 ETH
Transfer17713752025-12-07 0:20:002 days ago1765066800
0xE115783e...03e81f393
0.00011 ETH
View All Internal Transactions
Loading...
Loading

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:
BatchNativeTransfer

Compiler Version
v0.8.30+commit.73712a01

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

// Copyright Blockdaemon 2025.
//
// SPDX-License-Identifier: MIT
pragma solidity 0.8.30;

import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";

/// @title BatchNativeTransfer
/// @author Blockdaemon
/** 
    @notice This contract can be called to batch transfers of native EVM tokens.
    It has no safety mechanism that can be used to withdraw back funds, for the sake of making the contract cheaper, 
    instead it has a safety mechanism that disallows amounts that do not match the transfers.
*/
contract BatchNativeTransfer is ReentrancyGuard {

    event PaymentSent(address indexed recipient, uint256 value);

    function batchNativeTransfer(address[] calldata addresses, uint256[] calldata amounts) external payable nonReentrant() {
        require(addresses.length == amounts.length, "provided number of addresses and amounts must be the same");
        // we have to set a limit to avoid gas issues (i.e. the tx requiring too much)
        require(addresses.length < 150, "batches of transactions are limited to 150 max");

        uint256 amountTotal = 0;
        for (uint256 i = 0; i < addresses.length; i++) {
            amountTotal += amounts[i];
            (bool success, ) = addresses[i].call{
                value: amounts[i]
            }("");
            require(success, "Send failed");
            emit PaymentSent(addresses[i], amounts[i]);
        }

        // safety mechanism to force the amounts to match or we revert
        require(amountTotal == msg.value, "the amount exceeds total required to perform transactions");
    }
}

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

pragma solidity ^0.8.20;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,
 * consider using {ReentrancyGuardTransient} instead.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant NOT_ENTERED = 1;
    uint256 private constant ENTERED = 2;

    uint256 private _status;

    /**
     * @dev Unauthorized reentrant call.
     */
    error ReentrancyGuardReentrantCall();

    constructor() {
        _status = NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be NOT_ENTERED
        if (_status == ENTERED) {
            revert ReentrancyGuardReentrantCall();
        }

        // Any calls to nonReentrant after this point will fail
        _status = ENTERED;
    }

    function _nonReentrantAfter() private {
        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = NOT_ENTERED;
    }

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == ENTERED;
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract ABI

API
[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"PaymentSent","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"batchNativeTransfer","outputs":[],"stateMutability":"payable","type":"function"}]

6080604052348015600e575f5ffd5b5060015f81905550610849806100235f395ff3fe60806040526004361061001d575f3560e01c8063c171337714610021575b5f5ffd5b61003b600480360381019061003691906103ef565b61003d565b005b6100456102e4565b81819050848490501461008d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610084906104ed565b60405180910390fd5b609684849050106100d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ca9061057b565b60405180910390fd5b5f5f90505f5f90505b85859050811015610292578383828181106100fa576100f9610599565b5b905060200201358261010c91906105fc565b91505f86868381811061012257610121610599565b5b90506020020160208101906101379190610689565b73ffffffffffffffffffffffffffffffffffffffff168585848181106101605761015f610599565b5b90506020020135604051610173906106e1565b5f6040518083038185875af1925050503d805f81146101ad576040519150601f19603f3d011682016040523d82523d5f602084013e6101b2565b606091505b50509050806101f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9061073f565b60405180910390fd5b86868381811061020957610208610599565b5b905060200201602081019061021e9190610689565b73ffffffffffffffffffffffffffffffffffffffff167f47db2abce6d5fbcd80ffd9b4ba74dcde804a746ef732bc7f8a70fabfc912c59086868581811061026857610267610599565b5b9050602002013560405161027c919061076c565b60405180910390a25080806001019150506100dc565b503481146102d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cc906107f5565b60405180910390fd5b506102de610328565b50505050565b60025f540361031f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b60015f81905550565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261035a57610359610339565b5b8235905067ffffffffffffffff8111156103775761037661033d565b5b60208301915083602082028301111561039357610392610341565b5b9250929050565b5f5f83601f8401126103af576103ae610339565b5b8235905067ffffffffffffffff8111156103cc576103cb61033d565b5b6020830191508360208202830111156103e8576103e7610341565b5b9250929050565b5f5f5f5f6040858703121561040757610406610331565b5b5f85013567ffffffffffffffff81111561042457610423610335565b5b61043087828801610345565b9450945050602085013567ffffffffffffffff81111561045357610452610335565b5b61045f8782880161039a565b925092505092959194509250565b5f82825260208201905092915050565b7f70726f7669646564206e756d626572206f662061646472657373657320616e645f8201527f20616d6f756e7473206d757374206265207468652073616d6500000000000000602082015250565b5f6104d760398361046d565b91506104e28261047d565b604082019050919050565b5f6020820190508181035f830152610504816104cb565b9050919050565b7f62617463686573206f66207472616e73616374696f6e7320617265206c696d695f8201527f74656420746f20313530206d6178000000000000000000000000000000000000602082015250565b5f610565602e8361046d565b91506105708261050b565b604082019050919050565b5f6020820190508181035f83015261059281610559565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610606826105c6565b9150610611836105c6565b9250828201905080821115610629576106286105cf565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106588261062f565b9050919050565b6106688161064e565b8114610672575f5ffd5b50565b5f813590506106838161065f565b92915050565b5f6020828403121561069e5761069d610331565b5b5f6106ab84828501610675565b91505092915050565b5f81905092915050565b50565b5f6106cc5f836106b4565b91506106d7826106be565b5f82019050919050565b5f6106eb826106c1565b9150819050919050565b7f53656e64206661696c65640000000000000000000000000000000000000000005f82015250565b5f610729600b8361046d565b9150610734826106f5565b602082019050919050565b5f6020820190508181035f8301526107568161071d565b9050919050565b610766816105c6565b82525050565b5f60208201905061077f5f83018461075d565b92915050565b7f74686520616d6f756e74206578636565647320746f74616c20726571756972655f8201527f6420746f20706572666f726d207472616e73616374696f6e7300000000000000602082015250565b5f6107df60398361046d565b91506107ea82610785565b604082019050919050565b5f6020820190508181035f83015261080c816107d3565b905091905056fea2646970667358221220b644768e3329423c33e3114cb2094ac1568fbc92ada03d274df6bc5add914af464736f6c634300081e0033

Deployed Bytecode

0x60806040526004361061001d575f3560e01c8063c171337714610021575b5f5ffd5b61003b600480360381019061003691906103ef565b61003d565b005b6100456102e4565b81819050848490501461008d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610084906104ed565b60405180910390fd5b609684849050106100d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ca9061057b565b60405180910390fd5b5f5f90505f5f90505b85859050811015610292578383828181106100fa576100f9610599565b5b905060200201358261010c91906105fc565b91505f86868381811061012257610121610599565b5b90506020020160208101906101379190610689565b73ffffffffffffffffffffffffffffffffffffffff168585848181106101605761015f610599565b5b90506020020135604051610173906106e1565b5f6040518083038185875af1925050503d805f81146101ad576040519150601f19603f3d011682016040523d82523d5f602084013e6101b2565b606091505b50509050806101f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9061073f565b60405180910390fd5b86868381811061020957610208610599565b5b905060200201602081019061021e9190610689565b73ffffffffffffffffffffffffffffffffffffffff167f47db2abce6d5fbcd80ffd9b4ba74dcde804a746ef732bc7f8a70fabfc912c59086868581811061026857610267610599565b5b9050602002013560405161027c919061076c565b60405180910390a25080806001019150506100dc565b503481146102d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cc906107f5565b60405180910390fd5b506102de610328565b50505050565b60025f540361031f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b60015f81905550565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261035a57610359610339565b5b8235905067ffffffffffffffff8111156103775761037661033d565b5b60208301915083602082028301111561039357610392610341565b5b9250929050565b5f5f83601f8401126103af576103ae610339565b5b8235905067ffffffffffffffff8111156103cc576103cb61033d565b5b6020830191508360208202830111156103e8576103e7610341565b5b9250929050565b5f5f5f5f6040858703121561040757610406610331565b5b5f85013567ffffffffffffffff81111561042457610423610335565b5b61043087828801610345565b9450945050602085013567ffffffffffffffff81111561045357610452610335565b5b61045f8782880161039a565b925092505092959194509250565b5f82825260208201905092915050565b7f70726f7669646564206e756d626572206f662061646472657373657320616e645f8201527f20616d6f756e7473206d757374206265207468652073616d6500000000000000602082015250565b5f6104d760398361046d565b91506104e28261047d565b604082019050919050565b5f6020820190508181035f830152610504816104cb565b9050919050565b7f62617463686573206f66207472616e73616374696f6e7320617265206c696d695f8201527f74656420746f20313530206d6178000000000000000000000000000000000000602082015250565b5f610565602e8361046d565b91506105708261050b565b604082019050919050565b5f6020820190508181035f83015261059281610559565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610606826105c6565b9150610611836105c6565b9250828201905080821115610629576106286105cf565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106588261062f565b9050919050565b6106688161064e565b8114610672575f5ffd5b50565b5f813590506106838161065f565b92915050565b5f6020828403121561069e5761069d610331565b5b5f6106ab84828501610675565b91505092915050565b5f81905092915050565b50565b5f6106cc5f836106b4565b91506106d7826106be565b5f82019050919050565b5f6106eb826106c1565b9150819050919050565b7f53656e64206661696c65640000000000000000000000000000000000000000005f82015250565b5f610729600b8361046d565b9150610734826106f5565b602082019050919050565b5f6020820190508181035f8301526107568161071d565b9050919050565b610766816105c6565b82525050565b5f60208201905061077f5f83018461075d565b92915050565b7f74686520616d6f756e74206578636565647320746f74616c20726571756972655f8201527f6420746f20706572666f726d207472616e73616374696f6e7300000000000000602082015250565b5f6107df60398361046d565b91506107ea82610785565b604082019050919050565b5f6020820190508181035f83015261080c816107d3565b905091905056fea2646970667358221220b644768e3329423c33e3114cb2094ac1568fbc92ada03d274df6bc5add914af464736f6c634300081e0033

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