ETH Price: $1,633.83 (+0.61%)
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Airdrop ETH222860312025-04-17 3:28:355 days ago1744860515IN
Gaslite: Drop
0.2 ETH0.000054860.88310391
Airdrop ETH222860242025-04-17 3:27:115 days ago1744860431IN
Gaslite: Drop
0.325 ETH0.00012010.87840188
Airdrop ETH222860132025-04-17 3:24:595 days ago1744860299IN
Gaslite: Drop
0.38 ETH0.000300790.84724101
Airdrop ETH222626172025-04-13 21:02:598 days ago1744578179IN
Gaslite: Drop
0.74 ETH0.000691131.05870726
Airdrop ETH222626112025-04-13 21:01:478 days ago1744578107IN
Gaslite: Drop
0.65 ETH0.000269311.09444866
Airdrop ETH222626042025-04-13 21:00:238 days ago1744578023IN
Gaslite: Drop
0.85 ETH0.000178680.99911335
Airdrop ETH222426282025-04-11 2:11:4711 days ago1744337507IN
Gaslite: Drop
0.75 ETH0.000141750.87809989
Airdrop ETH222426192025-04-11 2:09:5911 days ago1744337399IN
Gaslite: Drop
1.4 ETH0.000464360.89379188
Airdrop ETH222426082025-04-11 2:07:4711 days ago1744337267IN
Gaslite: Drop
0.94 ETH0.00076530.93727691
Airdrop ERC20222364892025-04-10 5:39:2312 days ago1744263563IN
Gaslite: Drop
0 ETH0.000052830.92020091
Airdrop ERC20222364612025-04-10 5:33:4712 days ago1744263227IN
Gaslite: Drop
0 ETH0.000063060.8870247
Airdrop ERC20222115222025-04-06 18:00:4715 days ago1743962447IN
Gaslite: Drop
0 ETH0.000759948.27875823
Airdrop ERC721221830692025-04-02 18:38:3519 days ago1743619115IN
Gaslite: Drop
0 ETH0.000130761.12425267
Airdrop ERC721221830532025-04-02 18:35:2319 days ago1743618923IN
Gaslite: Drop
0 ETH0.000246111.09086315
Airdrop ERC20221829212025-04-02 18:08:4719 days ago1743617327IN
Gaslite: Drop
0 ETH0.001412651.0340399
Airdrop ERC20221823742025-04-02 16:18:5919 days ago1743610739IN
Gaslite: Drop
0 ETH0.000179022.04270266
Airdrop ERC20221823102025-04-02 16:06:1119 days ago1743609971IN
Gaslite: Drop
0 ETH0.019048082.58584303
Airdrop ERC20221807612025-04-02 10:54:1120 days ago1743591251IN
Gaslite: Drop
0 ETH0.000093290.54767849
Airdrop ERC20221755652025-04-01 17:31:2320 days ago1743528683IN
Gaslite: Drop
0 ETH0.000278431.63450528
Airdrop ERC20221755582025-04-01 17:29:5920 days ago1743528599IN
Gaslite: Drop
0 ETH0.003872541.4363952
Airdrop ERC20221748772025-04-01 15:13:2320 days ago1743520403IN
Gaslite: Drop
0 ETH0.001373092.9180432
Airdrop ERC20221743902025-04-01 13:35:2320 days ago1743514523IN
Gaslite: Drop
0 ETH0.000140491.30994771
Airdrop ERC20221743842025-04-01 13:34:1120 days ago1743514451IN
Gaslite: Drop
0 ETH0.000487411.69148155
Airdrop ERC20221739412025-04-01 12:04:5921 days ago1743509099IN
Gaslite: Drop
0 ETH0.002822481.04992104
Airdrop ERC20221683342025-03-31 17:17:4721 days ago1743441467IN
Gaslite: Drop
0 ETH0.000102811.2044504
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer222860312025-04-17 3:28:355 days ago1744860515
Gaslite: Drop
0.05 ETH
Transfer222860312025-04-17 3:28:355 days ago1744860515
Gaslite: Drop
0.05 ETH
Transfer222860312025-04-17 3:28:355 days ago1744860515
Gaslite: Drop
0.05 ETH
Transfer222860312025-04-17 3:28:355 days ago1744860515
Gaslite: Drop
0.05 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860242025-04-17 3:27:115 days ago1744860431
Gaslite: Drop
0.025 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
Transfer222860132025-04-17 3:24:595 days ago1744860299
Gaslite: Drop
0.01 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GasliteDrop

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 9999999 runs

Other Settings:
paris EvmVersion
File 1 of 1 : GasliteDrop.sol
pragma solidity 0.8.19;

/**
                                                                                                                   
                                                          bbbbbbbb                                         dddddddd
                                                          b::::::b                                         d::::::d
                                                          b::::::b                                         d::::::d
                                                          b::::::b                                         d::::::d
                                                           b:::::b                                         d:::::d 
   ggggggggg   ggggg aaaaaaaaaaaaa      ssssssssss         b:::::bbbbbbbbb      aaaaaaaaaaaaa      ddddddddd:::::d 
  g:::::::::ggg::::g a::::::::::::a   ss::::::::::s        b::::::::::::::bb    a::::::::::::a   dd::::::::::::::d 
 g:::::::::::::::::g aaaaaaaaa:::::ass:::::::::::::s       b::::::::::::::::b   aaaaaaaaa:::::a d::::::::::::::::d 
g::::::ggggg::::::gg          a::::as::::::ssss:::::s      b:::::bbbbb:::::::b           a::::ad:::::::ddddd:::::d 
g:::::g     g:::::g    aaaaaaa:::::a s:::::s  ssssss       b:::::b    b::::::b    aaaaaaa:::::ad::::::d    d:::::d 
g:::::g     g:::::g  aa::::::::::::a   s::::::s            b:::::b     b:::::b  aa::::::::::::ad:::::d     d:::::d 
g:::::g     g:::::g a::::aaaa::::::a      s::::::s         b:::::b     b:::::b a::::aaaa::::::ad:::::d     d:::::d 
g::::::g    g:::::ga::::a    a:::::assssss   s:::::s       b:::::b     b:::::ba::::a    a:::::ad:::::d     d:::::d 
g:::::::ggggg:::::ga::::a    a:::::as:::::ssss::::::s      b:::::bbbbbb::::::ba::::a    a:::::ad::::::ddddd::::::dd
 g::::::::::::::::ga:::::aaaa::::::as::::::::::::::s       b::::::::::::::::b a:::::aaaa::::::a d:::::::::::::::::d
  gg::::::::::::::g a::::::::::aa:::as:::::::::::ss        b:::::::::::::::b   a::::::::::aa:::a d:::::::::ddd::::d
    gggggggg::::::g  aaaaaaaaaa  aaaa sssssssssss          bbbbbbbbbbbbbbbb     aaaaaaaaaa  aaaa  ddddddddd   ddddd
            g:::::g                                                                                                
gggggg      g:::::g                                                                                                
g:::::gg   gg:::::g                                                                                                
 g::::::ggg:::::::g                                                                                                
  gg:::::::::::::g                                                                                                 
    ggg::::::ggg                                                                                                   
       gggggg                                                                                                      
 */

/**
 * @title GasliteDrop
 * @notice Turbo gas optimized bulk transfers of ERC20, ERC721, and ETH
 * @author Harrison (@PopPunkOnChain)
 * @author Gaslite (@GasliteGG)
 * @author Pop Punk LLC (@PopPunkLLC)
 */
contract GasliteDrop {

    /**
     * @notice Airdrop ERC721 tokens to a list of addresses
     * @param _nft The address of the ERC721 contract
     * @param _addresses The addresses to airdrop to
     * @param _tokenIds The tokenIds to airdrop
     */
    function airdropERC721(
        address _nft, 
        address[] calldata _addresses, 
        uint256[] calldata _tokenIds
    ) external payable {
        assembly {
            // Check that the number of addresses matches the number of tokenIds
            if iszero(eq(_tokenIds.length, _addresses.length)) {
                revert(0, 0)
            }
            // transferFrom(address from, address to, uint256 tokenId)
            mstore(0x00, hex"23b872dd")
            // from address
            mstore(0x04, caller())

            // end of array
            let end := add(_addresses.offset, shl(5, _addresses.length))
            // diff = _addresses.offset - _tokenIds.offset
            let diff := sub(_addresses.offset, _tokenIds.offset)

            // Loop through the addresses
            for { let addressOffset := _addresses.offset } 1 {} {
                // to address
                mstore(0x24, calldataload(addressOffset))
                // tokenId
                mstore(0x44, calldataload(sub(addressOffset, diff)))
                // transfer the token
                if iszero(call(gas(), _nft, 0, 0x00, 0x64, 0, 0)){
                    revert(0, 0)
                }
                // increment the address offset
                addressOffset := add(addressOffset, 0x20)
                // if addressOffset >= end, break
                if iszero(lt(addressOffset, end)) { break }
            }
        }
    }

    /**
     * @notice Airdrop ERC20 tokens to a list of addresses
     * @param _token The address of the ERC20 contract
     * @param _addresses The addresses to airdrop to
     * @param _amounts The amounts to airdrop
     * @param _totalAmount The total amount to airdrop
     */
    function airdropERC20(
        address _token,
        address[] calldata _addresses,
        uint256[] calldata _amounts,
        uint256 _totalAmount
    ) external payable {
        assembly {
            // Check that the number of addresses matches the number of amounts
            if iszero(eq(_amounts.length, _addresses.length)) {
                revert(0, 0)
            }

            // transferFrom(address from, address to, uint256 amount)
            mstore(0x00, hex"23b872dd")
            // from address
            mstore(0x04, caller())
            // to address (this contract)
            mstore(0x24, address())
            // total amount
            mstore(0x44, _totalAmount)

            // transfer total amount to this contract
            if iszero(call(gas(), _token, 0, 0x00, 0x64, 0, 0)){
                revert(0, 0)
            }

            // transfer(address to, uint256 value)
            mstore(0x00, hex"a9059cbb")

            // end of array
            let end := add(_addresses.offset, shl(5, _addresses.length))
            // diff = _addresses.offset - _amounts.offset
            let diff := sub(_addresses.offset, _amounts.offset)

            // Loop through the addresses
            for { let addressOffset := _addresses.offset } 1 {} {
                // to address
                mstore(0x04, calldataload(addressOffset))
                // amount
                mstore(0x24, calldataload(sub(addressOffset, diff)))
                // transfer the tokens
                if iszero(call(gas(), _token, 0, 0x00, 0x64, 0, 0)){
                    revert(0, 0)
                }
                // increment the address offset
                addressOffset := add(addressOffset, 0x20)
                // if addressOffset >= end, break
                if iszero(lt(addressOffset, end)) { break }
            }
        }
    }

    /**
     * @notice Airdrop ETH to a list of addresses
     * @param _addresses The addresses to airdrop to
     * @param _amounts The amounts to airdrop
     */
    function airdropETH(
        address[] calldata _addresses,
        uint256[] calldata _amounts
    ) external payable {
        assembly {
            // Check that the number of addresses matches the number of amounts
            if iszero(eq(_amounts.length, _addresses.length)) {
                revert(0, 0)
            }

            // iterator
            let i := _addresses.offset
            // end of array
            let end := add(i, shl(5, _addresses.length))
            // diff = _addresses.offset - _amounts.offset
            let diff := sub(_amounts.offset, _addresses.offset)

            // Loop through the addresses
            for {} 1 {} {
                // transfer the ETH
                if iszero(
                    call(gas(), calldataload(i), calldataload(add(i, diff)), 0x00, 0x00, 0x00, 0x00)
                ) { revert(0x00, 0x00) }
                // increment the iterator
                i := add(i, 0x20)
                // if i >= end, break
                if eq(end, i) { break }
            }
        }
    }
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "@solady/=lib/solady/src/",
    "@openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "solady/=lib/solady/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 9999999
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"uint256","name":"_totalAmount","type":"uint256"}],"name":"airdropERC20","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_nft","type":"address"},{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenIds","type":"uint256[]"}],"name":"airdropERC721","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"airdropETH","outputs":[],"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b50610400806100206000396000f3fe6080604052600436106100345760003560e01c80631d5659fb1461003957806382947abe1461004e578063c1a3800614610061575b600080fd5b61004c610047366004610254565b610074565b005b61004c61005c3660046102d5565b6100e7565b61004c61006f36600461035e565b61019b565b82811461008057600080fd5b7f23b872dd00000000000000000000000000000000000000000000000000000000600052336004528260051b8401828503855b80356024528181033560445260008060646000808c5af16100d357600080fd5b6020018281106100b3575050505050505050565b8382146100f357600080fd5b7f23b872dd0000000000000000000000000000000000000000000000000000000060005233600452306024528060445260008060646000808a5af161013757600080fd5b7fa9059cbb000000000000000000000000000000000000000000000000000000006000528360051b8501838603865b80356004528181033560245260008060646000808d5af161018657600080fd5b60200182811061016657505050505050505050565b8281146101a757600080fd5b838360051b81018584035b6000806000808487013587355af16101c957600080fd5b6020830192508282036101b25750505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461020357600080fd5b919050565b60008083601f84011261021a57600080fd5b50813567ffffffffffffffff81111561023257600080fd5b6020830191508360208260051b850101111561024d57600080fd5b9250929050565b60008060008060006060868803121561026c57600080fd5b610275866101df565b9450602086013567ffffffffffffffff8082111561029257600080fd5b61029e89838a01610208565b909650945060408801359150808211156102b757600080fd5b506102c488828901610208565b969995985093965092949392505050565b600080600080600080608087890312156102ee57600080fd5b6102f7876101df565b9550602087013567ffffffffffffffff8082111561031457600080fd5b6103208a838b01610208565b9097509550604089013591508082111561033957600080fd5b5061034689828a01610208565b979a9699509497949695606090950135949350505050565b6000806000806040858703121561037457600080fd5b843567ffffffffffffffff8082111561038c57600080fd5b61039888838901610208565b909650945060208701359150808211156103b157600080fd5b506103be87828801610208565b9598949750955050505056fea2646970667358221220792dccaaf3120aecf3c06a58bf4e368e4bc40ceb2a47dc5d8a9ae6936fadc6d164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100345760003560e01c80631d5659fb1461003957806382947abe1461004e578063c1a3800614610061575b600080fd5b61004c610047366004610254565b610074565b005b61004c61005c3660046102d5565b6100e7565b61004c61006f36600461035e565b61019b565b82811461008057600080fd5b7f23b872dd00000000000000000000000000000000000000000000000000000000600052336004528260051b8401828503855b80356024528181033560445260008060646000808c5af16100d357600080fd5b6020018281106100b3575050505050505050565b8382146100f357600080fd5b7f23b872dd0000000000000000000000000000000000000000000000000000000060005233600452306024528060445260008060646000808a5af161013757600080fd5b7fa9059cbb000000000000000000000000000000000000000000000000000000006000528360051b8501838603865b80356004528181033560245260008060646000808d5af161018657600080fd5b60200182811061016657505050505050505050565b8281146101a757600080fd5b838360051b81018584035b6000806000808487013587355af16101c957600080fd5b6020830192508282036101b25750505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461020357600080fd5b919050565b60008083601f84011261021a57600080fd5b50813567ffffffffffffffff81111561023257600080fd5b6020830191508360208260051b850101111561024d57600080fd5b9250929050565b60008060008060006060868803121561026c57600080fd5b610275866101df565b9450602086013567ffffffffffffffff8082111561029257600080fd5b61029e89838a01610208565b909650945060408801359150808211156102b757600080fd5b506102c488828901610208565b969995985093965092949392505050565b600080600080600080608087890312156102ee57600080fd5b6102f7876101df565b9550602087013567ffffffffffffffff8082111561031457600080fd5b6103208a838b01610208565b9097509550604089013591508082111561033957600080fd5b5061034689828a01610208565b979a9699509497949695606090950135949350505050565b6000806000806040858703121561037457600080fd5b843567ffffffffffffffff8082111561038c57600080fd5b61039888838901610208565b909650945060208701359150808211156103b157600080fd5b506103be87828801610208565b9598949750955050505056fea2646970667358221220792dccaaf3120aecf3c06a58bf4e368e4bc40ceb2a47dc5d8a9ae6936fadc6d164736f6c63430008130033

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.