ETH Price: $2,656.71 (+1.99%)

Contract

0x090D4613473dEE047c3f2706764f49E0821D256e
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Claim218035972025-02-08 18:31:1121 hrs ago1739039471IN
Uniswap: Token Distributor
0 ETH0.000149041.78987772
Claim218010672025-02-08 10:02:1129 hrs ago1739008931IN
Uniswap: Token Distributor
0 ETH0.00011861.42354089
Claim217960882025-02-07 17:21:3546 hrs ago1738948895IN
Uniswap: Token Distributor
0 ETH0.000178132.13836498
Claim217954692025-02-07 15:16:472 days ago1738941407IN
Uniswap: Token Distributor
0 ETH0.000313113.75681315
Claim217945932025-02-07 12:20:592 days ago1738930859IN
Uniswap: Token Distributor
0 ETH0.000109431.31314831
Claim217945062025-02-07 12:03:352 days ago1738929815IN
Uniswap: Token Distributor
0 ETH0.000116751.40048483
Claim217937022025-02-07 9:21:232 days ago1738920083IN
Uniswap: Token Distributor
0 ETH0.00011421.36995742
Claim217885902025-02-06 16:14:352 days ago1738858475IN
Uniswap: Token Distributor
0 ETH0.000482855.79562422
Claim217860592025-02-06 7:46:473 days ago1738828007IN
Uniswap: Token Distributor
0 ETH0.000121251.45476154
Claim217824992025-02-05 19:51:233 days ago1738785083IN
Uniswap: Token Distributor
0 ETH0.00012231.46667957
Claim217725812025-02-04 10:36:475 days ago1738665407IN
Uniswap: Token Distributor
0 ETH0.000185942.22979817
Claim217695332025-02-04 0:22:235 days ago1738628543IN
Uniswap: Token Distributor
0 ETH0.000355614.26823115
Claim217681842025-02-03 19:51:115 days ago1738612271IN
Uniswap: Token Distributor
0 ETH0.0021673526.00397165
Claim217673382025-02-03 17:01:235 days ago1738602083IN
Uniswap: Token Distributor
0 ETH0.0015656618.80024889
Claim217670982025-02-03 16:13:115 days ago1738599191IN
Uniswap: Token Distributor
0 ETH0.002791733.47890952
Claim217546382025-02-01 22:25:237 days ago1738448723IN
Uniswap: Token Distributor
0 ETH0.000302923.63488596
Claim217535212025-02-01 18:40:237 days ago1738435223IN
Uniswap: Token Distributor
0 ETH0.000255233.06306073
Claim217364332025-01-30 9:22:5910 days ago1738228979IN
Uniswap: Token Distributor
0 ETH0.000165041.98101502
Claim217220802025-01-28 9:18:4712 days ago1738055927IN
Uniswap: Token Distributor
0 ETH0.000279373.3538262
Claim217190082025-01-27 23:00:3512 days ago1738018835IN
Uniswap: Token Distributor
0 ETH0.000419015.02736457
Claim217092932025-01-26 14:29:4714 days ago1737901787IN
Uniswap: Token Distributor
0 ETH0.000435345.22459625
Claim217039962025-01-25 20:44:5914 days ago1737837899IN
Uniswap: Token Distributor
0 ETH0.000448995.38313911
Claim216947872025-01-24 13:53:4716 days ago1737726827IN
Uniswap: Token Distributor
0 ETH0.0017099320.5208377
Claim216911242025-01-24 1:38:2316 days ago1737682703IN
Uniswap: Token Distributor
0 ETH0.000474155.68761398
Claim216907272025-01-24 0:18:1116 days ago1737677891IN
Uniswap: Token Distributor
0 ETH0.000537096.44080177
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
218035972025-02-08 18:31:1121 hrs ago1739039471
0x090D4613...0821D256e
0 ETH
218010672025-02-08 10:02:1129 hrs ago1739008931
0x090D4613...0821D256e
0 ETH
217960882025-02-07 17:21:3546 hrs ago1738948895
0x090D4613...0821D256e
0 ETH
217954692025-02-07 15:16:472 days ago1738941407
0x090D4613...0821D256e
0 ETH
217945932025-02-07 12:20:592 days ago1738930859
0x090D4613...0821D256e
0 ETH
217945062025-02-07 12:03:352 days ago1738929815
0x090D4613...0821D256e
0 ETH
217937022025-02-07 9:21:232 days ago1738920083
0x090D4613...0821D256e
0 ETH
217885902025-02-06 16:14:352 days ago1738858475
0x090D4613...0821D256e
0 ETH
217860592025-02-06 7:46:473 days ago1738828007
0x090D4613...0821D256e
0 ETH
217824992025-02-05 19:51:233 days ago1738785083
0x090D4613...0821D256e
0 ETH
217725812025-02-04 10:36:475 days ago1738665407
0x090D4613...0821D256e
0 ETH
217695332025-02-04 0:22:235 days ago1738628543
0x090D4613...0821D256e
0 ETH
217681842025-02-03 19:51:115 days ago1738612271
0x090D4613...0821D256e
0 ETH
217673382025-02-03 17:01:235 days ago1738602083
0x090D4613...0821D256e
0 ETH
217670982025-02-03 16:13:115 days ago1738599191
0x090D4613...0821D256e
0 ETH
217546382025-02-01 22:25:237 days ago1738448723
0x090D4613...0821D256e
0 ETH
217535212025-02-01 18:40:237 days ago1738435223
0x090D4613...0821D256e
0 ETH
217364332025-01-30 9:22:5910 days ago1738228979
0x090D4613...0821D256e
0 ETH
217220802025-01-28 9:18:4712 days ago1738055927
0x090D4613...0821D256e
0 ETH
217190082025-01-27 23:00:3512 days ago1738018835
0x090D4613...0821D256e
0 ETH
217092932025-01-26 14:29:4714 days ago1737901787
0x090D4613...0821D256e
0 ETH
217039962025-01-25 20:44:5914 days ago1737837899
0x090D4613...0821D256e
0 ETH
216947872025-01-24 13:53:4716 days ago1737726827
0x090D4613...0821D256e
0 ETH
216911242025-01-24 1:38:2316 days ago1737682703
0x090D4613...0821D256e
0 ETH
216907272025-01-24 0:18:1116 days ago1737677891
0x090D4613...0821D256e
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MerkleDistributor

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-09-16
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity =0.6.11;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev These functions deal with verification of Merkle trees (hash trees),
 */
library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) {
        bytes32 computedHash = leaf;

        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];

            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
            }
        }

        // Check if the computed hash (root) is equal to the provided root
        return computedHash == root;
    }
}

// Allows anyone to claim a token if they exist in a merkle root.
interface IMerkleDistributor {
    // Returns the address of the token distributed by this contract.
    function token() external view returns (address);
    // Returns the merkle root of the merkle tree containing account balances available to claim.
    function merkleRoot() external view returns (bytes32);
    // Returns true if the index has been marked claimed.
    function isClaimed(uint256 index) external view returns (bool);
    // Claim the given amount of the token to the given address. Reverts if the inputs are invalid.
    function claim(uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof) external;

    // This event is triggered whenever a call to #claim succeeds.
    event Claimed(uint256 index, address account, uint256 amount);
}

contract MerkleDistributor is IMerkleDistributor {
    address public immutable override token;
    bytes32 public immutable override merkleRoot;

    // This is a packed array of booleans.
    mapping(uint256 => uint256) private claimedBitMap;

    constructor(address token_, bytes32 merkleRoot_) public {
        token = token_;
        merkleRoot = merkleRoot_;
    }

    function isClaimed(uint256 index) public view override returns (bool) {
        uint256 claimedWordIndex = index / 256;
        uint256 claimedBitIndex = index % 256;
        uint256 claimedWord = claimedBitMap[claimedWordIndex];
        uint256 mask = (1 << claimedBitIndex);
        return claimedWord & mask == mask;
    }

    function _setClaimed(uint256 index) private {
        uint256 claimedWordIndex = index / 256;
        uint256 claimedBitIndex = index % 256;
        claimedBitMap[claimedWordIndex] = claimedBitMap[claimedWordIndex] | (1 << claimedBitIndex);
    }

    function claim(uint256 index, address account, uint256 amount, bytes32[] calldata merkleProof) external override {
        require(!isClaimed(index), 'MerkleDistributor: Drop already claimed.');

        // Verify the merkle proof.
        bytes32 node = keccak256(abi.encodePacked(index, account, amount));
        require(MerkleProof.verify(merkleProof, merkleRoot, node), 'MerkleDistributor: Invalid proof.');

        // Mark it claimed and send the token.
        _setClaimed(index);
        require(IERC20(token).transfer(account, amount), 'MerkleDistributor: Transfer failed.');

        emit Claimed(index, account, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60c060405234801561001057600080fd5b506040516106173803806106178339818101604052604081101561003357600080fd5b508051602090910151606082901b6001600160601b03191660805260a08190526001600160a01b03909116906105916100866000398061020b52806103b352508061027c52806103fd52506105916000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e7ba6ef146100515780632eb4a7ab146100df5780639e34070f146100f9578063fc0c546a1461012a575b600080fd5b6100dd6004803603608081101561006757600080fd5b8135916001600160a01b03602082013516916040820135919081019060808101606082013564010000000081111561009e57600080fd5b8201836020820111156100b057600080fd5b803590602001918460208302840111640100000000831117156100d257600080fd5b50909250905061014e565b005b6100e76103b1565b60408051918252519081900360200190f35b6101166004803603602081101561010f57600080fd5b50356103d5565b604080519115158252519081900360200190f35b6101326103fb565b604080516001600160a01b039092168252519081900360200190f35b610157856103d5565b156101935760405162461bcd60e51b81526004018080602001828103825260288152602001806104f06028913960400191505060405180910390fd5b6040805160208082018890526bffffffffffffffffffffffff19606088901b1682840152605480830187905283518084039091018152607483018085528151918301919091206094928602808501840190955285825293610236939192879287928392909101908490808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925085915061041f9050565b6102715760405162461bcd60e51b81526004018080602001828103825260218152602001806105186021913960400191505060405180910390fd5b61027a866104c8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb86866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102fa57600080fd5b505af115801561030e573d6000803e3d6000fd5b505050506040513d602081101561032457600080fd5b50516103615760405162461bcd60e51b81526004018080602001828103825260238152602001806105396023913960400191505060405180910390fd5b604080518781526001600160a01b038716602082015280820186905290517f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269181900360600190a1505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6101008104600090815260208190526040902054600160ff9092169190911b9081161490565b7f000000000000000000000000000000000000000000000000000000000000000081565b600081815b85518110156104bd57600086828151811061043b57fe5b6020026020010151905080831161048257828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506104b4565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610424565b509092149392505050565b610100810460009081526020819052604090208054600160ff9093169290921b909117905556fe4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662e4d65726b6c654469737472696275746f723a205472616e73666572206661696c65642ea2646970667358221220600693065ba46901450139c046c9982b4c8dac6f5389b2587f164bb4df4e528c64736f6c634300060b00330000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984c8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b65dbdeb5

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e7ba6ef146100515780632eb4a7ab146100df5780639e34070f146100f9578063fc0c546a1461012a575b600080fd5b6100dd6004803603608081101561006757600080fd5b8135916001600160a01b03602082013516916040820135919081019060808101606082013564010000000081111561009e57600080fd5b8201836020820111156100b057600080fd5b803590602001918460208302840111640100000000831117156100d257600080fd5b50909250905061014e565b005b6100e76103b1565b60408051918252519081900360200190f35b6101166004803603602081101561010f57600080fd5b50356103d5565b604080519115158252519081900360200190f35b6101326103fb565b604080516001600160a01b039092168252519081900360200190f35b610157856103d5565b156101935760405162461bcd60e51b81526004018080602001828103825260288152602001806104f06028913960400191505060405180910390fd5b6040805160208082018890526bffffffffffffffffffffffff19606088901b1682840152605480830187905283518084039091018152607483018085528151918301919091206094928602808501840190955285825293610236939192879287928392909101908490808284376000920191909152507fc8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b65dbdeb5925085915061041f9050565b6102715760405162461bcd60e51b81526004018080602001828103825260218152602001806105186021913960400191505060405180910390fd5b61027a866104c8565b7f0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f9846001600160a01b031663a9059cbb86866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102fa57600080fd5b505af115801561030e573d6000803e3d6000fd5b505050506040513d602081101561032457600080fd5b50516103615760405162461bcd60e51b81526004018080602001828103825260238152602001806105396023913960400191505060405180910390fd5b604080518781526001600160a01b038716602082015280820186905290517f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269181900360600190a1505050505050565b7fc8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b65dbdeb581565b6101008104600090815260208190526040902054600160ff9092169190911b9081161490565b7f0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f98481565b600081815b85518110156104bd57600086828151811061043b57fe5b6020026020010151905080831161048257828160405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092506104b4565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610424565b509092149392505050565b610100810460009081526020819052604090208054600160ff9093169290921b909117905556fe4d65726b6c654469737472696275746f723a2044726f7020616c726561647920636c61696d65642e4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f662e4d65726b6c654469737472696275746f723a205472616e73666572206661696c65642ea2646970667358221220600693065ba46901450139c046c9982b4c8dac6f5389b2587f164bb4df4e528c64736f6c634300060b0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984c8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b65dbdeb5

-----Decoded View---------------
Arg [0] : token_ (address): 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
Arg [1] : merkleRoot_ (bytes32): 0xc8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b65dbdeb5

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001f9840a85d5af5bf1d1762f925bdaddc4201f984
Arg [1] : c8500f8e2fcf3c9a32880e1b973fb28acc88be35787a8abcf9981b2b65dbdeb5


Deployed Bytecode Sourcemap

4899:1639:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5885:650;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5885:650:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5885:650:0;;-1:-1:-1;5885:650:0;-1:-1:-1;5885:650:0;:::i;:::-;;5001:44;;;:::i;:::-;;;;;;;;;;;;;;;;5288:331;;;;;;;;;;;;;;;;-1:-1:-1;5288:331:0;;:::i;:::-;;;;;;;;;;;;;;;;;;4955:39;;;:::i;:::-;;;;-1:-1:-1;;;;;4955:39:0;;;;;;;;;;;;;;5885:650;6018:16;6028:5;6018:9;:16::i;:::-;6017:17;6009:70;;;;-1:-1:-1;;;6009:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6154:40;;;;;;;;;;-1:-1:-1;;6154:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6144:51;;;;;;;;;6214:49;;;;;;;;;;;;;;;6144:51;6214:49;;6154:40;;6233:11;;;;;;6214:49;;;;6233:11;;6214:49;6233:11;6214:49;;;;;;;;;-1:-1:-1;6246:10:0;;-1:-1:-1;6258:4:0;;-1:-1:-1;6214:18:0;;-1:-1:-1;6214:49:0:i;:::-;6206:95;;;;-1:-1:-1;;;6206:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6362:18;6374:5;6362:11;:18::i;:::-;6406:5;-1:-1:-1;;;;;6399:22:0;;6422:7;6431:6;6399:39;;;;;;;;;;;;;-1:-1:-1;;;;;6399:39:0;-1:-1:-1;;;;;6399:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6399:39:0;6391:87;;;;-1:-1:-1;;;6391:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6496:31;;;;;;-1:-1:-1;;;;;6496:31:0;;;;;;;;;;;;;;;;;;;;;;;5885:650;;;;;;:::o;5001:44::-;;;:::o;5288:331::-;5404:3;5396:11;;5352:4;5488:31;;;;;;;;;;;5546:1;5444:11;;;;5546:20;;;;5585:18;;;:26;;5288:331::o;4955:39::-;;;:::o;3230:796::-;3321:4;3361;3321;3378:525;3402:5;:12;3398:1;:16;3378:525;;;3436:20;3459:5;3465:1;3459:8;;;;;;;;;;;;;;3436:31;;3504:12;3488;:28;3484:408;;3658:12;3672;3641:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3631:55;;;;;;3616:70;;3484:408;;;3848:12;3862;3831:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3821:55;;;;;;3806:70;;3484:408;-1:-1:-1;3416:3:0;;3378:525;;;-1:-1:-1;3998:20:0;;;;3230:796;-1:-1:-1;;;3230:796:0:o;5627:250::-;5717:3;5709:11;;5682:24;5813:31;;;;;;;;;;;;5848:1;5757:11;;;;5848:20;;;;5813:56;;;5779:90;;5627:250::o

Swarm Source

ipfs://600693065ba46901450139c046c9982b4c8dac6f5389b2587f164bb4df4e528c

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

The distribution address for UNI tokens by Uniswap.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.