ETH Price: $2,451.14 (+2.50%)

Contract

0x777DfB70EB952a081d0d11fF828715f79572cFE4
Transaction Hash
Method
Block
From
To
Set Root Candida...1253369772024-09-14 0:12:116 days ago1726272731IN
0x777DfB70...79572cFE4
0 ETH0.0000001147470.0016624
Trigger Root1253155202024-09-13 12:16:576 days ago1726229817IN
0x777DfB70...79572cFE4
0 ETH0.000000087480.0012296
Set Root Candida...1252884192024-09-12 21:13:357 days ago1726175615IN
0x777DfB70...79572cFE4
0 ETH0.0000001714760.0024408
Set Root Candida...1252831312024-09-12 18:17:197 days ago1726165039IN
0x777DfB70...79572cFE4
0 ETH0.0000003402960.00448468
Claim All1252793132024-09-12 16:10:037 days ago1726157403IN
0x777DfB70...79572cFE4
0 ETH0.0000039952210.01569277
Claim All1252792972024-09-12 16:09:317 days ago1726157371IN
0x777DfB70...79572cFE4
0 ETH0.0000040879770.01577223
Claim All1252622952024-09-12 6:42:477 days ago1726123367IN
0x777DfB70...79572cFE4
0 ETH0.0000008937220.0001445
Trigger Root1252616222024-09-12 6:20:217 days ago1726122021IN
0x777DfB70...79572cFE4
0 ETH0.0000000313420.00021553
Set Root Candida...1252608652024-09-12 5:55:077 days ago1726120507IN
0x777DfB70...79572cFE4
0 ETH0.0000001094760.00131082
Set Root Candida...1252590262024-09-12 4:53:497 days ago1726116829IN
0x777DfB70...79572cFE4
0 ETH0.0000001091290.00160485
Claim All1252451922024-09-11 21:12:418 days ago1726089161IN
0x777DfB70...79572cFE4
0 ETH0.0000008276830.00320892
Claim All1252451872024-09-11 21:12:318 days ago1726089151IN
0x777DfB70...79572cFE4
0 ETH0.0000004736110.00322147
Claim All1252405562024-09-11 18:38:098 days ago1726079889IN
0x777DfB70...79572cFE4
0 ETH0.0000035158740.0155965
Claim All1252405302024-09-11 18:37:178 days ago1726079837IN
0x777DfB70...79572cFE4
0 ETH0.000003455940.01571691
Claim All1252397802024-09-11 18:12:178 days ago1726078337IN
0x777DfB70...79572cFE4
0 ETH0.0000107524340.02550372
Trigger Root1252374232024-09-11 16:53:438 days ago1726073623IN
0x777DfB70...79572cFE4
0 ETH0.0000019549740.03370852
Set Root Candida...1252332512024-09-11 14:34:398 days ago1726065279IN
0x777DfB70...79572cFE4
0 ETH0.0000013362830.02153265
Set Root Candida...1252312252024-09-11 13:27:078 days ago1726061227IN
0x777DfB70...79572cFE4
0 ETH0.0000003334370.00510419
Claim All1252261202024-09-11 10:36:578 days ago1726051017IN
0x777DfB70...79572cFE4
0 ETH0.0000003264430.0006248
Trigger Root1252099982024-09-11 1:39:339 days ago1726018773IN
0x777DfB70...79572cFE4
0 ETH0.0000001864030.00278995
Set Root Candida...1252049792024-09-10 22:52:159 days ago1726008735IN
0x777DfB70...79572cFE4
0 ETH0.0000001645160.00202887
Set Root Candida...1252040652024-09-10 22:21:479 days ago1726006907IN
0x777DfB70...79572cFE4
0 ETH0.000000247060.00253393
Claim All1251938912024-09-10 16:42:399 days ago1725986559IN
0x777DfB70...79572cFE4
0 ETH0.0000031192070.01367342
Claim All1251938702024-09-10 16:41:579 days ago1725986517IN
0x777DfB70...79572cFE4
0 ETH0.000003134980.0138324
Claim All1251842102024-09-10 11:19:579 days ago1725967197IN
0x777DfB70...79572cFE4
0 ETH0.0000012634070.00096314
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
1155111192024-01-30 13:23:35233 days ago1706621015  Contract Creation0 ETH

Loading...
Loading

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

Contract Name:
SolidlyProxy

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : SolidlyProxy.sol
// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.8.11;

/**
 * @title Solidly governance killable proxy
 * @author Solidly Labs
 * @notice EIP-1967 upgradeable proxy with the ability to kill governance and render the contract immutable
 */
contract SolidlyProxy {
    bytes32 constant IMPLEMENTATION_SLOT =
        0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; // keccak256('eip1967.proxy.implementation'), actually used for interface so etherscan picks up the interface
    bytes32 constant LOGIC_SLOT =
        0x5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab; // keccak256('LOGIC') - 1, actual logic implementation
    bytes32 constant GOVERNANCE_SLOT =
        0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; // keccak256('eip1967.proxy.admin')
    bytes32 constant INITIALIZED_SLOT =
        0x834ce84547018237034401a09067277cdcbe7bbf7d7d30f6b382b0a102b7b4a3; // keccak256('eip1967.proxy.initialized')

    /**
     * @notice Reverts if msg.sender is not governance
     */
    modifier onlyGovernance() {
        require(msg.sender == governanceAddress(), "Only governance");
        _;
    }

    /**
     * @notice Reverts if contract is already initialized
     * @dev Used by implementations to ensure initialize() is only called once
     */
    modifier notInitialized() {
        bool initialized;
        assembly {
            initialized := sload(INITIALIZED_SLOT)
            if eq(initialized, 1) {
                revert(0, 0)
            }
            sstore(INITIALIZED_SLOT, 1)
        }
        _;
    }

    /**
     * @notice Sets up deployer as a proxy governance
     */
    constructor() {
        address _governanceAddress = msg.sender;
        assembly {
            sstore(GOVERNANCE_SLOT, _governanceAddress)
        }
    }

    /**
     * @notice Detect whether or not governance is killed
     * @return Return true if governance is killed, false if not
     * @dev If governance is killed this contract becomes immutable
     */
    function governanceIsKilled() public view returns (bool) {
        return governanceAddress() == address(0);
    }

    /**
     * @notice Kill governance, making this contract immutable
     * @dev Only governance can kil governance
     */
    function killGovernance() external onlyGovernance {
        updateGovernanceAddress(address(0));
    }

    /**
     * @notice Update implementation address
     * @param _interfaceAddress Address of the new interface
     * @dev Only governance can update implementation
     */
    function updateInterfaceAddress(address _interfaceAddress)
        external
        onlyGovernance
    {
        assembly {
            sstore(IMPLEMENTATION_SLOT, _interfaceAddress)
        }
    }

    /**
     * @notice Actually updates interface, kept for etherscan pattern recognition
     * @param _implementationAddress Address of the new implementation
     * @dev Only governance can update implementation
     */
    function updateImplementationAddress(address _implementationAddress)
        external
        onlyGovernance
    {
        assembly {
            sstore(IMPLEMENTATION_SLOT, _implementationAddress)
        }
    }

    /**
     * @notice Update implementation address
     * @param _logicAddress Address of the new implementation
     * @dev Only governance can update implementation
     */
    function updateLogicAddress(address _logicAddress) external onlyGovernance {
        assembly {
            sstore(LOGIC_SLOT, _logicAddress)
        }
    }

    /**
     * @notice Update governance address
     * @param _governanceAddress New governance address
     * @dev Only governance can update governance
     */
    function updateGovernanceAddress(address _governanceAddress)
        public
        onlyGovernance
    {
        assembly {
            sstore(GOVERNANCE_SLOT, _governanceAddress)
        }
    }

    /**
     * @notice Fetch the current implementation address
     * @return _implementationAddress Returns the current implementation address
     */
    function implementationAddress()
        public
        view
        returns (address _implementationAddress)
    {
        assembly {
            _implementationAddress := sload(IMPLEMENTATION_SLOT)
        }
    }

    /**
     * @notice Fetch the current implementation address
     * @return _interfaceAddress Returns the current implementation address
     */
    function interfaceAddress()
        public
        view
        virtual
        returns (address _interfaceAddress)
    {
        assembly {
            _interfaceAddress := sload(IMPLEMENTATION_SLOT)
        }
    }

    /**
     * @notice Fetch the current implementation address
     * @return _logicAddress Returns the current implementation address
     */
    function logicAddress()
        public
        view
        virtual
        returns (address _logicAddress)
    {
        assembly {
            _logicAddress := sload(LOGIC_SLOT)
        }
    }

    /**
     * @notice Fetch current governance address
     * @return _governanceAddress Returns current governance address
     */
    function governanceAddress()
        public
        view
        virtual
        returns (address _governanceAddress)
    {
        assembly {
            _governanceAddress := sload(GOVERNANCE_SLOT)
        }
    }

    /**
     * @notice Fallback function that delegatecalls the subimplementation instead of what's in the IMPLEMENTATION_SLOT
     */
    function _delegateCallSubimplmentation() internal virtual {
        assembly {
            let contractLogic := sload(LOGIC_SLOT)
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(
                gas(),
                contractLogic,
                0x0,
                calldatasize(),
                0,
                0
            )
            let returnDataSize := returndatasize()
            returndatacopy(0, 0, returnDataSize)
            switch success
            case 0 {
                revert(0, returnDataSize)
            }
            default {
                return(0, returnDataSize)
            }
        }
    }

    /**
     * @notice Delegatecall fallback proxy
     */
    fallback() external payable virtual {
        _delegateCallSubimplmentation();
    }

    receive() external payable virtual {
        _delegateCallSubimplmentation();
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"governanceAddress","outputs":[{"internalType":"address","name":"_governanceAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceIsKilled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementationAddress","outputs":[{"internalType":"address","name":"_implementationAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interfaceAddress","outputs":[{"internalType":"address","name":"_interfaceAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"killGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"logicAddress","outputs":[{"internalType":"address","name":"_logicAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governanceAddress","type":"address"}],"name":"updateGovernanceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementationAddress","type":"address"}],"name":"updateImplementationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_interfaceAddress","type":"address"}],"name":"updateInterfaceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logicAddress","type":"address"}],"name":"updateLogicAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100955760003560e01c8063b56fbb9711610059578063b56fbb9714610189578063b90d8930146101a9578063b97a231914610155578063cf6126ed146101c9578063eb5ee83a146101c9576100a4565b8063179781c4146100ac578063654ea5e7146100d6578063795053d3146100eb5780639c1fcc4c14610121578063aa8a675414610155576100a4565b366100a4576100a26101e9565b005b6100a26101e9565b3480156100b857600080fd5b506100c1610232565b60405190151581526020015b60405180910390f35b3480156100e257600080fd5b506100a261025a565b3480156100f757600080fd5b50600080516020610423833981519152545b6040516001600160a01b0390911681526020016100cd565b34801561012d57600080fd5b507f5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab54610109565b34801561016157600080fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54610109565b34801561019557600080fd5b506100a26101a43660046103c9565b6102af565b3480156101b557600080fd5b506100a26101c43660046103c9565b610313565b3480156101d557600080fd5b506100a26101e43660046103c9565b610365565b7f5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab543660008037600080366000845af490503d806000803e81801561022d57816000f35b816000fd5b60008061024b6000805160206104238339815191525490565b6001600160a01b031614905090565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146102a35760405162461bcd60e51b815260040161029a906103f9565b60405180910390fd5b6102ad6000610313565b565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146102ef5760405162461bcd60e51b815260040161029a906103f9565b7f5942be825425c77e56e4bce97986794ab0f100954e40fc1390ae0e003710a3ab55565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146103535760405162461bcd60e51b815260040161029a906103f9565b60008051602061042383398151915255565b600080516020610423833981519152546001600160a01b0316336001600160a01b0316146103a55760405162461bcd60e51b815260040161029a906103f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b6000602082840312156103db57600080fd5b81356001600160a01b03811681146103f257600080fd5b9392505050565b6020808252600f908201526e4f6e6c7920676f7665726e616e636560881b60408201526060019056feb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103a164736f6c634300080b000a

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
FTM100.00%$0.05024613,216,051,585.4374$664,053,727.96
FTM<0.01%$0.6286716,337.6336$3,984.29
FTM<0.01%$15.5638.1013$592.86
FTM<0.01%$0.719035352.917$253.76
FTM<0.01%$10.9815.8852$174.42
FTM<0.01%$795.810.1429$113.69
FTM<0.01%<$0.00000184,676,364,231.9085$59.27
FTM<0.01%$0.49781182.754$41.2
FTM<0.01%<$0.00000174,785,046,710.1805$29.91
FTM<0.01%<$0.00000171,990,449,569.0016$21.6
FTM<0.01%$0.000073174,918.054$12.79
FTM<0.01%$0.0033213,689.032$12.25
FTM<0.01%<$0.000001102,658,695.6502$10.94
FTM<0.01%$19.6285$9.64
FTM<0.01%$0.043532219.9722$9.58
FTM<0.01%$0.00000111,157,792.8077$8.41
FTM<0.01%$2,450.80.00326729$8.01
FTM<0.01%$0.025593166.1549$4.25
FTM<0.01%$0.5838497.2151$4.21
FTM<0.01%$62,8440.00000631$0.3965
FTM<0.01%$0.9987240.3882$0.3876
FTM<0.01%$0.00000635,113.4556$0.2148
FTM<0.01%$0.01900210.9078$0.2072
BASE<0.01%$2,448.640.2408$589.59
BASE<0.01%$1530.7492$531.28
BASE<0.01%$1149.2689$149.27
BASE<0.01%$4.1715.8111$65.93
BASE<0.01%$0.00373114,565.0387$54.34
BASE<0.01%$0.81034965.4949$53.07
BASE<0.01%$2,639.290.0174$45.82
BASE<0.01%$0.080621431.4053$34.78
BASE<0.01%$0.00347,324.6182$24.9
BASE<0.01%<$0.0000011,194,209,699$24.84
BASE<0.01%<$0.00000141,181,488.4179$4.18
BASE<0.01%$0.0003428,585.6566$2.94
BASE<0.01%$0.00004236,560.3938$1.54
BASE<0.01%$0.01678640$0.6714
BASE<0.01%<$0.0000012,000,000$0.6146
BASE<0.01%<$0.00000175,324,080.8$0.4293
BASE<0.01%$0.00002113,584.9073$0.2873
BASE<0.01%$0.00867717.6156$0.1528
ARB<0.01%$2,448.640.1758$430.48
ARB<0.01%$1235.153$235.39
ARB<0.01%$0.552857135.1689$74.73
ARB<0.01%$62,7630.00077401$48.58
ARB<0.01%$11.182.2992$25.7
ARB<0.01%$113.1117$13.12
ARB<0.01%$112.6278$12.64
ARB<0.01%$3.353.6897$12.36
ARB<0.01%$2,883.380.00360367$10.39
ARB<0.01%$0.01431273.159$1.05
ARB<0.01%$4.170.1861$0.7759
OP<0.01%$1255.4277$255.94
OP<0.01%$1.59109.1764$173.18
OP<0.01%$1102.2368$102.44
OP<0.01%$190.6724$90.85
OP<0.01%$0.083877731.6622$61.37
OP<0.01%$2,450.410.0214$52.41
OP<0.01%$62,8320.00047463$29.82
OP<0.01%$1.489.414$13.93
OP<0.01%$2,886.240.00122792$3.54
OP<0.01%$4.180.0666$0.2781
OP<0.01%$1.580.1597$0.2517
[ 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.