ETH Price: $1,784.51 (+10.20%)

Contract

0x888888888889758F76e7103c6CbF23ABbF58F946

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Swap Tokens To T...3103223132025-02-27 4:24:3155 days ago1740630271IN
Pendle: RouterV4
0.095 ETH0.000006780.01
Redeem Due Inter...3103222022025-02-27 4:24:0455 days ago1740630244IN
Pendle: RouterV4
0 ETH0.000003120.01
Swap Exact Yt Fo...3103216522025-02-27 4:21:4555 days ago1740630105IN
Pendle: RouterV4
0 ETH0.000004490.01
Swap Tokens To T...3103181542025-02-27 4:07:0655 days ago1740629226IN
Pendle: RouterV4
0 ETH0.000004510.01
Swap Tokens To T...3103178582025-02-27 4:05:5255 days ago1740629152IN
Pendle: RouterV4
0 ETH0.000004210.01
Swap Tokens To T...3103173422025-02-27 4:03:4255 days ago1740629022IN
Pendle: RouterV4
0 ETH0.000004790.01
Call And Reflect3103073732025-02-27 3:21:5455 days ago1740626514IN
Pendle: RouterV4
0 ETH0.000022410.01
Redeem Due Inter...3103056822025-02-27 3:14:5055 days ago1740626090IN
Pendle: RouterV4
0 ETH0.000006120.01
Swap Tokens To T...3103045712025-02-27 3:10:1155 days ago1740625811IN
Pendle: RouterV4
0 ETH0.000004180.01
Swap Exact Yt Fo...3103036232025-02-27 3:06:1355 days ago1740625573IN
Pendle: RouterV4
0 ETH0.000011560.01
Swap Tokens To T...3103032902025-02-27 3:04:4955 days ago1740625489IN
Pendle: RouterV4
0 ETH0.000011760.01
Multicall3103020392025-02-27 2:59:3555 days ago1740625175IN
Pendle: RouterV4
0 ETH0.000020180.01
Redeem Sy To Tok...3103018632025-02-27 2:58:5055 days ago1740625130IN
Pendle: RouterV4
0 ETH0.000007950.01
Redeem Due Inter...3103013242025-02-27 2:56:3555 days ago1740624995IN
Pendle: RouterV4
0 ETH0.000002660.01
Swap Tokens To T...3102988562025-02-27 2:46:1655 days ago1740624376IN
Pendle: RouterV4
0 ETH0.000007010.01
Swap Tokens To T...3102982232025-02-27 2:43:3655 days ago1740624216IN
Pendle: RouterV4
0 ETH0.000025370.01
Multicall3102980512025-02-27 2:42:5355 days ago1740624173IN
Pendle: RouterV4
0 ETH0.000008490.01
Multicall3102958592025-02-27 2:33:4355 days ago1740623623IN
Pendle: RouterV4
0 ETH0.000013530.01
Add Liquidity Si...3102953392025-02-27 2:31:3155 days ago1740623491IN
Pendle: RouterV4
0 ETH0.000007830.01
Swap Exact Token...3102933522025-02-27 2:23:1155 days ago1740622991IN
Pendle: RouterV4
0 ETH0.000032850.01
Swap Tokens To T...3102930582025-02-27 2:21:5955 days ago1740622919IN
Pendle: RouterV4
0 ETH0.000008130.010727
Swap Tokens To T...3102906132025-02-27 2:11:4355 days ago1740622303IN
Pendle: RouterV4
0 ETH0.000010030.01
Redeem Due Inter...3102902362025-02-27 2:10:0855 days ago1740622208IN
Pendle: RouterV4
0 ETH0.000002730.01
Redeem Due Inter...3102898402025-02-27 2:08:3055 days ago1740622110IN
Pendle: RouterV4
0 ETH0.000002560.01
Swap Exact Yt Fo...3102894202025-02-27 2:06:4555 days ago1740622005IN
Pendle: RouterV4
0 ETH0.00000410.01
VIEW ADVANCED FILTER

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
3292961152025-04-23 6:58:439 mins ago1745391523
Pendle: RouterV4
0.00137297 ETH
3292961152025-04-23 6:58:439 mins ago1745391523
Pendle: RouterV4
0.00137297 ETH
3292908532025-04-23 6:36:4731 mins ago1745390207
Pendle: RouterV4
0.00129629 ETH
3292908532025-04-23 6:36:4731 mins ago1745390207
Pendle: RouterV4
0.00129629 ETH
3292905212025-04-23 6:35:2433 mins ago1745390124
Pendle: RouterV4
0.91934414 ETH
3292905212025-04-23 6:35:2433 mins ago1745390124
Pendle: RouterV4
0.91934414 ETH
3292826252025-04-23 6:02:411 hr ago1745388161
Pendle: RouterV4
0.00121892 ETH
3292826252025-04-23 6:02:411 hr ago1745388161
Pendle: RouterV4
0.00121892 ETH
3292813662025-04-23 5:57:261 hr ago1745387846
Pendle: RouterV4
0.00130338 ETH
3292813662025-04-23 5:57:261 hr ago1745387846
Pendle: RouterV4
0.00130338 ETH
3292794212025-04-23 5:49:221 hr ago1745387362
Pendle: RouterV4
0.5 ETH
3292705262025-04-23 5:12:281 hr ago1745385148
Pendle: RouterV4
0.00123607 ETH
3292705262025-04-23 5:12:281 hr ago1745385148
Pendle: RouterV4
0.00123607 ETH
3292675252025-04-23 5:00:032 hrs ago1745384403
Pendle: RouterV4
0.00129849 ETH
3292675252025-04-23 5:00:032 hrs ago1745384403
Pendle: RouterV4
0.00129849 ETH
3292583032025-04-23 4:21:402 hrs ago1745382100
Pendle: RouterV4
0.0011762 ETH
3292583032025-04-23 4:21:402 hrs ago1745382100
Pendle: RouterV4
0.0011762 ETH
3292571832025-04-23 4:17:012 hrs ago1745381821
Pendle: RouterV4
0.07 ETH
3292559352025-04-23 4:11:472 hrs ago1745381507
Pendle: RouterV4
0.00125905 ETH
3292559352025-04-23 4:11:472 hrs ago1745381507
Pendle: RouterV4
0.00125905 ETH
3292467032025-04-23 3:33:253 hrs ago1745379205
Pendle: RouterV4
0.14945409 ETH
3292467032025-04-23 3:33:253 hrs ago1745379205
Pendle: RouterV4
0.14945409 ETH
3292453102025-04-23 3:27:383 hrs ago1745378858
Pendle: RouterV4
0.544 ETH
3292437122025-04-23 3:21:003 hrs ago1745378460
Pendle: RouterV4
0.01551718 ETH
3292437122025-04-23 3:21:003 hrs ago1745378460
Pendle: RouterV4
0.01551718 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PendleRouterV4

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1000000 runs

Other Settings:
shanghai EvmVersion
File 1 of 4 : PendleRouterV4.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.17;

import "@openzeppelin/contracts/proxy/Proxy.sol";
import "../interfaces/IPActionStorageV4.sol";
import "./RouterStorage.sol";

contract PendleRouterV4 is Proxy, RouterStorage {
    constructor(address _owner, address actionStorage) {
        RouterStorage.CoreStorage storage $ = _getCoreStorage();
        $.owner = _owner;
        $.selectorToFacet[IPActionStorageV4.setSelectorToFacets.selector] = actionStorage;
    }

    function _implementation() internal view override returns (address) {
        RouterStorage.CoreStorage storage $ = _getCoreStorage();
        address facet = $.selectorToFacet[msg.sig];
        require(facet != address(0), "INVALID_SELECTOR");
        return facet;
    }

    receive() external payable override {}
}

File 2 of 4 : Proxy.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)

pragma solidity ^0.8.0;

/**
 * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
 * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
 * be specified by overriding the virtual {_implementation} function.
 *
 * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
 * different contract through the {_delegate} function.
 *
 * The success and return data of the delegated call will be returned back to the caller of the proxy.
 */
abstract contract Proxy {
    /**
     * @dev Delegates the current call to `implementation`.
     *
     * This function does not return to its internal call site, it will return directly to the external caller.
     */
    function _delegate(address implementation) internal virtual {
        assembly {
            // Copy msg.data. We take full control of memory in this inline assembly
            // block because it will not return to Solidity code. We overwrite the
            // Solidity scratch pad at memory position 0.
            calldatacopy(0, 0, calldatasize())

            // Call the implementation.
            // out and outsize are 0 because we don't know the size yet.
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)

            // Copy the returned data.
            returndatacopy(0, 0, returndatasize())

            switch result
            // delegatecall returns 0 on error.
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    /**
     * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function
     * and {_fallback} should delegate.
     */
    function _implementation() internal view virtual returns (address);

    /**
     * @dev Delegates the current call to the address returned by `_implementation()`.
     *
     * This function does not return to its internal call site, it will return directly to the external caller.
     */
    function _fallback() internal virtual {
        _beforeFallback();
        _delegate(_implementation());
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
     * function in the contract matches the call data.
     */
    fallback() external payable virtual {
        _fallback();
    }

    /**
     * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
     * is empty.
     */
    receive() external payable virtual {
        _fallback();
    }

    /**
     * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
     * call, or as part of the Solidity `fallback` or `receive` functions.
     *
     * If overridden should call `super._beforeFallback()`.
     */
    function _beforeFallback() internal virtual {}
}

File 3 of 4 : IPActionStorageV4.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.0;

interface IPActionStorageV4 {
    struct SelectorsToFacet {
        address facet;
        bytes4[] selectors;
    }

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    event SelectorToFacetSet(bytes4 indexed selector, address indexed facet);

    function owner() external view returns (address);

    function pendingOwner() external view returns (address);

    function transferOwnership(address newOwner, bool direct, bool renounce) external;

    function claimOwnership() external;

    function setSelectorToFacets(SelectorsToFacet[] calldata arr) external;

    function selectorToFacet(bytes4 selector) external view returns (address);
}

File 4 of 4 : RouterStorage.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.17;

abstract contract RouterStorage {
    struct CoreStorage {
        address owner;
        address pendingOwner;
        mapping(bytes4 => address) selectorToFacet;
    }

    // keccak256(abi.encode(uint256(keccak256("pendle.routerv4.Core")) - 1)) & ~bytes32(uint256(0xff))
    bytes32 private constant CORE_STORAGE_LOCATION = 0xf168c5b0cb4aca9a68f931815c18a144c61ad01d6dd7ca15bd6741672a0ab800;

    function _getCoreStorage() internal pure returns (CoreStorage storage $) {
        assembly {
            $.slot := CORE_STORAGE_LOCATION
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000000
  },
  "viaIR": true,
  "evmVersion": "shanghai",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"actionStorage","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

6080346100f957601f61024538819003918201601f19168301916001600160401b038311848410176100fd5780849260409485528339810103126100f957610052602061004b83610111565b9201610111565b7ff168c5b0cb4aca9a68f931815c18a144c61ad01d6dd7ca15bd6741672a0ab80080546001600160a01b039384166001600160a01b03199182161790915563523edfc160e11b5f527ff168c5b0cb4aca9a68f931815c18a144c61ad01d6dd7ca15bd6741672a0ab8026020527f64dcb2031b93f2b828088d68228a52c10b3bf4eb531ee3da663820f1b8fd2a6d805492909316911617905560405161011f90816101268239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100f95756fe6080604052361560e7577fffffffff000000000000000000000000000000000000000000000000000000005f35165f527ff168c5b0cb4aca9a68f931815c18a144c61ad01d6dd7ca15bd6741672a0ab80260205273ffffffffffffffffffffffffffffffffffffffff60405f2054168015608f575f8091368280378136915af43d5f803e15608b573d5ff35b3d5ffd5b7f08c379a0000000000000000000000000000000000000000000000000000000006080526020608452601060a4527f494e56414c49445f53454c4543544f520000000000000000000000000000000060c45260646080fd5b00fea2646970667358221220fb238a4872e09c3860528f78146507d0193bd6d15bb6de3664daec4da78e4eb964736f6c634300081800330000000000000000000000001fccc097db89a86bfc474a1028f93958295b1fb70000000000000000000000002d36f2a022d1170f33fdfd5670833c447c0c9ff3

Deployed Bytecode

0x6080604052361560e7577fffffffff000000000000000000000000000000000000000000000000000000005f35165f527ff168c5b0cb4aca9a68f931815c18a144c61ad01d6dd7ca15bd6741672a0ab80260205273ffffffffffffffffffffffffffffffffffffffff60405f2054168015608f575f8091368280378136915af43d5f803e15608b573d5ff35b3d5ffd5b7f08c379a0000000000000000000000000000000000000000000000000000000006080526020608452601060a4527f494e56414c49445f53454c4543544f520000000000000000000000000000000060c45260646080fd5b00fea2646970667358221220fb238a4872e09c3860528f78146507d0193bd6d15bb6de3664daec4da78e4eb964736f6c63430008180033

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

0000000000000000000000001fccc097db89a86bfc474a1028f93958295b1fb70000000000000000000000002d36f2a022d1170f33fdfd5670833c447c0c9ff3

-----Decoded View---------------
Arg [0] : _owner (address): 0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7
Arg [1] : actionStorage (address): 0x2D36f2A022D1170f33fDFD5670833C447c0c9Ff3

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001fccc097db89a86bfc474a1028f93958295b1fb7
Arg [1] : 0000000000000000000000002d36f2a022d1170f33fdfd5670833c447c0c9ff3


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
[ 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.