ETH Price: $1,797.37 (+13.97%)

Contract

0x888888888889758F76e7103c6CbF23ABbF58F946

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Transaction Hash
Method
Block
From
To
Exit Post Exp To...3292340012025-04-23 2:40:395 mins ago1745376039IN
Pendle: RouterV4
0 ETH0.000033920.017362
Swap Exact Token...3292333282025-04-23 2:37:508 mins ago1745375870IN
Pendle: RouterV4
0 ETH0.000035320.031652
Redeem Due Inter...3292326742025-04-23 2:35:0710 mins ago1745375707IN
Pendle: RouterV4
0 ETH0.000031550.037137
Swap Exact Token...3292291792025-04-23 2:20:3825 mins ago1745374838IN
Pendle: RouterV4
0 ETH0.000017660.012568
Multicall3292276212025-04-23 2:14:1031 mins ago1745374450IN
Pendle: RouterV4
0 ETH0.000030690.01
Swap Tokens To T...3292260772025-04-23 2:07:4838 mins ago1745374068IN
Pendle: RouterV4
0 ETH0.000011850.01
Redeem Due Inter...3292251202025-04-23 2:03:4842 mins ago1745373828IN
Pendle: RouterV4
0 ETH0.000027640.01
Add Liquidity Si...3292250872025-04-23 2:03:3942 mins ago1745373819IN
Pendle: RouterV4
0 ETH0.000011690.01
Swap Tokens To T...3292245852025-04-23 2:01:3844 mins ago1745373698IN
Pendle: RouterV4
0 ETH0.000009620.01
Swap Tokens To T...3292244462025-04-23 2:01:0344 mins ago1745373663IN
Pendle: RouterV4
0.02358566 ETH0.000008270.01
Add Liquidity Si...3292244102025-04-23 2:00:5445 mins ago1745373654IN
Pendle: RouterV4
0 ETH0.000012740.01
Swap Tokens To T...3292231742025-04-23 1:55:4450 mins ago1745373344IN
Pendle: RouterV4
0 ETH0.000006930.01
Swap Tokens To T...3292230102025-04-23 1:55:0350 mins ago1745373303IN
Pendle: RouterV4
0.2388685 ETH0.00000940.01
Add Liquidity Si...3292229132025-04-23 1:54:3951 mins ago1745373279IN
Pendle: RouterV4
0 ETH0.000013530.01
Exit Post Exp To...3292220912025-04-23 1:51:1354 mins ago1745373073IN
Pendle: RouterV4
0 ETH0.000016030.01
Call And Reflect3292216202025-04-23 1:49:1856 mins ago1745372958IN
Pendle: RouterV4
0 ETH0.000020380.01
Swap Tokens To T...3292210752025-04-23 1:47:0158 mins ago1745372821IN
Pendle: RouterV4
0 ETH0.000009370.01
Swap Tokens To T...3292209462025-04-23 1:46:291 hrs ago1745372789IN
Pendle: RouterV4
0 ETH0.000010850.01
Swap Tokens To T...3292198072025-04-23 1:41:481 hr ago1745372508IN
Pendle: RouterV4
0 ETH0.000011130.01
Swap Tokens To T...3292193472025-04-23 1:39:531 hr ago1745372393IN
Pendle: RouterV4
0 ETH0.000024590.01
Redeem Due Inter...3292189252025-04-23 1:38:051 hr ago1745372285IN
Pendle: RouterV4
0 ETH0.000005370.012122
Swap Tokens To T...3292161402025-04-23 1:26:321 hr ago1745371592IN
Pendle: RouterV4
0 ETH0.000026370.017998
Redeem Due Inter...3292157832025-04-23 1:25:051 hr ago1745371505IN
Pendle: RouterV4
0 ETH0.00000590.019077
Redeem Due Inter...3292152672025-04-23 1:22:451 hr ago1745371365IN
Pendle: RouterV4
0 ETH0.000005360.027906
Multicall3292151352025-04-23 1:22:101 hr ago1745371330IN
Pendle: RouterV4
0 ETH0.000029830.029007
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
3292340012025-04-23 2:40:395 mins ago1745376039
Pendle: RouterV4
0.01575096 ETH
3292340012025-04-23 2:40:395 mins ago1745376039
Pendle: RouterV4
0.01575096 ETH
3292244462025-04-23 2:01:0344 mins ago1745373663
Pendle: RouterV4
0.02358566 ETH
3292230102025-04-23 1:55:0350 mins ago1745373303
Pendle: RouterV4
0.2388685 ETH
3292210752025-04-23 1:47:0158 mins ago1745372821
Pendle: RouterV4
0.07394437 ETH
3292210752025-04-23 1:47:0158 mins ago1745372821
Pendle: RouterV4
0.07394437 ETH
3292209462025-04-23 1:46:291 hrs ago1745372789
Pendle: RouterV4
0.03310876 ETH
3292209462025-04-23 1:46:291 hrs ago1745372789
Pendle: RouterV4
0.03310876 ETH
3292151352025-04-23 1:22:101 hr ago1745371330
Pendle: RouterV4
0.00312431 ETH
3292151352025-04-23 1:22:101 hr ago1745371330
Pendle: RouterV4
0.00312431 ETH
3291639182025-04-22 21:48:014 hrs ago1745358481
Pendle: RouterV4
0.00300526 ETH
3291638442025-04-22 21:47:434 hrs ago1745358463
Pendle: RouterV4
0.00121844 ETH
3291638442025-04-22 21:47:434 hrs ago1745358463
Pendle: RouterV4
0.00121844 ETH
3291625682025-04-22 21:42:235 hrs ago1745358143
Pendle: RouterV4
0.00307152 ETH
3291577072025-04-22 21:22:055 hrs ago1745356925
Pendle: RouterV4
0.0031966 ETH
3291573652025-04-22 21:20:405 hrs ago1745356840
Pendle: RouterV4
0.00462148 ETH
3291573162025-04-22 21:20:285 hrs ago1745356828
Pendle: RouterV4
0.00461896 ETH
3291572982025-04-22 21:20:235 hrs ago1745356823
Pendle: RouterV4
0.00462148 ETH
3291572882025-04-22 21:20:215 hrs ago1745356821
Pendle: RouterV4
0.00459874 ETH
3291567102025-04-22 21:17:555 hrs ago1745356675
Pendle: RouterV4
0.006 ETH
3291555842025-04-22 21:13:125 hrs ago1745356392
Pendle: RouterV4
0.00436153 ETH
3291555772025-04-22 21:13:105 hrs ago1745356390
Pendle: RouterV4
0.00445643 ETH
3291555712025-04-22 21:13:095 hrs ago1745356389
Pendle: RouterV4
0.00463802 ETH
3291555672025-04-22 21:13:085 hrs ago1745356388
Pendle: RouterV4
0.00443159 ETH
3291539422025-04-22 21:06:205 hrs ago1745355980
Pendle: RouterV4
0.00121181 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.