ETH Price: $2,897.89 (-1.29%)
 

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Multi Send252754582025-11-22 16:18:0164 days ago1763828281IN
0x40A2aCCb...29b49130D
0 ETH0.000000060.0001201
Multi Send222863312025-09-30 23:32:42117 days ago1759275162IN
0x40A2aCCb...29b49130D
0 ETH0.00000630.02
Multi Send217923722025-09-23 12:49:06124 days ago1758631746IN
0x40A2aCCb...29b49130D
0 ETH0.000003360.02
Multi Send217801252025-09-23 7:09:05125 days ago1758611345IN
0x40A2aCCb...29b49130D
0 ETH0.000000440.0001201
Multi Send213349442025-09-15 18:21:32132 days ago1757960492IN
0x40A2aCCb...29b49130D
0 ETH0.000019770.01
Multi Send210200262025-09-11 10:44:52136 days ago1757587492IN
0x40A2aCCb...29b49130D
0 ETH0.00000340.02
Multi Send204896112025-09-02 9:55:59145 days ago1756806959IN
0x40A2aCCb...29b49130D
0 ETH0.000003580.02
Multi Send200305992025-08-24 21:26:32154 days ago1756070792IN
0x40A2aCCb...29b49130D
0 ETH0.000004870.01
Multi Send199678282025-08-23 22:41:32155 days ago1755988892IN
0x40A2aCCb...29b49130D
0 ETH0.000012470.01
Multi Send190161642025-08-12 14:16:01166 days ago1755008161IN
0x40A2aCCb...29b49130D
0 ETH0.000000020.00014427
Multi Send187548912025-08-09 13:41:28169 days ago1754746888IN
0x40A2aCCb...29b49130D
0 ETH0.000007860.02
Multi Send186786892025-08-08 16:31:26170 days ago1754670686IN
0x40A2aCCb...29b49130D
0 ETH0.000005660.02
Multi Send171019302025-07-10 16:23:41199 days ago1752164621IN
0x40A2aCCb...29b49130D
0 ETH0.000000490.00328457
Multi Send169440142025-07-03 15:29:53206 days ago1751556593IN
0x40A2aCCb...29b49130D
0 ETH0.000001550.00559752
Multi Send168891542025-07-01 13:03:42208 days ago1751375022IN
0x40A2aCCb...29b49130D
0 ETH0.000001030.00562449
Multi Send168876452025-07-01 11:35:38208 days ago1751369738IN
0x40A2aCCb...29b49130D
0 ETH0.000002140.01004143
Multi Send164033972025-06-11 22:49:45228 days ago1749682185IN
0x40A2aCCb...29b49130D
0 ETH0.000029040.03
Multi Send163353422025-06-09 16:04:26230 days ago1749485066IN
0x40A2aCCb...29b49130D
0 ETH0.000008570.03
Multi Send162431652025-06-05 13:41:45234 days ago1749130905IN
0x40A2aCCb...29b49130D
0 ETH0.000016470.03982525
Multi Send161345092025-05-31 21:00:27239 days ago1748725227IN
0x40A2aCCb...29b49130D
0 ETH0.000167150.04439029
Multi Send143759502025-04-02 9:24:07298 days ago1743585847IN
0x40A2aCCb...29b49130D
0 ETH0.000011060.03930878
Multi Send143665812025-04-02 1:35:40299 days ago1743557740IN
0x40A2aCCb...29b49130D
0 ETH0.000009880.06
Multi Send143664892025-04-02 1:31:04299 days ago1743557464IN
0x40A2aCCb...29b49130D
0 ETH0.00002070.06
Multi Send139812092025-03-12 5:29:57320 days ago1741757397IN
0x40A2aCCb...29b49130D
0 ETH0.000033770.03969143
Multi Send138313142025-03-04 23:33:03327 days ago1741131183IN
0x40A2aCCb...29b49130D
0 ETH0.000148910.05
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
1852023-10-10 6:56:34839 days ago1696920994  Contract Creation0 ETH
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSendCallOnly

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;

/// @title Multi Send Call Only - Allows to batch multiple transactions into one, but only calls
/// @author Stefan George - <[email protected]>
/// @author Richard Meissner - <[email protected]>
/// @notice The guard logic is not required here as this contract doesn't support nested delegate calls
contract MultiSendCallOnly {
    /// @dev Sends multiple transactions and reverts all if one fails.
    /// @param transactions Encoded transactions. Each transaction is encoded as a packed bytes of
    ///                     operation has to be uint8(0) in this version (=> 1 byte),
    ///                     to as a address (=> 20 bytes),
    ///                     value as a uint256 (=> 32 bytes),
    ///                     data length as a uint256 (=> 32 bytes),
    ///                     data as bytes.
    ///                     see abi.encodePacked for more information on packed encoding
    /// @notice The code is for most part the same as the normal MultiSend (to keep compatibility),
    ///         but reverts if a transaction tries to use a delegatecall.
    /// @notice This method is payable as delegatecalls keep the msg.value from the previous call
    ///         If the calling method (e.g. execTransaction) received ETH this would revert otherwise
    function multiSend(bytes memory transactions) public payable {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            let length := mload(transactions)
            let i := 0x20
            for {
                // Pre block is not used in "while mode"
            } lt(i, length) {
                // Post block is not used in "while mode"
            } {
                // First byte of the data is the operation.
                // We shift by 248 bits (256 - 8 [operation byte]) it right since mload will always load 32 bytes (a word).
                // This will also zero out unused data.
                let operation := shr(0xf8, mload(add(transactions, i)))
                // We offset the load address by 1 byte (operation byte)
                // We shift it right by 96 bits (256 - 160 [20 address bytes]) to right-align the data and zero out unused data.
                let to := shr(0x60, mload(add(transactions, add(i, 0x01))))
                // We offset the load address by 21 byte (operation byte + 20 address bytes)
                let value := mload(add(transactions, add(i, 0x15)))
                // We offset the load address by 53 byte (operation byte + 20 address bytes + 32 value bytes)
                let dataLength := mload(add(transactions, add(i, 0x35)))
                // We offset the load address by 85 byte (operation byte + 20 address bytes + 32 value bytes + 32 data length bytes)
                let data := add(transactions, add(i, 0x55))
                let success := 0
                switch operation
                    case 0 {
                        success := call(gas(), to, value, data, dataLength, 0, 0)
                    }
                    // This version does not allow delegatecalls
                    case 1 {
                        revert(0, 0)
                    }
                if eq(success, 0) {
                    revert(0, 0)
                }
                // Next entry starts at 85 byte + data length
                i := add(i, add(0x55, dataLength))
            }
        }
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"bytes","name":"transactions","type":"bytes"}],"name":"multiSend","outputs":[],"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b5061019a806100206000396000f3fe60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea264697066735822122035246402746c96964495cae5b36461fd44dfb89f8e6cf6f6b8d60c0aa89f414864736f6c63430007060033

Deployed Bytecode

0x60806040526004361061001e5760003560e01c80638d80ff0a14610023575b600080fd5b6100dc6004803603602081101561003957600080fd5b810190808035906020019064010000000081111561005657600080fd5b82018360208201111561006857600080fd5b8035906020019184600183028401116401000000008311171561008a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100de565b005b805160205b8181101561015f578083015160f81c6001820184015160601c60158301850151603584018601516055850187016000856000811461012857600181146101385761013d565b6000808585888a5af1915061013d565b600080fd5b50600081141561014c57600080fd5b82605501870196505050505050506100e3565b50505056fea264697066735822122035246402746c96964495cae5b36461fd44dfb89f8e6cf6f6b8d60c0aa89f414864736f6c63430007060033

Block Transaction Gas Used Reward
view all blocks sequenced

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