Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 4,500 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Amount
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Batch Native Tra... | 1784654 | 1 hr ago | IN | 0.00036 ETH | 0.00006464 | ||||
| Batch Native Tra... | 1784650 | 1 hr ago | IN | 0 ETH | 0.00005408 | ||||
| Batch Native Tra... | 1784649 | 1 hr ago | IN | 3 wei | 0.00007628 | ||||
| Batch Native Tra... | 1784625 | 1 hr ago | IN | 0 ETH | 0.00004622 | ||||
| Batch Native Tra... | 1784608 | 2 hrs ago | IN | 3 wei | 0.00011421 | ||||
| Batch Native Tra... | 1777915 | 25 hrs ago | IN | 0.00036 ETH | 0.00006405 | ||||
| Batch Native Tra... | 1777910 | 25 hrs ago | IN | 0 ETH | 0.00005552 | ||||
| Batch Native Tra... | 1777909 | 25 hrs ago | IN | 3 wei | 0.00007852 | ||||
| Batch Native Tra... | 1777884 | 25 hrs ago | IN | 0 ETH | 0.00005396 | ||||
| Batch Native Tra... | 1777862 | 26 hrs ago | IN | 3 wei | 0.00009916 | ||||
| Batch Native Tra... | 1771375 | 2 days ago | IN | 0.00036 ETH | 0.00006523 | ||||
| Batch Native Tra... | 1771371 | 2 days ago | IN | 0 ETH | 0.00005309 | ||||
| Batch Native Tra... | 1771370 | 2 days ago | IN | 3 wei | 0.00007461 | ||||
| Batch Native Tra... | 1771358 | 2 days ago | IN | 0 ETH | 0.00004821 | ||||
| Batch Native Tra... | 1764967 | 3 days ago | IN | 0.00036 ETH | 0.00006509 | ||||
| Batch Native Tra... | 1764962 | 3 days ago | IN | 0 ETH | 0.00005543 | ||||
| Batch Native Tra... | 1764961 | 3 days ago | IN | 3 wei | 0.00007844 | ||||
| Batch Native Tra... | 1764942 | 3 days ago | IN | 0 ETH | 0.00005141 | ||||
| Batch Native Tra... | 1764925 | 3 days ago | IN | 3 wei | 0.00011699 | ||||
| Batch Native Tra... | 1758192 | 4 days ago | IN | 0.00036 ETH | 0.00006191 | ||||
| Batch Native Tra... | 1758186 | 4 days ago | IN | 0 ETH | 0.00005065 | ||||
| Batch Native Tra... | 1758185 | 4 days ago | IN | 3 wei | 0.00008424 | ||||
| Batch Native Tra... | 1758160 | 4 days ago | IN | 0 ETH | 0.00004854 | ||||
| Batch Native Tra... | 1758144 | 4 days ago | IN | 3 wei | 0.000105 | ||||
| Batch Native Tra... | 1751273 | 5 days ago | IN | 0 ETH | 0.00005322 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
Amount
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 1784654 | 1 hr ago | 0.00013 ETH | ||||
| Transfer | 1784654 | 1 hr ago | 0.00012 ETH | ||||
| Transfer | 1784654 | 1 hr ago | 0.00011 ETH | ||||
| Transfer | 1784650 | 1 hr ago | 0 ETH | ||||
| Transfer | 1784650 | 1 hr ago | 0 ETH | ||||
| Transfer | 1784649 | 1 hr ago | 2 wei | ||||
| Transfer | 1784649 | 1 hr ago | 1 wei | ||||
| Transfer | 1784625 | 1 hr ago | 0 ETH | ||||
| Transfer | 1784625 | 1 hr ago | 0 ETH | ||||
| Transfer | 1784608 | 2 hrs ago | 2 wei | ||||
| Transfer | 1784608 | 2 hrs ago | 1 wei | ||||
| Transfer | 1777915 | 25 hrs ago | 0.00013 ETH | ||||
| Transfer | 1777915 | 25 hrs ago | 0.00012 ETH | ||||
| Transfer | 1777915 | 25 hrs ago | 0.00011 ETH | ||||
| Transfer | 1777910 | 25 hrs ago | 0 ETH | ||||
| Transfer | 1777910 | 25 hrs ago | 0 ETH | ||||
| Transfer | 1777909 | 25 hrs ago | 2 wei | ||||
| Transfer | 1777909 | 25 hrs ago | 1 wei | ||||
| Transfer | 1777884 | 25 hrs ago | 0 ETH | ||||
| Transfer | 1777884 | 25 hrs ago | 0 ETH | ||||
| Transfer | 1777862 | 26 hrs ago | 2 wei | ||||
| Transfer | 1777862 | 26 hrs ago | 1 wei | ||||
| Transfer | 1771375 | 2 days ago | 0.00013 ETH | ||||
| Transfer | 1771375 | 2 days ago | 0.00012 ETH | ||||
| Transfer | 1771375 | 2 days ago | 0.00011 ETH |
Loading...
Loading
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;
}
}{
"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"}]Contract Creation Code
6080604052348015600e575f5ffd5b5060015f81905550610849806100235f395ff3fe60806040526004361061001d575f3560e01c8063c171337714610021575b5f5ffd5b61003b600480360381019061003691906103ef565b61003d565b005b6100456102e4565b81819050848490501461008d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610084906104ed565b60405180910390fd5b609684849050106100d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ca9061057b565b60405180910390fd5b5f5f90505f5f90505b85859050811015610292578383828181106100fa576100f9610599565b5b905060200201358261010c91906105fc565b91505f86868381811061012257610121610599565b5b90506020020160208101906101379190610689565b73ffffffffffffffffffffffffffffffffffffffff168585848181106101605761015f610599565b5b90506020020135604051610173906106e1565b5f6040518083038185875af1925050503d805f81146101ad576040519150601f19603f3d011682016040523d82523d5f602084013e6101b2565b606091505b50509050806101f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9061073f565b60405180910390fd5b86868381811061020957610208610599565b5b905060200201602081019061021e9190610689565b73ffffffffffffffffffffffffffffffffffffffff167f47db2abce6d5fbcd80ffd9b4ba74dcde804a746ef732bc7f8a70fabfc912c59086868581811061026857610267610599565b5b9050602002013560405161027c919061076c565b60405180910390a25080806001019150506100dc565b503481146102d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cc906107f5565b60405180910390fd5b506102de610328565b50505050565b60025f540361031f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b60015f81905550565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261035a57610359610339565b5b8235905067ffffffffffffffff8111156103775761037661033d565b5b60208301915083602082028301111561039357610392610341565b5b9250929050565b5f5f83601f8401126103af576103ae610339565b5b8235905067ffffffffffffffff8111156103cc576103cb61033d565b5b6020830191508360208202830111156103e8576103e7610341565b5b9250929050565b5f5f5f5f6040858703121561040757610406610331565b5b5f85013567ffffffffffffffff81111561042457610423610335565b5b61043087828801610345565b9450945050602085013567ffffffffffffffff81111561045357610452610335565b5b61045f8782880161039a565b925092505092959194509250565b5f82825260208201905092915050565b7f70726f7669646564206e756d626572206f662061646472657373657320616e645f8201527f20616d6f756e7473206d757374206265207468652073616d6500000000000000602082015250565b5f6104d760398361046d565b91506104e28261047d565b604082019050919050565b5f6020820190508181035f830152610504816104cb565b9050919050565b7f62617463686573206f66207472616e73616374696f6e7320617265206c696d695f8201527f74656420746f20313530206d6178000000000000000000000000000000000000602082015250565b5f610565602e8361046d565b91506105708261050b565b604082019050919050565b5f6020820190508181035f83015261059281610559565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610606826105c6565b9150610611836105c6565b9250828201905080821115610629576106286105cf565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106588261062f565b9050919050565b6106688161064e565b8114610672575f5ffd5b50565b5f813590506106838161065f565b92915050565b5f6020828403121561069e5761069d610331565b5b5f6106ab84828501610675565b91505092915050565b5f81905092915050565b50565b5f6106cc5f836106b4565b91506106d7826106be565b5f82019050919050565b5f6106eb826106c1565b9150819050919050565b7f53656e64206661696c65640000000000000000000000000000000000000000005f82015250565b5f610729600b8361046d565b9150610734826106f5565b602082019050919050565b5f6020820190508181035f8301526107568161071d565b9050919050565b610766816105c6565b82525050565b5f60208201905061077f5f83018461075d565b92915050565b7f74686520616d6f756e74206578636565647320746f74616c20726571756972655f8201527f6420746f20706572666f726d207472616e73616374696f6e7300000000000000602082015250565b5f6107df60398361046d565b91506107ea82610785565b604082019050919050565b5f6020820190508181035f83015261080c816107d3565b905091905056fea2646970667358221220b644768e3329423c33e3114cb2094ac1568fbc92ada03d274df6bc5add914af464736f6c634300081e0033
Deployed Bytecode
0x60806040526004361061001d575f3560e01c8063c171337714610021575b5f5ffd5b61003b600480360381019061003691906103ef565b61003d565b005b6100456102e4565b81819050848490501461008d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610084906104ed565b60405180910390fd5b609684849050106100d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ca9061057b565b60405180910390fd5b5f5f90505f5f90505b85859050811015610292578383828181106100fa576100f9610599565b5b905060200201358261010c91906105fc565b91505f86868381811061012257610121610599565b5b90506020020160208101906101379190610689565b73ffffffffffffffffffffffffffffffffffffffff168585848181106101605761015f610599565b5b90506020020135604051610173906106e1565b5f6040518083038185875af1925050503d805f81146101ad576040519150601f19603f3d011682016040523d82523d5f602084013e6101b2565b606091505b50509050806101f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9061073f565b60405180910390fd5b86868381811061020957610208610599565b5b905060200201602081019061021e9190610689565b73ffffffffffffffffffffffffffffffffffffffff167f47db2abce6d5fbcd80ffd9b4ba74dcde804a746ef732bc7f8a70fabfc912c59086868581811061026857610267610599565b5b9050602002013560405161027c919061076c565b60405180910390a25080806001019150506100dc565b503481146102d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102cc906107f5565b60405180910390fd5b506102de610328565b50505050565b60025f540361031f576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b60015f81905550565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261035a57610359610339565b5b8235905067ffffffffffffffff8111156103775761037661033d565b5b60208301915083602082028301111561039357610392610341565b5b9250929050565b5f5f83601f8401126103af576103ae610339565b5b8235905067ffffffffffffffff8111156103cc576103cb61033d565b5b6020830191508360208202830111156103e8576103e7610341565b5b9250929050565b5f5f5f5f6040858703121561040757610406610331565b5b5f85013567ffffffffffffffff81111561042457610423610335565b5b61043087828801610345565b9450945050602085013567ffffffffffffffff81111561045357610452610335565b5b61045f8782880161039a565b925092505092959194509250565b5f82825260208201905092915050565b7f70726f7669646564206e756d626572206f662061646472657373657320616e645f8201527f20616d6f756e7473206d757374206265207468652073616d6500000000000000602082015250565b5f6104d760398361046d565b91506104e28261047d565b604082019050919050565b5f6020820190508181035f830152610504816104cb565b9050919050565b7f62617463686573206f66207472616e73616374696f6e7320617265206c696d695f8201527f74656420746f20313530206d6178000000000000000000000000000000000000602082015250565b5f610565602e8361046d565b91506105708261050b565b604082019050919050565b5f6020820190508181035f83015261059281610559565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610606826105c6565b9150610611836105c6565b9250828201905080821115610629576106286105cf565b5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106588261062f565b9050919050565b6106688161064e565b8114610672575f5ffd5b50565b5f813590506106838161065f565b92915050565b5f6020828403121561069e5761069d610331565b5b5f6106ab84828501610675565b91505092915050565b5f81905092915050565b50565b5f6106cc5f836106b4565b91506106d7826106be565b5f82019050919050565b5f6106eb826106c1565b9150819050919050565b7f53656e64206661696c65640000000000000000000000000000000000000000005f82015250565b5f610729600b8361046d565b9150610734826106f5565b602082019050919050565b5f6020820190508181035f8301526107568161071d565b9050919050565b610766816105c6565b82525050565b5f60208201905061077f5f83018461075d565b92915050565b7f74686520616d6f756e74206578636565647320746f74616c20726571756972655f8201527f6420746f20706572666f726d207472616e73616374696f6e7300000000000000602082015250565b5f6107df60398361046d565b91506107ea82610785565b604082019050919050565b5f6020820190508181035f83015261080c816107d3565b905091905056fea2646970667358221220b644768e3329423c33e3114cb2094ac1568fbc92ada03d274df6bc5add914af464736f6c634300081e0033
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.