ETH Price: $3,179.51 (+1.47%)
Gas: 5 Gwei

Contract

0x1a0ad011913A150f69f6A19DF447A0CfD9551054
 
Transaction Hash
Method
Block
From
To
0x4815914b420bb44ae0fb5476dd01926664a488af7df75e4d6f9ac81003dd7dc3 Deposit Transact...(pending)2024-07-14 0:42:031 min ago1720917723IN
Zora: Bridge
0 ETH(Pending)(Pending)
0x1fe002eef1b620d86758bfed4175c2a4fe666cf83197f52d463786ab14c3f433 Deposit Transact...(pending)2024-07-14 0:40:073 mins ago1720917607IN
Zora: Bridge
0.01 ETH(Pending)(Pending)
0x239b4898e51d9c2910dcd2ce22f3b69e8f7613609235579b2c45c3548a394362 Deposit Transact...(pending)2024-07-14 0:35:317 mins ago1720917331IN
Zora: Bridge
0.00001 ETH(Pending)(Pending)
0x13060a662fcc450690fda4e804a05597815043f8f417357ac5f3aeeba39b943a Deposit Transact...(pending)2024-07-14 0:28:4014 mins ago1720916920IN
Zora: Bridge
0.001 ETH(Pending)(Pending)
0xc4ef952eee4fdcd1c25e12ab1c76f9ba545c8ffd21ed320242c27b653940654d Deposit Transact...(pending)2024-07-13 23:51:0352 mins ago1720914663IN
Zora: Bridge
0.001 ETH(Pending)(Pending)
0x3ba60f7447932d079a783842765c9da9fc50f8d4c89e2f42105604f7473ae459 Deposit Transact...(pending)2024-07-13 23:50:3352 mins ago1720914633IN
Zora: Bridge
0.0004 ETH(Pending)(Pending)
0xd9a44b24ce970a2a4da3accc0574cf05c40cf3472028577b25b160e8cc6626d2 Deposit Transact...(pending)2024-07-13 23:45:1657 mins ago1720914316IN
Zora: Bridge
0.0001 ETH(Pending)(Pending)
0x5aee65f1e3af84ea1a2396ce08f3ed9b1c7067019cbdbd5779b01dda3ac2b4a2 Deposit Transact...(pending)2024-07-13 23:38:041 hr ago1720913884IN
Zora: Bridge
0.0009 ETH(Pending)(Pending)
0x7cf435759d079c86e683e29e54b5ca6a8249aecca547d31cd039e4dfac311f77 Deposit Transact...(pending)2024-07-13 23:20:071 hr ago1720912807IN
Zora: Bridge
0.00098 ETH(Pending)(Pending)
0xae4c596b5bcf5cb26338bb60cbb82453e994401df3d74732f7fb41884a7dcd08 Deposit Transact...(pending)2024-07-13 23:13:171 hr ago1720912397IN
Zora: Bridge
0 ETH(Pending)(Pending)
0xf9f19b0744051f042a83134d4b97906c9ecedbaa9b8d6208ee1cc3b8975eb113 Deposit Transact...(pending)2024-07-13 19:31:415 hrs ago1720899101IN
Zora: Bridge
0.00001 ETH(Pending)(Pending)
0x9a4853186293cbdfddb8e2c09354d9d0ceb2635990371e935de45253f39cc4c3 Deposit Transact...(pending)2024-07-13 13:10:1911 hrs ago1720876219IN
Zora: Bridge
0 ETH(Pending)(Pending)
0xdbf6ff3d0fa66dffc6d96bcb5933a5de5d368b2bfe7d3d4b651e2297df78d826 Deposit Transact...(pending)2024-07-13 10:58:4613 hrs ago1720868326IN
Zora: Bridge
0.004 ETH(Pending)(Pending)
0xedbce0b5856e2f136253e8e0d40d480067288b68a1ab86bed2489c5d19171a62 Deposit Transact...(pending)2024-07-13 5:55:3718 hrs ago1720850137IN
Zora: Bridge
0.02 ETH(Pending)(Pending)
0x824015358e9f63294012f24101dd2ecdc132f79741908be15a23de0f0ad3120b Deposit Transact...(pending)2024-07-13 5:26:3319 hrs ago1720848393IN
Zora: Bridge
0 ETH(Pending)(Pending)
0xaffd106fd77e9dd191d2bc0d254419fd87cf302397af0b3ad1fb89c4402547f3 Deposit Transact...(pending)2024-07-13 5:26:3319 hrs ago1720848393IN
Zora: Bridge
0 ETH(Pending)(Pending)
0x14131bdf5e41dcf1bbd78fa29302297888c5c08f3e5c2a0f4831d57a815157f0 Deposit Transact...(pending)2024-07-12 20:25:0828 hrs ago1720815908IN
Zora: Bridge
0.00001 ETH(Pending)(Pending)
0xb5763f2b94bc1a95d578d9388b65422a079c6497045a4e4b542ba28c40b64dd5 Deposit Transact...(pending)2024-07-12 12:44:1635 hrs ago1720788256IN
Zora: Bridge
0.002 ETH(Pending)(Pending)
0xe3b08bf626c75cf64163db1e89db0b71c7857b681d4dc4a458c87e2f2c8eb96d Prove Withdrawal...(pending)2024-07-12 2:36:0846 hrs ago1720751768IN
Zora: Bridge
0 ETH(Pending)(Pending)
0x5e9c9e4ae8511b4f991531983cd16f5b76ac71919abaa2fe521dfbfe752b9bd8 Transfer(pending)2024-07-11 19:27:242 days ago1720726044IN
Zora: Bridge
0.001 ETH(Pending)(Pending)
0x1069ffb8818aa4c584893a34b7947e101f27600fa93bfd7c6b7ce4c9a2fda600 Prove Withdrawal...(pending)2024-07-11 19:16:192 days ago1720725379IN
Zora: Bridge
0 ETH(Pending)(Pending)
0x251e44df018002ec83b5843718f72354235e2e2123ab855a9a060792116c034c Prove Withdrawal...(pending)2024-07-11 19:16:192 days ago1720725379IN
Zora: Bridge
0 ETH(Pending)(Pending)
0xd433b9eb22608f08fd8e6874d6fced39d6394533e074fb5b9d73db3374a2fade Prove Withdrawal...(pending)2024-07-11 19:16:192 days ago1720725379IN
Zora: Bridge
0 ETH(Pending)(Pending)
0xfde99d69199fb22d0cd5ed50913c00ed34881aefb7c05646f416feed4f2bc37b Deposit Transact...(pending)2024-07-11 19:16:192 days ago1720725379IN
Zora: Bridge
0.00001 ETH(Pending)(Pending)
0x0940d3b61b194cfec50703382231b87c919e026bde10e8d1b5372dd476b09fec Deposit Transact...(pending)2024-07-11 9:43:582 days ago1720691038IN
Zora: Bridge
0.00001 ETH(Pending)(Pending)
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
203006752024-07-13 22:49:591 hr ago1720910999
Zora: Bridge
0.001 ETH
203006142024-07-13 22:37:472 hrs ago1720910267
Zora: Bridge
0.000399 ETH
203005432024-07-13 22:23:352 hrs ago1720909415
Zora: Bridge
0.01 ETH
203003242024-07-13 21:39:113 hrs ago1720906751
Zora: Bridge
0.279 ETH
203002782024-07-13 21:29:593 hrs ago1720906199
Zora: Bridge
0.04 ETH
203002682024-07-13 21:27:593 hrs ago1720906079
Zora: Bridge
0.000993 ETH
203000922024-07-13 20:52:473 hrs ago1720903967
Zora: Bridge
0.01 ETH
202999642024-07-13 20:27:114 hrs ago1720902431
Zora: Bridge
0.00136836 ETH
202997762024-07-13 19:49:354 hrs ago1720900175
Zora: Bridge
0.0014895 ETH
202995882024-07-13 19:11:595 hrs ago1720897919
Zora: Bridge
0.002979 ETH
202995472024-07-13 19:03:475 hrs ago1720897427
Zora: Bridge
0.167 ETH
202994852024-07-13 18:51:235 hrs ago1720896683
Zora: Bridge
0.002 ETH
202993172024-07-13 18:17:476 hrs ago1720894667
Zora: Bridge
0.0008612 ETH
202992232024-07-13 17:58:236 hrs ago1720893503
Zora: Bridge
0.00049875 ETH
202991292024-07-13 17:39:357 hrs ago1720892375
Zora: Bridge
0.0016 ETH
202990382024-07-13 17:21:117 hrs ago1720891271
Zora: Bridge
0.0032 ETH
202988492024-07-13 16:43:237 hrs ago1720889003
Zora: Bridge
0.00500612 ETH
202986462024-07-13 16:02:478 hrs ago1720886567
Zora: Bridge
0.00345069 ETH
202985092024-07-13 15:35:239 hrs ago1720884923
Zora: Bridge
0.0028797 ETH
202984862024-07-13 15:30:479 hrs ago1720884647
Zora: Bridge
0.000993 ETH
202984582024-07-13 15:25:119 hrs ago1720884311
Zora: Bridge
0.004965 ETH
202984092024-07-13 15:15:119 hrs ago1720883711
Zora: Bridge
0.03 ETH
202981022024-07-13 14:12:5910 hrs ago1720879979
Zora: Bridge
0.0015 ETH
202979262024-07-13 13:36:5911 hrs ago1720877819
Zora: Bridge
0.04 ETH
202977162024-07-13 12:54:2311 hrs ago1720875263
Zora: Bridge
0.01 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xeFDd8B58...A5871e0d7
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Proxy

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 1 : Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

/**
 * @title Proxy
 * @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or
 *         if the caller is address(0), meaning that the call originated from an off-chain
 *         simulation.
 */
contract Proxy {
    /**
     * @notice The storage slot that holds the address of the implementation.
     *         bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
     */
    bytes32 internal constant IMPLEMENTATION_KEY =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    /**
     * @notice The storage slot that holds the address of the owner.
     *         bytes32(uint256(keccak256('eip1967.proxy.admin')) - 1)
     */
    bytes32 internal constant OWNER_KEY =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103;

    /**
     * @notice An event that is emitted each time the implementation is changed. This event is part
     *         of the EIP-1967 specification.
     *
     * @param implementation The address of the implementation contract
     */
    event Upgraded(address indexed implementation);

    /**
     * @notice An event that is emitted each time the owner is upgraded. This event is part of the
     *         EIP-1967 specification.
     *
     * @param previousAdmin The previous owner of the contract
     * @param newAdmin      The new owner of the contract
     */
    event AdminChanged(address previousAdmin, address newAdmin);

    /**
     * @notice A modifier that reverts if not called by the owner or by address(0) to allow
     *         eth_call to interact with this proxy without needing to use low-level storage
     *         inspection. We assume that nobody is able to trigger calls from address(0) during
     *         normal EVM execution.
     */
    modifier proxyCallIfNotAdmin() {
        if (msg.sender == _getAdmin() || msg.sender == address(0)) {
            _;
        } else {
            // This WILL halt the call frame on completion.
            _doProxyCall();
        }
    }

    /**
     * @notice Sets the initial admin during contract deployment. Admin address is stored at the
     *         EIP-1967 admin storage slot so that accidental storage collision with the
     *         implementation is not possible.
     *
     * @param _admin Address of the initial contract admin. Admin as the ability to access the
     *               transparent proxy interface.
     */
    constructor(address _admin) {
        _changeAdmin(_admin);
    }

    // slither-disable-next-line locked-ether
    receive() external payable {
        // Proxy call by default.
        _doProxyCall();
    }

    // slither-disable-next-line locked-ether
    fallback() external payable {
        // Proxy call by default.
        _doProxyCall();
    }

    /**
     * @notice Set the implementation contract address. The code at the given address will execute
     *         when this contract is called.
     *
     * @param _implementation Address of the implementation contract.
     */
    function upgradeTo(address _implementation) public virtual proxyCallIfNotAdmin {
        _setImplementation(_implementation);
    }

    /**
     * @notice Set the implementation and call a function in a single transaction. Useful to ensure
     *         atomic execution of initialization-based upgrades.
     *
     * @param _implementation Address of the implementation contract.
     * @param _data           Calldata to delegatecall the new implementation with.
     */
    function upgradeToAndCall(address _implementation, bytes calldata _data)
        public
        payable
        virtual
        proxyCallIfNotAdmin
        returns (bytes memory)
    {
        _setImplementation(_implementation);
        (bool success, bytes memory returndata) = _implementation.delegatecall(_data);
        require(success, "Proxy: delegatecall to new implementation contract failed");
        return returndata;
    }

    /**
     * @notice Changes the owner of the proxy contract. Only callable by the owner.
     *
     * @param _admin New owner of the proxy contract.
     */
    function changeAdmin(address _admin) public virtual proxyCallIfNotAdmin {
        _changeAdmin(_admin);
    }

    /**
     * @notice Gets the owner of the proxy contract.
     *
     * @return Owner address.
     */
    function admin() public virtual proxyCallIfNotAdmin returns (address) {
        return _getAdmin();
    }

    /**
     * @notice Queries the implementation address.
     *
     * @return Implementation address.
     */
    function implementation() public virtual proxyCallIfNotAdmin returns (address) {
        return _getImplementation();
    }

    /**
     * @notice Sets the implementation address.
     *
     * @param _implementation New implementation address.
     */
    function _setImplementation(address _implementation) internal {
        assembly {
            sstore(IMPLEMENTATION_KEY, _implementation)
        }
        emit Upgraded(_implementation);
    }

    /**
     * @notice Changes the owner of the proxy contract.
     *
     * @param _admin New owner of the proxy contract.
     */
    function _changeAdmin(address _admin) internal {
        address previous = _getAdmin();
        assembly {
            sstore(OWNER_KEY, _admin)
        }
        emit AdminChanged(previous, _admin);
    }

    /**
     * @notice Performs the proxy call via a delegatecall.
     */
    function _doProxyCall() internal {
        address impl = _getImplementation();
        require(impl != address(0), "Proxy: implementation not initialized");

        assembly {
            // Copy calldata into memory at 0x0....calldatasize.
            calldatacopy(0x0, 0x0, calldatasize())

            // Perform the delegatecall, make sure to pass all available gas.
            let success := delegatecall(gas(), impl, 0x0, calldatasize(), 0x0, 0x0)

            // Copy returndata into memory at 0x0....returndatasize. Note that this *will*
            // overwrite the calldata that we just copied into memory but that doesn't really
            // matter because we'll be returning in a second anyway.
            returndatacopy(0x0, 0x0, returndatasize())

            // Success == 0 means a revert. We'll revert too and pass the data up.
            if iszero(success) {
                revert(0x0, returndatasize())
            }

            // Otherwise we'll just return and pass the data up.
            return(0x0, returndatasize())
        }
    }

    /**
     * @notice Queries the implementation address.
     *
     * @return Implementation address.
     */
    function _getImplementation() internal view returns (address) {
        address impl;
        assembly {
            impl := sload(IMPLEMENTATION_KEY)
        }
        return impl;
    }

    /**
     * @notice Queries the owner of the proxy contract.
     *
     * @return Owner address.
     */
    function _getAdmin() internal view returns (address) {
        address owner;
        assembly {
            owner := sload(OWNER_KEY)
        }
        return owner;
    }
}

Settings
{
  "remappings": [
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/",
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "@rari-capital/=node_modules/@rari-capital/",
    "@rari-capital/solmate/=node_modules/@rari-capital/solmate/",
    "ds-test/=node_modules/ds-test/src/",
    "forge-std/=node_modules/forge-std/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_admin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x60806040526004361061005e5760003560e01c80635c60da1b116100435780635c60da1b146100be5780638f283970146100f8578063f851a440146101185761006d565b80633659cfe6146100755780634f1ef286146100955761006d565b3661006d5761006b61012d565b005b61006b61012d565b34801561008157600080fd5b5061006b6100903660046106d9565b610224565b6100a86100a33660046106f4565b610296565b6040516100b59190610777565b60405180910390f35b3480156100ca57600080fd5b506100d3610419565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b5565b34801561010457600080fd5b5061006b6101133660046106d9565b6104b0565b34801561012457600080fd5b506100d3610517565b60006101577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff8116610201576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061021e573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061027d575033155b1561028e5761028b816105a3565b50565b61028b61012d565b60606102c07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102f7575033155b1561040a57610305846105a3565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161032f9291906107ea565b600060405180830381855af49150503d806000811461036a576040519150601f19603f3d011682016040523d82523d6000602084013e61036f565b606091505b509150915081610401576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101f8565b91506104129050565b61041261012d565b9392505050565b60006104437fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061047a575033155b156104a557507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6104ad61012d565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610509575033155b1561028e5761028b8161060b565b60006105417fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610578575033155b156104a557507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106357fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106d457600080fd5b919050565b6000602082840312156106eb57600080fd5b610412826106b0565b60008060006040848603121561070957600080fd5b610712846106b0565b9250602084013567ffffffffffffffff8082111561072f57600080fd5b818601915086601f83011261074357600080fd5b81358181111561075257600080fd5b87602082850101111561076457600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b818110156107a457858101830151858201604001528201610788565b818111156107b6576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080f000a

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
Chain Token Portfolio % Price Amount Value
ETH
Ether (ETH)
99.99%$3,179.517,777.3047$24,728,011.61
OP<0.01%$3,178.770.3388$1,077.11
BASE<0.01%$3,180.120.148$470.75
BASE<0.01%<$0.000001100,000,000$43.88
BASE<0.01%$0.0046273,000$13.88
BASE<0.01%<$0.000001295,774,647$5.03
ARB<0.01%$3,178.30.1487$472.66
ZKSYNC<0.01%$3,179.640.032$101.6
LINEA<0.01%$3,179.510.023$73.13
BSC<0.01%$533.840.0469$25.04
ARBNOVA<0.01%$3,178.780.005$15.89
SCROLL<0.01%$3,179.510.0002$0.635902
AVAX<0.01%$25.910.0107$0.277545
MATIC<0.01%$0.5321290.1381$0.073465
FTM<0.01%$0.4813010.001$0.000481
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.