POL Price: $0.125632 (-3.28%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0.524222669674562003 POL

POL Value

$0.07 (@ $0.13/POL)

Token Holdings

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Block
From
To
Swap Balance814638192026-01-10 12:08:2014 days ago1768046900IN
0x23b5aa43...A549dFc06
0 POL0.05402396328.52097806
Swap Balance811614222026-01-03 12:08:2321 days ago1767442103IN
0x23b5aa43...A549dFc06
0 POL0.09102168614.32652374
Swap Balance811399732026-01-03 0:13:2521 days ago1767399205IN
0x23b5aa43...A549dFc06
0 POL0.18374925750
Swap Balance810534202026-01-01 0:08:1923 days ago1767226099IN
0x23b5aa43...A549dFc06
0 POL0.02886282191.23066817
Swap Balance808611282025-12-27 13:18:1928 days ago1766841499IN
0x23b5aa43...A549dFc06
0 POL0.07023292451.81265111
Swap Balance808590282025-12-27 12:08:1928 days ago1766837299IN
0x23b5aa43...A549dFc06
0 POL0.03411844225.83184953
Swap Balance808518282025-12-27 8:08:1928 days ago1766822899IN
0x23b5aa43...A549dFc06
0 POL0.04695414302.0705102
Swap Balance808425282025-12-27 2:58:1928 days ago1766804299IN
0x23b5aa43...A549dFc06
0 POL0.03864013248.58390666
Swap Balance808374302025-12-27 0:08:2328 days ago1766794103IN
0x23b5aa43...A549dFc06
0 POL0.11950162150.10673723
Swap Balance808293282025-12-26 19:38:1928 days ago1766777899IN
0x23b5aa43...A549dFc06
0 POL0.08176361150.0734448
Swap Balance808232192025-12-26 16:14:4128 days ago1766765681IN
0x23b5aa43...A549dFc06
0 POL0.12018075750
Swap Balance808228872025-12-26 16:03:3728 days ago1766765017IN
0x23b5aa43...A549dFc06
0 POL0.02565225750
Swap Balance808158282025-12-26 12:08:1929 days ago1766750899IN
0x23b5aa43...A549dFc06
0 POL0.028557189.09169136
Swap Balance808155292025-12-26 11:58:2129 days ago1766750301IN
0x23b5aa43...A549dFc06
0 POL0.02796508179.90801827
Swap Balance808146282025-12-26 11:28:1929 days ago1766748499IN
0x23b5aa43...A549dFc06
0 POL0.02633152166.39191891
Swap Balance808125282025-12-26 10:18:1929 days ago1766744299IN
0x23b5aa43...A549dFc06
0 POL0.02726288175.3905897
Swap Balance808074282025-12-26 7:28:1929 days ago1766734099IN
0x23b5aa43...A549dFc06
0 POL0.0253409163.02590489
Swap Balance808038282025-12-26 5:28:1929 days ago1766726899IN
0x23b5aa43...A549dFc06
0 POL0.02337442150.37492061
Swap Balance807984292025-12-26 2:28:2129 days ago1766716101IN
0x23b5aa43...A549dFc06
0 POL0.023337150.13418942
Swap Balance807942292025-12-26 0:08:2129 days ago1766707701IN
0x23b5aa43...A549dFc06
0 POL0.0544305150.00000159
Swap Balance807771292025-12-25 14:38:2130 days ago1766673501IN
0x23b5aa43...A549dFc06
0 POL0.04509249290.04173086
Swap Balance807726302025-12-25 12:08:2330 days ago1766664503IN
0x23b5aa43...A549dFc06
0 POL0.05555183180.8021917
Swap Balance807693282025-12-25 10:18:1930 days ago1766657899IN
0x23b5aa43...A549dFc06
0 POL0.0261014167.87521015
Swap Balance807600282025-12-25 5:08:1930 days ago1766639299IN
0x23b5aa43...A549dFc06
0 POL0.02332226150.00075122
Swap Balance807525282025-12-25 0:58:1930 days ago1766624299IN
0x23b5aa43...A549dFc06
0 POL0.02331615150.00000073
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
820684292026-01-24 12:13:503 hrs ago1769256830
0x23b5aa43...A549dFc06
0.00980241 POL
820341852026-01-23 17:12:2222 hrs ago1769188342
0x23b5aa43...A549dFc06
0.01930422 POL
819546512026-01-21 21:01:142 days ago1769029274
0x23b5aa43...A549dFc06
0.08723454 POL
819218592026-01-21 2:48:103 days ago1768963690
0x23b5aa43...A549dFc06
0.01850383 POL
819118192026-01-20 21:13:303 days ago1768943610
0x23b5aa43...A549dFc06
0.31334213 POL
819034992026-01-20 16:36:103 days ago1768926970
0x23b5aa43...A549dFc06
0.01911778 POL
817748412026-01-17 17:07:346 days ago1768669654
0x23b5aa43...A549dFc06
0.00502071 POL
817325942026-01-16 17:39:207 days ago1768585160
0x23b5aa43...A549dFc06
0.04939695 POL
817202492026-01-16 10:47:508 days ago1768560470
0x23b5aa43...A549dFc06
0.0025 POL
816444602026-01-14 16:41:329 days ago1768408892
0x23b5aa43...A549dFc06
0.00000006 POL
814638192026-01-10 12:08:2014 days ago1768046900
0x23b5aa43...A549dFc06
127.84811785 POL
814127112026-01-09 7:44:4415 days ago1767944684
0x23b5aa43...A549dFc06
0.11822789 POL
814127112026-01-09 7:44:4415 days ago1767944684
0x23b5aa43...A549dFc06
0.11944725 POL
813704122026-01-08 8:14:4316 days ago1767860083
0x23b5aa43...A549dFc06
0.01963194 POL
813247962026-01-07 6:54:1117 days ago1767768851
0x23b5aa43...A549dFc06
0.0375 POL
813213712026-01-07 5:00:0117 days ago1767762001
0x23b5aa43...A549dFc06
0.0178151 POL
812927792026-01-06 13:06:5718 days ago1767704817
0x23b5aa43...A549dFc06
0.00980043 POL
812914752026-01-06 12:23:2918 days ago1767702209
0x23b5aa43...A549dFc06
0.01966762 POL
812554492026-01-05 16:22:3718 days ago1767630157
0x23b5aa43...A549dFc06
0.0160598 POL
812375492026-01-05 6:25:5719 days ago1767594357
0x23b5aa43...A549dFc06
0.00397572 POL
812203922026-01-04 20:54:0319 days ago1767560043
0x23b5aa43...A549dFc06
0.0143404 POL
812087932026-01-04 14:27:2520 days ago1767536845
0x23b5aa43...A549dFc06
0.01042581 POL
811894452026-01-04 3:42:2920 days ago1767498149
0x23b5aa43...A549dFc06
0.03404918 POL
811893032026-01-04 3:37:4520 days ago1767497865
0x23b5aa43...A549dFc06
0.0091147 POL
811890522026-01-04 3:29:2320 days ago1767497363
0x23b5aa43...A549dFc06
0.01210939 POL
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FeeCollector

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;

import {Owned} from "solmate/auth/Owned.sol";
import {ERC20} from "solmate/tokens/ERC20.sol";
import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";
import {IFeeCollector} from "./interfaces/IFeeCollector.sol";
import {IPermit2} from "./external/IPermit2.sol";

/// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address.
contract FeeCollector is Owned, IFeeCollector {
    using SafeTransferLib for ERC20;

    address public universalRouter;

    ERC20 public immutable feeToken;
    IPermit2 public immutable permit2;

    uint256 public constant MAX_APPROVAL_AMOUNT = type(uint256).max;
    uint160 public constant MAX_PERMIT2_APPROVAL_AMOUNT = type(uint160).max;
    uint48 public constant MAX_PERMIT2_DEADLINE = type(uint48).max;

    constructor(address _owner, address _universalRouter, address _permit2, address _feeToken) Owned(_owner) {
        universalRouter = _universalRouter;
        feeToken = ERC20(_feeToken);
        permit2 = IPermit2(_permit2);
    }

    /// @inheritdoc IFeeCollector
    function swapBalance(bytes calldata swapData, uint256 nativeValue) external onlyOwner {
        _execute(swapData, nativeValue);
    }

    /// @inheritdoc IFeeCollector
    function swapBalance(bytes calldata swapData, uint256 nativeValue, ERC20[] calldata tokensToApprove)
        external
        onlyOwner
    {
        unchecked {
            for (uint256 i = 0; i < tokensToApprove.length; i++) {
                tokensToApprove[i].safeApprove(address(permit2), MAX_APPROVAL_AMOUNT);
                permit2.approve(
                    address(tokensToApprove[i]), universalRouter, MAX_PERMIT2_APPROVAL_AMOUNT, MAX_PERMIT2_DEADLINE
                );
            }
        }

        _execute(swapData, nativeValue);
    }

    /// @notice Helper function to call UniversalRouter.
    /// @param swapData The bytes call data to be forwarded to UniversalRouter.
    /// @param nativeValue The amount of native currency to send to UniversalRouter.
    function _execute(bytes calldata swapData, uint256 nativeValue) internal {
        (bool success,) = universalRouter.call{value: nativeValue}(swapData);
        if (!success) revert UniversalRouterCallFailed();
    }

    /// @inheritdoc IFeeCollector
    function revokeTokenApprovals(ERC20[] calldata tokensToRevoke) external onlyOwner {
        unchecked {
            for (uint256 i = 0; i < tokensToRevoke.length; i++) {
                tokensToRevoke[i].safeApprove(address(permit2), 0);
            }
        }
    }

    /// @inheritdoc IFeeCollector
    function revokePermit2Approvals(IPermit2.TokenSpenderPair[] calldata approvals) external onlyOwner {
        permit2.lockdown(approvals);
    }

    /// @inheritdoc IFeeCollector
    function withdrawFeeToken(address feeRecipient, uint256 amount) external onlyOwner {
        feeToken.safeTransfer(feeRecipient, amount);
    }

    /// @inheritdoc IFeeCollector
    function setUniversalRouter(address _universalRouter) external onlyOwner {
        emit UniversalRouterChanged(universalRouter, _universalRouter);
        universalRouter = _universalRouter;
    }

    receive() external payable {}
}

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

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

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function transferOwnership(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*//////////////////////////////////////////////////////////////
                            METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*//////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    /*//////////////////////////////////////////////////////////////
                            EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*//////////////////////////////////////////////////////////////
                               ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*//////////////////////////////////////////////////////////////
                             EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

import {ERC20} from "../tokens/ERC20.sol";

/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.
/// @dev Note that none of the functions in this library check that a token has code at all! That responsibility is delegated to the caller.
library SafeTransferLib {
    /*//////////////////////////////////////////////////////////////
                             ETH OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferETH(address to, uint256 amount) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Transfer the ETH and store if it succeeded or not.
            success := call(gas(), to, amount, 0, 0, 0, 0)
        }

        require(success, "ETH_TRANSFER_FAILED");
    }

    /*//////////////////////////////////////////////////////////////
                            ERC20 OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferFrom(
        ERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata into memory, beginning with the function selector.
            mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000)
            mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "from" argument.
            mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
            mstore(add(freeMemoryPointer, 68), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.

            success := and(
                // Set success to whether the call reverted, if not we check it either
                // returned exactly 1 (can't just be non-zero data), or had no return data.
                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
                // We use 100 because the length of our calldata totals up like so: 4 + 32 * 3.
                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
                // Counterintuitively, this call must be positioned second to the or() call in the
                // surrounding and() call or else returndatasize() will be zero during the computation.
                call(gas(), token, 0, freeMemoryPointer, 100, 0, 32)
            )
        }

        require(success, "TRANSFER_FROM_FAILED");
    }

    function safeTransfer(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata into memory, beginning with the function selector.
            mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000)
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.

            success := and(
                // Set success to whether the call reverted, if not we check it either
                // returned exactly 1 (can't just be non-zero data), or had no return data.
                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
                // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.
                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
                // Counterintuitively, this call must be positioned second to the or() call in the
                // surrounding and() call or else returndatasize() will be zero during the computation.
                call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)
            )
        }

        require(success, "TRANSFER_FAILED");
    }

    function safeApprove(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool success;

        /// @solidity memory-safe-assembly
        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata into memory, beginning with the function selector.
            mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000)
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type.

            success := and(
                // Set success to whether the call reverted, if not we check it either
                // returned exactly 1 (can't just be non-zero data), or had no return data.
                or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())),
                // We use 68 because the length of our calldata totals up like so: 4 + 32 * 2.
                // We use 0 and 32 to copy up to 32 bytes of return data into the scratch space.
                // Counterintuitively, this call must be positioned second to the or() call in the
                // surrounding and() call or else returndatasize() will be zero during the computation.
                call(gas(), token, 0, freeMemoryPointer, 68, 0, 32)
            )
        }

        require(success, "APPROVE_FAILED");
    }
}

// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.13;

import {ERC20} from "solmate/tokens/ERC20.sol";
import {IPermit2} from "../external/IPermit2.sol";

/// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address.
interface IFeeCollector {
    /// @notice Error thrown when the call to UniversalRouter fails.
    error UniversalRouterCallFailed();

    /// @notice Emitted when the UniversalRouter address is changed.
    /// @param oldUniversalRouter The old router address.
    /// @param newUniversalRouter The new router address.
    event UniversalRouterChanged(address oldUniversalRouter, address newUniversalRouter);

    /// @notice Swaps the contract balance.
    /// @param swapData The bytes call data to be forwarded to UniversalRouter.
    /// @param nativeValue The amount of native currency to send to UniversalRouter.
    function swapBalance(bytes calldata swapData, uint256 nativeValue) external;

    /// @notice Approves tokens for swapping and then swaps the contract balance.
    /// @param swapData The bytes call data to be forwarded to UniversalRouter.
    /// @param nativeValue The amount of native currency to send to UniversalRouter.
    /// @param tokensToApprove An array of ERC20 tokens to approve for spending.
    function swapBalance(bytes calldata swapData, uint256 nativeValue, ERC20[] calldata tokensToApprove) external;

    /// @notice Revokes approvals on tokens by setting their allowance to 0.
    /// @param tokensToRevoke The token to revoke the approval for.
    function revokeTokenApprovals(ERC20[] calldata tokensToRevoke) external;

    /// @notice Revokes the permit2 allowance of a spender by setting token allowances to 0.
    /// @param approvals The approvals to revoke.
    function revokePermit2Approvals(IPermit2.TokenSpenderPair[] calldata approvals) external;

    /// @notice Transfers the fee token balance from this contract to the fee recipient.
    /// @param feeRecipient The address to send the fee token balance to.
    /// @param amount The amount to withdraw.
    function withdrawFeeToken(address feeRecipient, uint256 amount) external;

    /// @notice Sets the address of the UniversalRouter contract.
    /// @param _universalRouter The address of the UniversalRouter contract.
    function setUniversalRouter(address _universalRouter) external;
}

File 6 of 8 : IPermit2.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IAllowanceTransfer} from "./IAllowanceTransfer.sol";

/// @notice Permit2 handles signature-based transfers in SignatureTransfer and allowance-based transfers in AllowanceTransfer.
/// @dev Users must approve Permit2 before calling any of the transfer functions.
interface IPermit2 is IAllowanceTransfer {
// IPermit2 unifies the two interfaces so users have maximal flexibility with their approval.
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IEIP712} from "./IEIP712.sol";

/// @title AllowanceTransfer
/// @notice Handles ERC20 token permissions through signature based allowance setting and ERC20 token transfers by checking allowed amounts
/// @dev Requires user's token approval on the Permit2 contract
interface IAllowanceTransfer is IEIP712 {
    /// @notice A token spender pair.
    struct TokenSpenderPair {
        // the token the spender is approved
        address token;
        // the spender address
        address spender;
    }

    /// @notice A mapping from owner address to token address to spender address to PackedAllowance struct, which contains details and conditions of the approval.
    /// @notice The mapping is indexed in the above order see: allowance[ownerAddress][tokenAddress][spenderAddress]
    /// @dev The packed slot holds the allowed amount, expiration at which the allowed amount is no longer valid, and current nonce thats updated on any signature based approvals.
    function allowance(address user, address token, address spender)
        external
        view
        returns (uint160 amount, uint48 expiration, uint48 nonce);

    /// @notice Approves the spender to use up to amount of the specified token up until the expiration
    /// @param token The token to approve
    /// @param spender The spender address to approve
    /// @param amount The approved amount of the token
    /// @param expiration The timestamp at which the approval is no longer valid
    /// @dev The packed allowance also holds a nonce, which will stay unchanged in approve
    /// @dev Setting amount to type(uint160).max sets an unlimited approval
    function approve(address token, address spender, uint160 amount, uint48 expiration) external;

    /// @notice Enables performing a "lockdown" of the sender's Permit2 identity
    /// by batch revoking approvals
    /// @param approvals Array of approvals to revoke.
    function lockdown(TokenSpenderPair[] calldata approvals) external;
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IEIP712 {
    function DOMAIN_SEPARATOR() external view returns (bytes32);
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "solmate/=lib/solmate/src/",
    "v2-core/=lib/v2-core/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_universalRouter","type":"address"},{"internalType":"address","name":"_permit2","type":"address"},{"internalType":"address","name":"_feeToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"UniversalRouterCallFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldUniversalRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newUniversalRouter","type":"address"}],"name":"UniversalRouterChanged","type":"event"},{"inputs":[],"name":"MAX_APPROVAL_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERMIT2_APPROVAL_AMOUNT","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PERMIT2_DEADLINE","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"permit2","outputs":[{"internalType":"contract IPermit2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"internalType":"struct IAllowanceTransfer.TokenSpenderPair[]","name":"approvals","type":"tuple[]"}],"name":"revokePermit2Approvals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ERC20[]","name":"tokensToRevoke","type":"address[]"}],"name":"revokeTokenApprovals","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_universalRouter","type":"address"}],"name":"setUniversalRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"swapData","type":"bytes"},{"internalType":"uint256","name":"nativeValue","type":"uint256"}],"name":"swapBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"swapData","type":"bytes"},{"internalType":"uint256","name":"nativeValue","type":"uint256"},{"internalType":"contract ERC20[]","name":"tokensToApprove","type":"address[]"}],"name":"swapBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"universalRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFeeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405234801561001057600080fd5b50604051610d96380380610d9683398101604081905261002f916100bf565b600080546001600160a01b0319166001600160a01b03861690811782556040518692907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0394851617905582166080521660a05250610113565b80516001600160a01b03811681146100ba57600080fd5b919050565b600080600080608085870312156100d557600080fd5b6100de856100a3565b93506100ec602086016100a3565b92506100fa604086016100a3565b9150610108606086016100a3565b905092959194509250565b60805160a051610c3c61015a6000396000818160ff01528181610414015281816105100152818161054601526106720152600081816101cd01526104ab0152610c3c6000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063b4a25ce711610059578063b4a25ce714610273578063bbf20c15146102a4578063d88d35de146102c4578063f2fde38b146102e457600080fd5b80638da5cb5b1461020f57806394a228b51461022f578063b2ef14e31461025357600080fd5b8063481fb142116100bb578063481fb14214610180578063628a4b2f1461019b578063647846a5146101bb57806365d82753146101ef57600080fd5b806312261ee7146100ed5780631ac169861461013e57806335a9e4df1461016057600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014a57600080fd5b5061015e61015936600461092a565b610304565b005b34801561016c57600080fd5b50600154610121906001600160a01b031681565b34801561018c57600080fd5b506101216001600160a01b0381565b3480156101a757600080fd5b5061015e6101b636600461098e565b610347565b3480156101c757600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b3480156101fb57600080fd5b5061015e61020a3660046109f7565b6103da565b34801561021b57600080fd5b50600054610121906001600160a01b031681565b34801561023b57600080fd5b5061024560001981565b604051908152602001610135565b34801561025f57600080fd5b5061015e61026e366004610a39565b610474565b34801561027f57600080fd5b5061028d65ffffffffffff81565b60405165ffffffffffff9091168152602001610135565b3480156102b057600080fd5b5061015e6102bf366004610a65565b6104d6565b3480156102d057600080fd5b5061015e6102df366004610adf565b610631565b3480156102f057600080fd5b5061015e6102ff36600461098e565b6106df565b6000546001600160a01b031633146103375760405162461bcd60e51b815260040161032e90610b54565b60405180910390fd5b610342838383610754565b505050565b6000546001600160a01b031633146103715760405162461bcd60e51b815260040161032e90610b54565b600154604080516001600160a01b03928316815291831660208301527f736ee8e49f5bc52c4483e2bf96ce5c99a25af7c12037267ccde543b28ab63071910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104045760405162461bcd60e51b815260040161032e90610b54565b60005b818110156103425761046c7f0000000000000000000000000000000000000000000000000000000000000000600085858581811061044757610447610b7a565b905060200201602081019061045c919061098e565b6001600160a01b031691906107e0565b600101610407565b6000546001600160a01b0316331461049e5760405162461bcd60e51b815260040161032e90610b54565b6104d26001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610860565b5050565b6000546001600160a01b031633146105005760405162461bcd60e51b815260040161032e90610b54565b60005b8181101561061e576105447f000000000000000000000000000000000000000000000000000000000000000060001985858581811061044757610447610b7a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166387517c4584848481811061058557610585610b7a565b905060200201602081019061059a919061098e565b60015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529082166024820152604481019190915265ffffffffffff6064820152608401600060405180830381600087803b1580156105fa57600080fd5b505af115801561060e573d6000803e3d6000fd5b5050600190920191506105039050565b5061062a858585610754565b5050505050565b6000546001600160a01b0316331461065b5760405162461bcd60e51b815260040161032e90610b54565b60405163cc53287f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc53287f906106a99085908590600401610b90565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161032e90610b54565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001546040516000916001600160a01b03169083906107769087908790610bf6565b60006040518083038185875af1925050503d80600081146107b3576040519150601f19603f3d011682016040523d82523d6000602084013e6107b8565b606091505b50509050806107da5760405163cee8b77760e01b815260040160405180910390fd5b50505050565b600060405163095ea7b360e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806107da5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b604482015260640161032e565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806107da5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015260640161032e565b60008083601f8401126108f357600080fd5b50813567ffffffffffffffff81111561090b57600080fd5b60208301915083602082850101111561092357600080fd5b9250929050565b60008060006040848603121561093f57600080fd5b833567ffffffffffffffff81111561095657600080fd5b610962868287016108e1565b909790965060209590950135949350505050565b6001600160a01b038116811461098b57600080fd5b50565b6000602082840312156109a057600080fd5b81356109ab81610976565b9392505050565b60008083601f8401126109c457600080fd5b50813567ffffffffffffffff8111156109dc57600080fd5b6020830191508360208260051b850101111561092357600080fd5b60008060208385031215610a0a57600080fd5b823567ffffffffffffffff811115610a2157600080fd5b610a2d858286016109b2565b90969095509350505050565b60008060408385031215610a4c57600080fd5b8235610a5781610976565b946020939093013593505050565b600080600080600060608688031215610a7d57600080fd5b853567ffffffffffffffff80821115610a9557600080fd5b610aa189838a016108e1565b9097509550602088013594506040880135915080821115610ac157600080fd5b50610ace888289016109b2565b969995985093965092949392505050565b60008060208385031215610af257600080fd5b823567ffffffffffffffff80821115610b0a57600080fd5b818501915085601f830112610b1e57600080fd5b813581811115610b2d57600080fd5b8660208260061b8501011115610b4257600080fd5b60209290920196919550909350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252818101839052600090604080840186845b87811015610be9578135610bb981610976565b6001600160a01b0390811684528286013590610bd482610976565b16838601529183019190830190600101610ba6565b5090979650505050505050565b818382376000910190815291905056fea26469706673582212209ca59ca3b1a45c0142169edc7d5c3e7051782a57f49a40db6fa82c782f3349f864736f6c63430008130033000000000000000000000000be84d31b2ee049dcb1d8e7c798511632b44d1b55000000000000000000000000ec7be89e9d109e7e3fec59c222cf297125fefda2000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359

Deployed Bytecode

0x6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063b4a25ce711610059578063b4a25ce714610273578063bbf20c15146102a4578063d88d35de146102c4578063f2fde38b146102e457600080fd5b80638da5cb5b1461020f57806394a228b51461022f578063b2ef14e31461025357600080fd5b8063481fb142116100bb578063481fb14214610180578063628a4b2f1461019b578063647846a5146101bb57806365d82753146101ef57600080fd5b806312261ee7146100ed5780631ac169861461013e57806335a9e4df1461016057600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba381565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014a57600080fd5b5061015e61015936600461092a565b610304565b005b34801561016c57600080fd5b50600154610121906001600160a01b031681565b34801561018c57600080fd5b506101216001600160a01b0381565b3480156101a757600080fd5b5061015e6101b636600461098e565b610347565b3480156101c757600080fd5b506101217f0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c335981565b3480156101fb57600080fd5b5061015e61020a3660046109f7565b6103da565b34801561021b57600080fd5b50600054610121906001600160a01b031681565b34801561023b57600080fd5b5061024560001981565b604051908152602001610135565b34801561025f57600080fd5b5061015e61026e366004610a39565b610474565b34801561027f57600080fd5b5061028d65ffffffffffff81565b60405165ffffffffffff9091168152602001610135565b3480156102b057600080fd5b5061015e6102bf366004610a65565b6104d6565b3480156102d057600080fd5b5061015e6102df366004610adf565b610631565b3480156102f057600080fd5b5061015e6102ff36600461098e565b6106df565b6000546001600160a01b031633146103375760405162461bcd60e51b815260040161032e90610b54565b60405180910390fd5b610342838383610754565b505050565b6000546001600160a01b031633146103715760405162461bcd60e51b815260040161032e90610b54565b600154604080516001600160a01b03928316815291831660208301527f736ee8e49f5bc52c4483e2bf96ce5c99a25af7c12037267ccde543b28ab63071910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104045760405162461bcd60e51b815260040161032e90610b54565b60005b818110156103425761046c7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3600085858581811061044757610447610b7a565b905060200201602081019061045c919061098e565b6001600160a01b031691906107e0565b600101610407565b6000546001600160a01b0316331461049e5760405162461bcd60e51b815260040161032e90610b54565b6104d26001600160a01b037f0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359168383610860565b5050565b6000546001600160a01b031633146105005760405162461bcd60e51b815260040161032e90610b54565b60005b8181101561061e576105447f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba360001985858581811061044757610447610b7a565b7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba36001600160a01b03166387517c4584848481811061058557610585610b7a565b905060200201602081019061059a919061098e565b60015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529082166024820152604481019190915265ffffffffffff6064820152608401600060405180830381600087803b1580156105fa57600080fd5b505af115801561060e573d6000803e3d6000fd5b5050600190920191506105039050565b5061062a858585610754565b5050505050565b6000546001600160a01b0316331461065b5760405162461bcd60e51b815260040161032e90610b54565b60405163cc53287f60e01b81526001600160a01b037f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3169063cc53287f906106a99085908590600401610b90565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161032e90610b54565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001546040516000916001600160a01b03169083906107769087908790610bf6565b60006040518083038185875af1925050503d80600081146107b3576040519150601f19603f3d011682016040523d82523d6000602084013e6107b8565b606091505b50509050806107da5760405163cee8b77760e01b815260040160405180910390fd5b50505050565b600060405163095ea7b360e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806107da5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b604482015260640161032e565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806107da5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015260640161032e565b60008083601f8401126108f357600080fd5b50813567ffffffffffffffff81111561090b57600080fd5b60208301915083602082850101111561092357600080fd5b9250929050565b60008060006040848603121561093f57600080fd5b833567ffffffffffffffff81111561095657600080fd5b610962868287016108e1565b909790965060209590950135949350505050565b6001600160a01b038116811461098b57600080fd5b50565b6000602082840312156109a057600080fd5b81356109ab81610976565b9392505050565b60008083601f8401126109c457600080fd5b50813567ffffffffffffffff8111156109dc57600080fd5b6020830191508360208260051b850101111561092357600080fd5b60008060208385031215610a0a57600080fd5b823567ffffffffffffffff811115610a2157600080fd5b610a2d858286016109b2565b90969095509350505050565b60008060408385031215610a4c57600080fd5b8235610a5781610976565b946020939093013593505050565b600080600080600060608688031215610a7d57600080fd5b853567ffffffffffffffff80821115610a9557600080fd5b610aa189838a016108e1565b9097509550602088013594506040880135915080821115610ac157600080fd5b50610ace888289016109b2565b969995985093965092949392505050565b60008060208385031215610af257600080fd5b823567ffffffffffffffff80821115610b0a57600080fd5b818501915085601f830112610b1e57600080fd5b813581811115610b2d57600080fd5b8660208260061b8501011115610b4257600080fd5b60209290920196919550909350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252818101839052600090604080840186845b87811015610be9578135610bb981610976565b6001600160a01b0390811684528286013590610bd482610976565b16838601529183019190830190600101610ba6565b5090979650505050505050565b818382376000910190815291905056fea26469706673582212209ca59ca3b1a45c0142169edc7d5c3e7051782a57f49a40db6fa82c782f3349f864736f6c63430008130033

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

000000000000000000000000be84d31b2ee049dcb1d8e7c798511632b44d1b55000000000000000000000000ec7be89e9d109e7e3fec59c222cf297125fefda2000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359

-----Decoded View---------------
Arg [0] : _owner (address): 0xbE84D31B2eE049DCb1d8E7c798511632b44d1b55
Arg [1] : _universalRouter (address): 0xec7BE89e9d109e7e3Fec59c222CF297125FEFda2
Arg [2] : _permit2 (address): 0x000000000022D473030F116dDEE9F6B43aC78BA3
Arg [3] : _feeToken (address): 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000be84d31b2ee049dcb1d8e7c798511632b44d1b55
Arg [1] : 000000000000000000000000ec7be89e9d109e7e3fec59c222cf297125fefda2
Arg [2] : 000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3
Arg [3] : 0000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c3359


Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0x23b5aa437CfDaF03235d78961e032dbA549dFc06
Net Worth in USD
$48,828.85

Net Worth in POL
Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo 388,666.733839

Token Allocations
OC 22.66%
BET 7.65%
TROTEL 7.16%
Others 62.53%
Chain Token Portfolio % Price Amount Value
POL22.66%$0.23391547,304.8727$11,065.33
POL7.65%$0.00036810,148,815.1467$3,735.68
POL7.16%$0.15827522,078.8188$3,494.53
POL6.66%$0.004571710,967.2661$3,249.93
POL4.26%$17.03122.0223$2,078.04
POL3.55%$126.9613.6543$1,733.55
POL3.15%$1.041,483.2211$1,539.58
POL3.13%$5,047.780.3029$1,528.77
POL3.09%$1.181,277.8116$1,507.82
POL3.09%$1.181,277.8116$1,507.82
POL3.08%$0.00639235,162.0094$1,502.58
POL2.74%$89,243.730.015$1,340.21
POL2.49%$0.0009991,218,802.9881$1,217.39
POL2.44%$0.003809312,993.13$1,192.15
POL2.18%$0.1878355,668.5482$1,064.75
POL1.86%$0.0296330,603.8531$906.8
POL1.52%$2370.77$741.54
POL1.39%$0.1553024,357.7232$676.76
POL1.14%$0.01057252,736.9727$557.56
POL1.04%$0.519995976.0314$507.53
POL0.81%$1.19330.5932$393.41
POL0.74%$0.03269911,096.3407$362.84
POL0.72%$0.00726448,202.2838$350.13
POL0.71%$0.000001322,079,032.238$347.85
POL0.68%$0.00000483,397,507.7157$332.76
POL0.65%$0.998306316.6092$316.07
POL0.62%$0.000344877,757.768$302.1
POL0.59%$0.1290872,238.8854$289.01
POL0.54%$0.1787671,464.4186$261.79
POL0.50%$0.000824296,554.8265$244.46
POL0.50%$0.00997924,428.1482$243.77
POL0.41%$88,9850.00227309$202.27
POL0.38%$0.757461242.8828$183.97
POL0.35%$1.17145.54$170.28
POL0.32%$0.188065821.607$154.52
POL0.29%$0.368992389.1122$143.58
POL0.29%$3,623.830.0384$139.3
POL0.27%$0.1117171,166.8723$130.36
POL0.24%$0.150007777.6983$116.66
POL0.23%$0.455013248.0954$112.89
POL0.23%$2,960.190.0371$109.92
POL0.21%$0.00133678,228.7359$104.54
POL0.21%$0.999535100.2171$100.17
POL0.20%$2.5138.0426$95.49
POL0.19%$0.000272346,346.9087$94.26
POL0.16%$0.0122516,511.9174$79.78
POL0.14%$0.0000371,906,142.3986$70.15
POL0.14%$0.00485713,910.8769$67.57
POL0.13%$2.0631.76$65.43
POL0.13%$1.1752.1948$61.07
POL0.12%$0.0020828,369.1339$59.01
POL0.12%$0.00181232,431.8799$58.77
POL0.11%$0.0160553,411.4976$54.77
POL0.11%<$0.00000113,800,522,248.8952$52.44
POL0.10%$0.180503277.0475$50.01
POL0.10%$0.0287891,725.7747$49.68
POL0.10%$0.189071260.9816$49.34
POL0.09%$0.78567858.6377$46.07
POL0.09%$89,2300.00050528$45.09
POL0.09%$0.00115537,599.5411$43.42
POL0.08%$0.0114913,348.7921$38.48
POL0.08%$137.1079$37.15
POL0.07%$0.00229414,081.6133$32.31
POL0.07%$0.9991632.066$32.04
POL0.07%$0.0000122,653,715.93$31.84
POL0.06%$0.00200615,811.6042$31.72
POL0.06%$0.99953528.334$28.32
POL0.06%$0.0101632,763.213$28.08
POL0.05%$0.0067523,804.8292$25.69
POL0.05%$0.0000083,284,630.5817$25.65
POL0.05%$0.31848878.541$25.01
POL0.05%$0.0000231,058,342.4973$24.65
POL0.05%$0.0030587,908.0059$24.18
POL0.05%$0.050939472.2983$24.06
POL0.05%$0.002858,282.5321$23.61
POL0.05%$0.000012,309,272.6946$23.49
POL0.05%$0.096108243.82$23.43
POL0.04%$0.0000111,964,963.0955$21.14
POL0.04%$0.00095621,978.6864$21
POL0.04%$0.020594990.4203$20.4
POL0.04%$0.164244119.2451$19.59
POL0.04%$0.29505965.7889$19.41
POL0.04%$0.99836618.9381$18.91
POL0.04%$0.147896125.4367$18.55
POL0.04%$0.0000092,068,142.6187$18.53
POL0.04%$1.2315.0514$18.51
POL0.04%$0.99855518.4268$18.4
POL0.04%$3,420.990.00534277$18.28
POL0.04%<$0.000001228,487,250.2854$17.34
POL0.04%$0.99812817.2913$17.26
POL0.03%$0.0096281,768.745$17.03
POL0.03%$0.00059527,049.5993$16.09
POL0.03%$0.00121813,072.1334$15.93
POL0.03%$0.93556916.9742$15.88
POL0.03%$0.060761256.8783$15.61
POL0.03%$258.550.0601$15.53
POL0.03%$0.00125111,938.8087$14.94
POL0.03%$0.00016388,209.9916$14.34
POL0.03%$0.0000028,619,771.8775$13.45
POL0.03%$0.0082951,603.7696$13.3
POL0.03%$0.028588459.7528$13.14
POL0.03%$0.048109271.1473$13.04
POL0.03%$0.00039532,624.1267$12.89
POL0.03%$0.69564818.4837$12.86
POL0.03%$2.175.8866$12.76
POL0.03%$0.126272100.2724$12.66
POL0.03%$0.031684398.6228$12.63
POL0.03%$0.22601754.8174$12.39
POL0.02%$0.0068721,710.7026$11.76
POL0.02%$0.036414318.1861$11.59
POL0.02%$0.3018438.261$11.55
POL0.02%$1.179.8346$11.51
POL0.02%$0.051773220.5122$11.42
POL0.02%$0.14416777.819$11.22
POL0.02%$1.885.8419$11
POL0.02%$1,567.130.00674962$10.58
POL0.02%$0.092647112.9422$10.46
POL0.02%$0.0018635,358.1237$9.98
POL0.02%$0.00069614,149.8086$9.84
POL0.02%$0.0039312,469.0345$9.71
POL0.02%$0.00010988,784.6975$9.7
POL0.02%$0.00003323,700.9006$9.67
POL0.02%$0.00017254,022.2745$9.28
POL0.02%$0.14505262.7926$9.11
POL0.02%$0.00011574,632.8714$8.61
POL0.02%$0.1582854.1811$8.58
POL0.02%$0.008421994.7752$8.38
POL0.02%$0.0048051,720.7899$8.27
POL0.02%$23.980.3425$8.21
POL0.02%$0.63478712.3524$7.84
POL0.02%$0.015732497.2358$7.82
POL0.02%$0.01472514.5673$7.57
POL0.02%<$0.000001118,508,579.0224$7.43
POL0.01%$0.23183229.8227$6.91
POL0.01%$0.0046891,420.1497$6.66
POL0.01%$0.14536745.7058$6.64
POL0.01%$0.18091735.8248$6.48
POL0.01%$0.00014444,251.8238$6.37
POL0.01%$0.000013498,064.7358$6.32
POL0.01%$0.0034911,799.097$6.28
POL0.01%$23.760.2513$5.97
POL0.01%$0.0010815,479.4174$5.92
POL0.01%$0.0018433,055.7481$5.63
POL0.01%$0.026438209.8151$5.55
POL0.01%$0.36308315.2416$5.53
POL0.01%$0.008199671.4718$5.51
POL0.01%$3.381.6127$5.45
POL0.01%$0.00011546,899.9168$5.4
POL<0.01%$0.000499,750.3341$4.78
POL<0.01%$1.812.6166$4.75
POL<0.01%$12.050.3888$4.69
POL<0.01%$0.21310221.0851$4.49
POL<0.01%$0.18774522.9726$4.31
POL<0.01%$0.0023731,779.2709$4.22
POL<0.01%$0.0008464,789.7799$4.05
POL<0.01%$0.000038103,416.3767$3.96
POL<0.01%$0.00005176,427.3504$3.89
POL<0.01%$0.00021518,029.3744$3.88
POL<0.01%$0.00031711,803.6409$3.74
POL<0.01%$0.004245877.4385$3.72
POL<0.01%$0.10107535.392$3.58
POL<0.01%$1.173.0171$3.53
POL<0.01%$0.1992817.6502$3.52
POL<0.01%$0.011971292.5588$3.5
POL<0.01%$0.7953844.0976$3.26
POL<0.01%$0.9924343.2633$3.24
POL<0.01%$0.00005261,761.6711$3.18
POL<0.01%$0.0010712,947.2113$3.16
POL<0.01%$0.006334496.1087$3.14
POL<0.01%<$0.00000173,028,346.2491$3.13
POL<0.01%$0.01951159.1867$3.11
POL<0.01%$0.001122,753.9023$3.08
POL<0.01%$155.940.0196$3.06
POL<0.01%$4.850.6299$3.05
POL<0.01%$0.0009933,043.9294$3.02
POL<0.01%$0.011902230.5492$2.74
POL<0.01%$0.006113435.4778$2.66
POL<0.01%$0.002879921.5013$2.65
POL<0.01%<$0.00000173,567,762.3183$2.62
POL<0.01%$0.00019212,924.0214$2.48
POL<0.01%$0.00004652,104.8955$2.38
POL<0.01%$0.08338928.4387$2.37
POL<0.01%$0.007884293.7776$2.32
POL<0.01%$0.0007133,185.0623$2.27
POL<0.01%$0.0011241,993.3741$2.24
POL<0.01%$0.3535456.2469$2.21
POL<0.01%$0.06364333.5843$2.14
POL<0.01%$0.00005834,129.1151$1.99
POL<0.01%$0.005469357.5844$1.96
POL<0.01%$0.0004813,872.4059$1.86
POL<0.01%$0.00003454,546.2951$1.85
POL<0.01%$1.191.476$1.75
POL<0.01%$0.9668951.7501$1.69
POL<0.01%$14,557.890.0001141$1.66
POL<0.01%$0.00004634,592.5108$1.6
POL<0.01%$0.04981531.4214$1.57
POL<0.01%$0.006296247.8831$1.56
POL<0.01%$0.04162337.1701$1.55
POL<0.01%$0.004603333.0843$1.53
POL<0.01%$0.03451243.5252$1.5
POL<0.01%$0.4176043.5542$1.48
POL<0.01%$0.00002264,726.0933$1.42
POL<0.01%$0.002594545.5758$1.42
POL<0.01%$0.99861.283$1.28
POL<0.01%$1.011.2235$1.23
POL<0.01%$0.288384.1968$1.21
POL<0.01%$0.001.2044$0.00
POL<0.01%$0.1677397.0357$1.18
POL<0.01%$0.01268988.2806$1.12
POL<0.01%$0.9562031.1036$1.06
POL<0.01%$0.0002015,184.0931$1.04
POL<0.01%$1.011.0115$1.02
POL<0.01%$0.008201120.3857$0.9872
POL<0.01%$0.06709913.8425$0.9288
POL<0.01%$0.1994024.6538$0.9279
POL<0.01%$0.06936813.2301$0.9177
POL<0.01%$6.340.1443$0.9146
POL<0.01%$0.000491,830.686$0.8969
POL<0.01%$0.0007521,188.9209$0.8939
POL<0.01%$0.008087105.6816$0.8546
POL<0.01%<$0.00000198,405,753.969$0.8462
POL<0.01%$0.0001366,028.9941$0.8197
POL<0.01%$0.2345183.4735$0.8146
POL<0.01%$0.01475954.7072$0.8074
POL<0.01%$0.006031132.3927$0.7984
POL<0.01%$0.0001614,809.5065$0.7733
POL<0.01%$0.0007281,005.7517$0.7321
POL<0.01%$0.001629426.426$0.6947
POL<0.01%$0.004152162.1341$0.6731
POL<0.01%<$0.000001197,774,128.9692$0.6526
POL<0.01%$0.00662898.0548$0.6499
POL<0.01%$0.05167412.3496$0.6381
POL<0.01%$0.003849163.4999$0.6293
POL<0.01%$0.0004731,254.331$0.5928
POL<0.01%$0.3525491.5946$0.5621
POL<0.01%$0.00004313,051.3746$0.5592
POL<0.01%$0.004285125.2107$0.5365
POL<0.01%<$0.0000012,677,064,573.2518$0.5354
POL<0.01%$0.0538479.6779$0.5211
POL<0.01%$0.00004611,247.22$0.5155
POL<0.01%$0.0004681,084.2413$0.5077
POL<0.01%$0.001852245.9916$0.4556
POL<0.01%$0.9056270.4946$0.4479
POL<0.01%$0.9442630.4685$0.4423
POL<0.01%$0.00782356.5199$0.4421
POL<0.01%$0.00644768.4935$0.4416
POL<0.01%$0.002111208.7376$0.4405
POL<0.01%$0.0002491,593.8434$0.3964
POL<0.01%$3.830.1034$0.3959
POL<0.01%$0.02740513.6115$0.373
POL<0.01%$0.0591726.2797$0.3715
POL<0.01%$0.0002761,245.0042$0.343
POL<0.01%<$0.0000011,023,352.7173$0.3342
POL<0.01%$0.6229180.5246$0.3267
POL<0.01%$0.000592543.3333$0.3216
POL<0.01%$0.01446322.1168$0.3198
POL<0.01%$0.0000893,510.8341$0.314
POL<0.01%$2,956.240.00010314$0.3049
POL<0.01%$12.170.025$0.3042
POL<0.01%$0.002912102.6331$0.2988
POL<0.01%$0.002043143.6629$0.2934
POL<0.01%<$0.00000145,108,144.6794$0.2886
POL<0.01%$1.210.2346$0.2838
POL<0.01%$0.1725831.6407$0.2831
POL<0.01%$0.0000416,780.9439$0.2808
POL<0.01%$0.001813153.2344$0.2777
POL<0.01%$0.4972530.4896$0.2434
POL<0.01%$0.147681.6329$0.2411
POL<0.01%$0.0723763.3065$0.2393
POL<0.01%$0.9985110.2345$0.2341
POL<0.01%$0.00042544.4594$0.2285
POL<0.01%$0.000229968.1255$0.222
POL<0.01%$0.1828081.2007$0.2194
POL<0.01%$3,349.260.00006479$0.2169
POL<0.01%$0.155921.3866$0.2161
POL<0.01%$0.000908234.575$0.213
POL<0.01%$0.8476150.2476$0.2098
POL<0.01%$0.0001351,502.4281$0.2025
POL<0.01%$0.01462413.8482$0.2025
POL<0.01%$0.0336975.9561$0.2007
POL<0.01%$0.001477127.9478$0.189
POL<0.01%$0.0001611,150.8779$0.1858
POL<0.01%$0.3791010.4854$0.184
POL<0.01%$0.0387294.5758$0.1772
POL<0.01%$0.00177599.1963$0.176
POL<0.01%$0.000413409.0048$0.169
POL<0.01%$0.00893718.9069$0.1689
POL<0.01%$8.030.0209$0.1678
POL<0.01%$0.6904880.2378$0.1642
POL<0.01%$1.720.0877$0.1507
POL<0.01%$0.000463320.9335$0.1486
POL<0.01%$0.1000051.4342$0.1434
POL<0.01%$10.1303$0.1307
POL<0.01%$0.000509256.4165$0.1304
POL<0.01%$0.000222568.484$0.1264
POL<0.01%$0.0000343,516.9809$0.1201
POL<0.01%$0.0761051.5353$0.1168
POL<0.01%$0.999740.1124$0.1123
POL<0.01%$11.030.01$0.1103
POL<0.01%$59.010.00185596$0.1095
POL<0.01%$35.510.00301035$0.1068
POL<0.01%$0.5469230.1915$0.1047
POL
Polygon (POL)
<0.01%$0.125560.5242$0.065821
BASE0.02%$1.885.8419$10.98
BASE<0.01%$0.001805100$0.1805
Loading...
Loading
Loading...
Loading
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.