| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000123 | $0 |
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {IERC7802} from "../lib/optimism/packages/contracts-bedrock/interfaces/L2/IERC7802.sol";
import {Predeploys} from "../lib/optimism/packages/contracts-bedrock/src/libraries/Predeploys.sol";
import {Unauthorized} from "../lib/optimism/packages/contracts-bedrock/src/libraries/errors/CommonErrors.sol";
import {IERC165} from "../lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol";
import {IERC5805} from "../lib/openzeppelin-contracts/contracts/interfaces/IERC5805.sol";
import {ERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol";
import {IERC20} from "../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import {ERC20Burnable} from "../lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import {ERC20Permit} from "../lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Permit.sol";
import {ERC20Votes} from "../lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC20Votes.sol";
import {Nonces} from "../lib/openzeppelin-contracts/contracts/utils/Nonces.sol";
import {PoolAddress} from "./libraries/PoolAddress.sol";
/// @notice TRENCHER ERC-20 with a factory-fixed anti-snipe max-wallet window.
/// @dev Limits are immutable protocol constants — not settable by token admin / creator.
/// After `restrictionEndBlock` the token is permanently vanilla (no owner toggle to re-enable).
contract TrencherToken is ERC20, ERC20Permit, ERC20Votes, ERC20Burnable, IERC7802 {
error NotAdmin();
error AlreadyVerified();
error MaxWalletExceeded();
/// @dev 2.00% of total supply. Fixed — creators cannot choose a weaker or stronger cap.
uint256 public constant MAX_WALLET_BPS = 200;
/// @dev ~300 L1-estimate blocks on Arbitrum Orbit (~1h). Fixed — not extendable.
uint256 public constant RESTRICTION_BLOCKS = 300;
address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
address private _admin;
string private _metadata;
string private _context;
string private _image;
bool private _verified;
/// @notice Factory that deployed this token (only msg.sender at construction).
address public immutable launcher;
address public immutable locker;
address public immutable vault;
/// @notice Deterministic Uniswap v3 pool; must match factory.createPool.
address public immutable pool;
/// @notice Absolute max balance for non-exempt wallets during the window.
uint256 public immutable maxWallet;
uint256 public immutable launchBlock;
uint256 public immutable restrictionEndBlock;
/// @notice Wallet that called `deployToken` (dev / initial buyer). Exempt from max-wallet
/// for the restriction window so launch-time buys can exceed 2%; other wallets stay capped.
address public immutable initialBuyer;
event Verified(address indexed admin, address indexed token);
event UpdateImage(string image);
event UpdateMetadata(string metadata);
constructor(
string memory name_,
string memory symbol_,
uint256 maxSupply_,
address admin_,
string memory image_,
string memory metadata_,
string memory context_,
uint256 initialSupplyChainId_,
address locker_,
address vault_,
address uniswapV3Factory_,
address weth_,
uint24 poolFee_,
address initialBuyer_
) ERC20(name_, symbol_) ERC20Permit(name_) {
_admin = admin_;
_image = image_;
_metadata = metadata_;
_context = context_;
launcher = msg.sender;
locker = locker_;
vault = vault_;
pool = PoolAddress.computeAddress(
uniswapV3Factory_, PoolAddress.getPoolKey(address(this), weth_, poolFee_)
);
maxWallet = (maxSupply_ * MAX_WALLET_BPS) / 10_000;
launchBlock = block.number;
restrictionEndBlock = block.number + RESTRICTION_BLOCKS;
initialBuyer = initialBuyer_;
// Only mint initial supply on a single chain
if (block.chainid == initialSupplyChainId_) {
_mint(msg.sender, maxSupply_);
}
}
function updateImage(string memory image_) external {
if (msg.sender != _admin) {
revert NotAdmin();
}
_image = image_;
emit UpdateImage(image_);
}
function updateMetadata(string memory metadata_) external {
if (msg.sender != _admin) {
revert NotAdmin();
}
_metadata = metadata_;
emit UpdateMetadata(metadata_);
}
/// @dev Max wallet applies to every hop during the window (closes router-custody bypass).
/// Protocol sinks are exempt: pool (sells/LP), locker, vault, factory, dead.
/// `initialBuyer` (deployer / launch-time buyer) is exempt so a large dev buy can land.
/// Other EOAs — including token admin if different — stay under the 2% cap.
/// No owner knobs: cannot disable, extend, or add exemptions after deploy.
function _update(address from, address to, uint256 value)
internal
override(ERC20, ERC20Votes)
{
if (from != address(0) && block.number < restrictionEndBlock) {
bool exemptRecipient = to == pool || to == locker || to == vault || to == launcher
|| to == DEAD || to == initialBuyer;
if (!exemptRecipient && balanceOf(to) + value > maxWallet) {
revert MaxWalletExceeded();
}
}
super._update(from, to, value);
}
function verify() external {
if (msg.sender != _admin) {
revert NotAdmin();
}
if (_verified) {
revert AlreadyVerified();
}
_verified = true;
emit Verified(msg.sender, address(this));
}
function isVerified() external view returns (bool) {
return _verified;
}
function restrictionsActive() external view returns (bool) {
return block.number < restrictionEndBlock;
}
function nonces(address owner) public view override(ERC20Permit, Nonces) returns (uint256) {
return super.nonces(owner);
}
function admin() external view returns (address) {
return _admin;
}
function imageUrl() external view returns (string memory) {
return _image;
}
function metadata() external view returns (string memory) {
return _metadata;
}
function context() external view returns (string memory) {
return _context;
}
function crosschainMint(address _to, uint256 _amount) external {
// Only the `SuperchainTokenBridge` has permissions to mint tokens during crosschain transfers.
if (msg.sender != Predeploys.SUPERCHAIN_TOKEN_BRIDGE) revert Unauthorized();
// Mint tokens to the `_to` account's balance.
_mint(_to, _amount);
// Emit the CrosschainMint event included on IERC7802 for tracking token mints associated with cross chain transfers.
emit CrosschainMint(_to, _amount, msg.sender);
}
function crosschainBurn(address _from, uint256 _amount) external {
// Only the `SuperchainTokenBridge` has permissions to burn tokens during crosschain transfers.
if (msg.sender != Predeploys.SUPERCHAIN_TOKEN_BRIDGE) revert Unauthorized();
// Burn the tokens from the `_from` account's balance.
_burn(_from, _amount);
// Emit the CrosschainBurn event included on IERC7802 for tracking token burns associated with cross chain transfers.
emit CrosschainBurn(_from, _amount, msg.sender);
}
function supportsInterface(bytes4 _interfaceId) public pure returns (bool) {
return _interfaceId == type(IERC7802).interfaceId
|| _interfaceId == type(IERC20).interfaceId || _interfaceId == type(IERC165).interfaceId
|| _interfaceId == type(IERC5805).interfaceId;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "maxSupply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "admin_",
"type": "address",
"internalType": "address"
},
{
"name": "image_",
"type": "string",
"internalType": "string"
},
{
"name": "metadata_",
"type": "string",
"internalType": "string"
},
{
"name": "context_",
"type": "string",
"internalType": "string"
},
{
"name": "initialSupplyChainId_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "locker_",
"type": "address",
"internalType": "address"
},
{
"name": "vault_",
"type": "address",
"internalType": "address"
},
{
"name": "uniswapV3Factory_",
"type": "address",
"internalType": "address"
},
{
"name": "weth_",
"type": "address",
"internalType": "address"
},
{
"name": "poolFee_",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "initialBuyer_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyVerified",
"type": "error",
"inputs": []
},
{
"name": "CheckpointUnorderedInsertion",
"type": "error",
"inputs": []
},
{
"name": "ECDSAInvalidSignature",
"type": "error",
"inputs": []
},
{
"name": "ECDSAInvalidSignatureLength",
"type": "error",
"inputs": [
{
"name": "length",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ECDSAInvalidSignatureS",
"type": "error",
"inputs": [
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
]
},
{
"name": "ERC20ExceededSafeSupply",
"type": "error",
"inputs": [
{
"name": "increasedSupply",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "cap",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientAllowance",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "allowance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC20InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC20InvalidSpender",
"type": "error",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC2612ExpiredSignature",
"type": "error",
"inputs": [
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC2612InvalidSigner",
"type": "error",
"inputs": [
{
"name": "signer",
"type": "address",
"internalType": "address"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC5805FutureLookup",
"type": "error",
"inputs": [
{
"name": "timepoint",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "clock",
"type": "uint48",
"internalType": "uint48"
}
]
},
{
"name": "ERC6372InconsistentClock",
"type": "error",
"inputs": []
},
{
"name": "InvalidAccountNonce",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "currentNonce",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "InvalidPoolKey",
"type": "error",
"inputs": []
},
{
"name": "InvalidShortString",
"type": "error",
"inputs": []
},
{
"name": "MaxWalletExceeded",
"type": "error",
"inputs": []
},
{
"name": "NotAdmin",
"type": "error",
"inputs": []
},
{
"name": "SafeCastOverflowedUintDowncast",
"type": "error",
"inputs": [
{
"name": "bits",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "StringTooLong",
"type": "error",
"inputs": [
{
"name": "str",
"type": "string",
"internalType": "string"
}
]
},
{
"name": "Unauthorized",
"type": "error",
"inputs": []
},
{
"name": "VotesExpiredSignature",
"type": "error",
"inputs": [
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "CrosschainBurn",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "CrosschainMint",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "DelegateChanged",
"type": "event",
"inputs": [
{
"name": "delegator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "fromDelegate",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "toDelegate",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "DelegateVotesChanged",
"type": "event",
"inputs": [
{
"name": "delegate",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "previousVotes",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "newVotes",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "EIP712DomainChanged",
"type": "event",
"inputs": [],
"anonymous": false
},
{
"name": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "UpdateImage",
"type": "event",
"inputs": [
{
"name": "image",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "UpdateMetadata",
"type": "event",
"inputs": [
{
"name": "metadata",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"anonymous": false
},
{
"name": "Verified",
"type": "event",
"inputs": [
{
"name": "admin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "CLOCK_MODE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "DEAD",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "DOMAIN_SEPARATOR",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bytes32",
"internalType": "bytes32"
}
],
"stateMutability": "view"
},
{
"name": "MAX_WALLET_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "RESTRICTION_BLOCKS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "admin",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "burn",
"type": "function",
"inputs": [
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "burnFrom",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "checkpoints",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "pos",
"type": "uint32",
"internalType": "uint32"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"components": [
{
"name": "_key",
"type": "uint48",
"internalType": "uint48"
},
{
"name": "_value",
"type": "uint208",
"internalType": "uint208"
}
],
"internalType": "struct Checkpoints.Checkpoint208"
}
],
"stateMutability": "view"
},
{
"name": "clock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint48",
"internalType": "uint48"
}
],
"stateMutability": "view"
},
{
"name": "context",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "crosschainBurn",
"type": "function",
"inputs": [
{
"name": "_from",
"type": "address",
"internalType": "address"
},
{
"name": "_amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "crosschainMint",
"type": "function",
"inputs": [
{
"name": "_to",
"type": "address",
"internalType": "address"
},
{
"name": "_amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "delegate",
"type": "function",
"inputs": [
{
"name": "delegatee",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "delegateBySig",
"type": "function",
"inputs": [
{
"name": "delegatee",
"type": "address",
"internalType": "address"
},
{
"name": "nonce",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "expiry",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "delegates",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "eip712Domain",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "fields",
"type": "bytes1",
"internalType": "bytes1"
},
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "version",
"type": "string",
"internalType": "string"
},
{
"name": "chainId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "verifyingContract",
"type": "address",
"internalType": "address"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "extensions",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"name": "getPastTotalSupply",
"type": "function",
"inputs": [
{
"name": "timepoint",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "getPastVotes",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "timepoint",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "getVotes",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "imageUrl",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "initialBuyer",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "isVerified",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "launchBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "launcher",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "locker",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "maxWallet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "metadata",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "nonces",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "numCheckpoints",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint32",
"internalType": "uint32"
}
],
"stateMutability": "view"
},
{
"name": "permit",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "v",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "r",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "s",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "pool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "restrictionEndBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "restrictionsActive",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "_interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "pure"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "updateImage",
"type": "function",
"inputs": [
{
"name": "image_",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "updateMetadata",
"type": "function",
"inputs": [
{
"name": "metadata_",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "vault",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "verify",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
}
]0x60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461031457806303fd2a451461030f57806306fdde031461030a5780630861ac6114610305578063095ea7b31461030057806316eebd1e146102fb57806316f0115b146102f657806318160ddd146102f157806318bf5077146102ec57806323b872dd146102e75780632b8c49e3146102e2578063313ce567146102dd5780633644e515146102d8578063392f37e9146102d35780633a46b1a8146102ce57806342966c68146102c95780634bf5d7e9146102c4578063587cde1e146102bf5780635c19a95c146102ba5780636af7f9f5146102b55780636fcfff45146102b057806370a08231146102ab57806374c6fdec146102a657806379cc6790146102a15780637ecebe001461029c57806380007e831461029757806384b0196e146102925780638e539e8c1461028d578063918b5be11461028857806391ddadf41461028357806395d89b411461027e5780639ab24eb014610279578063a9059cbb14610274578063aba831501461026f578063b6efaa751461026a578063c3cda52014610265578063d00efb2f14610260578063d0496d6a1461025b578063d505accf14610256578063d7b96d4e14610251578063dd62ed3e1461024c578063eb3d68e714610247578063ee4762eb14610242578063f1127ed81461023d578063f851a44014610238578063f8b45b0514610233578063fbfa77cf1461022e5763fc735e9914610229575f80fd5b611c9a565b611c4a565b611c10565b611bdd565b611b07565b611aeb565b611977565b611904565b6118b4565b611719565b611674565b61163a565b6114cc565b611491565b6113ec565b6113c6565b61135e565b6112b9565b61128e565b6110e1565b610e87565b610d50565b610d2e565b610ce9565b610cb9565b610c7d565b610c3b565b610bb3565b610b63565b610b41565b610ae6565b610a3d565b610a1e565b610956565b6108b1565b61088f565b610874565b6107ee565b6107b6565b6106d3565b6106b6565b610666565b610616565b6105e5565b610565565b61046d565b6103fa565b346103f65760206003193601126103f6576004357fffffffff0000000000000000000000000000000000000000000000000000000081168091036103f6577f333319940000000000000000000000000000000000000000000000000000000081149081156103cc575b81156103a2575b8115610399575b506040519015158152602090f35b9050155f61038b565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081149150610384565b7f36372b07000000000000000000000000000000000000000000000000000000008114915061037d565b5f80fd5b346103f6575f6003193601126103f657602060405161dead8152f35b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061046a928181520190610416565b90565b346103f6575f6003193601126103f6576040515f60035461048d81611d79565b808452906001811690811561052357506001146104c5575b6104c1836104b581850382610ff9565b60405191829182610459565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610509575090915081016020016104b56104a5565b9192600181602092548385880101520191019092916104f1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506104b590506104a5565b346103f6575f6003193601126103f65760206040517f0000000000000000000000000000000000000000000000000000000001863bc48152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036103f657565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036103f657565b346103f65760406003193601126103f65761060b61060161059f565b60243590336128a6565b602060405160018152f35b346103f6575f6003193601126103f657602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000e769d832934f0a196a25e5c7b69cdf1920bc7734168152f35b346103f6575f6003193601126103f657602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d934a165929334adcf323539cdaaa54f53f02f0d168152f35b346103f6575f6003193601126103f6576020600254604051908152f35b346103f65760406003193601126103f6576106ec61059f565b60243590734200000000000000000000000000000000000028330361078e5773ffffffffffffffffffffffffffffffffffffffff81169081156107625782610734915f612f64565b6040519182527fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0460203393a3005b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103f65760606003193601126103f65761060b6107d261059f565b6107da6105c2565b604435916107e9833383611f22565b612087565b346103f65760406003193601126103f65761080761059f565b602435734200000000000000000000000000000000000028330361078e5761082f818361231c565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b346103f6575f6003193601126103f657602060405160128152f35b346103f6575f6003193601126103f65760206108a9612552565b604051908152f35b346103f6575f6003193601126103f6576040515f600c546108d181611d79565b808452906001811690811561052357506001146108f8576104c1836104b581850382610ff9565b600c5f9081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7939250905b80821061093c575090915081016020016104b56104a5565b919260018160209254838588010152019101909291610924565b346103f65760406003193601126103f65761096f61059f565b60243565ffffffffffff6109824361267b565b16808210156109ef576104c179ffffffffffffffffffffffffffffffffffffffffffffffffffff6109de8473ffffffffffffffffffffffffffffffffffffffff87165f5260096020526109d860405f209161267b565b906126ec565b604051911681529081906020820190565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346103f65760206003193601126103f657610a3b6004353361231c565b005b346103f6575f6003193601126103f657610a564361267b565b65ffffffffffff80610a674361267b565b16911603610abe576104c1604051610a80604082610ff9565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020820152604051918291602083526020830190610416565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103f65760206003193601126103f65773ffffffffffffffffffffffffffffffffffffffff610b1461059f565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346103f65760206003193601126103f657610a3b610b5d61059f565b3361277d565b346103f6575f6003193601126103f657602060405173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000042eaeab82aa880d4e4a753a193604d5fd25e86bd168152f35b346103f65760206003193601126103f65773ffffffffffffffffffffffffffffffffffffffff610be161059f565b165f52600960205260405f205463ffffffff8111610c0b5760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103f65760206003193601126103f65760206108a9610c5961059f565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b346103f6575f6003193601126103f65760206040517f0000000000000000000000000000000000000000000000000000000001863bc443108152f35b346103f65760406003193601126103f657610a3b610cd561059f565b60243590610ce4823383611f22565b61231c565b346103f65760206003193601126103f65773ffffffffffffffffffffffffffffffffffffffff610d1761059f565b165f526007602052602060405f2054604051908152f35b346103f6575f6003193601126103f657602060ff600f54166040519015158152f35b346103f6575f6003193601126103f657610e2e610d8c7f4c61756e6368206f6e205472656e636865720000000000000000000000000012612cda565b610db57f3100000000000000000000000000000000000000000000000000000000000001612d53565b6020604051610dc48282610ff9565b5f815281610e3c818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e0890190610416565b908782036040890152610416565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610e7057505050500390f35b835185528695509381019392810192600101610e61565b346103f65760206003193601126103f65760043565ffffffffffff610eab4361267b565b169081811015610f7d57610ebe9061267b565b600a54905f829160058411610f24575b610eda9350600a612aef565b80610f08575060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b610f136020916126c3565b600a5f52815f20015460301c610ee4565b9192610f2f8161297a565b8103908111610f7857610eda93600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610f66575091610ece565b929150610f72906126d1565b90610ece565b611d4c565b7fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610ff457604052565b610fab565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ff457604052565b60405190611049604083610ff9565b565b60206003198201126103f65760043567ffffffffffffffff81116103f657816023820112156103f65780600401359067ffffffffffffffff8211610ff457604051926110bf601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610ff9565b828452602483830101116103f657815f92602460209301838601378301015290565b346103f6576110ef3661104b565b73ffffffffffffffffffffffffffffffffffffffff600b5416330361126657805167ffffffffffffffff8111610ff4576111338161112e600c54611d79565b611e6a565b6020601f82116001146111a3579161118482611193937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611198575b505f198260011b9260031b1c19161790565b600c5560405191829182610459565b0390a1005b90508301515f611172565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b81811061124e5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f49492600192826111939610611236575b5050811b01600c556104b5565b8401515f1960f88460031b161c191690555f80611229565b919260206001819286890151815501940192016111ef565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103f6575f6003193601126103f65760206112a94361267b565b65ffffffffffff60405191168152f35b346103f6575f6003193601126103f6576040515f6004546112d981611d79565b80845290600181169081156105235750600114611300576104c1836104b581850382610ff9565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210611344575090915081016020016104b56104a5565b91926001816020925483858801015201910190929161132c565b346103f65760206003193601126103f65773ffffffffffffffffffffffffffffffffffffffff61138c61059f565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff6113bd60405f2061282d565b16604051908152f35b346103f65760406003193601126103f65761060b6113e261059f565b6024359033612087565b346103f6575f6003193601126103f6576040515f600e5461140c81611d79565b80845290600181169081156105235750600114611433576104c1836104b581850382610ff9565b600e5f9081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b808210611477575090915081016020016104b56104a5565b91926001816020925483858801015201910190929161145f565b346103f6575f6003193601126103f657602060405160c88152f35b6064359060ff821682036103f657565b6084359060ff821682036103f657565b346103f65760c06003193601126103f6576114e561059f565b602435906044356114f46114ac565b6084359060a4359280421161160f5791611587939161157961157e9460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a606083015260808201526080815261157160a082610ff9565b519020612856565b612d8a565b90929192612e5b565b6115b88173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b8093036115c957610a3b925061277d565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103f6575f6003193601126103f65760206040517f0000000000000000000000000000000000000000000000000000000001863a988152f35b346103f6575f6003193601126103f6576040515f600d5461169481611d79565b808452906001811690811561052357506001146116bb576104c1836104b581850382610ff9565b600d5f9081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5939250905b8082106116ff575090915081016020016104b56104a5565b9192600181602092548385880101520191019092916116e7565b346103f65760e06003193601126103f65761173261059f565b61173a6105c2565b604435906064359261174a6114bc565b60a43560c435908642116118885761181a926118156117908673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c0815261157160e082610ff9565b612897565b9373ffffffffffffffffffffffffffffffffffffffff85160361184157610a3b93506128a6565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b346103f6575f6003193601126103f657602060405173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000df54a0eb3c3ef1a99355fb5f739d040cd74a4a4c168152f35b346103f65760406003193601126103f657602061196e61192261059f565b73ffffffffffffffffffffffffffffffffffffffff61193f6105c2565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b346103f6576119853661104b565b73ffffffffffffffffffffffffffffffffffffffff600b5416330361126657805167ffffffffffffffff8111610ff4576119c9816119c4600e54611d79565b611eba565b6020601f8211600114611a285791611a1982611193937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161119857505f198260011b9260031b1c19161790565b600e5560405191829182610459565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b818110611ad35750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b555242169492600192826111939610611abb575b5050811b01600e556104b5565b8401515f1960f88460031b161c191690555f80611aae565b91926020600181928689015181550194019201611a74565b346103f6575f6003193601126103f657602060405161012c8152f35b346103f65760406003193601126103f657611b2061059f565b6024359063ffffffff821682036103f6576104c19173ffffffffffffffffffffffffffffffffffffffff611b7a92611b56611f0a565b50611b5f611f0a565b50165f52600960205260405f20611b74611f0a565b50612f22565b5060405190611b8882610fd8565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b346103f6575f6003193601126103f657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b346103f6575f6003193601126103f65760206040517f000000000000000000000000000000000000000006765c793fa10079d00000008152f35b346103f6575f6003193601126103f657602060405173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000026140e343d0911921042919ccc4df5cdc92920ef168152f35b346103f6575f6003193601126103f65773ffffffffffffffffffffffffffffffffffffffff600b5416330361126657600f5460ff8116611d24577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611dc0575b6020831014611d9357565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611d88565b5f9291815491611dd983611d79565b8083529260018116908115611e2e5750600114611df557505050565b5f9081526020812093945091925b838310611e14575060209250010190565b600181602092949394548385870101520191019190611e03565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611e76575050565b600c5f5260205f20906020601f840160051c83019310611eb0575b601f0160051c01905b818110611ea5575050565b5f8155600101611e9a565b9091508190611e91565b601f8111611ec6575050565b600e5f5260205f20906020601f840160051c83019310611f00575b601f0160051c01905b818110611ef5575050565b5f8155600101611eea565b9091508190611ee1565b60405190611f1782610fd8565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611f708360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198103611f80575b50505050565b81811061203f5782156120135773ffffffffffffffffffffffffffffffffffffffff841615611fe757611fdd925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611f7a565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b919073ffffffffffffffffffffffffffffffffffffffff8316156122f05773ffffffffffffffffffffffffffffffffffffffff81168015610762577f0000000000000000000000000000000000000000000000000000000001863bc443106120f4575b5061104992612f64565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d934a165929334adcf323539cdaaa54f53f02f0d1681149081156122b0575b8115612270575b8115612230575b8115612224575b81156121e4575b50158061218b575b612163575f6120ea565b7f2ce93b59000000000000000000000000000000000000000000000000000000005f5260045ffd5b506121bd826121b78373ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b546126df565b7f000000000000000000000000000000000000000006765c793fa10079d000000010612159565b905073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000042eaeab82aa880d4e4a753a193604d5fd25e86bd16145f612151565b61dead8114915061214a565b7f000000000000000000000000e769d832934f0a196a25e5c7b69cdf1920bc773473ffffffffffffffffffffffffffffffffffffffff1681149150612143565b7f00000000000000000000000026140e343d0911921042919ccc4df5cdc92920ef73ffffffffffffffffffffffffffffffffffffffff168114915061213c565b7f000000000000000000000000df54a0eb3c3ef1a99355fb5f739d040cd74a4a4c73ffffffffffffffffffffffffffffffffffffffff1681149150612135565b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b9073ffffffffffffffffffffffffffffffffffffffff8216156122f0577f0000000000000000000000000000000000000000000000000000000001863bc4431061236b575b5f61104992612f64565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000d934a165929334adcf323539cdaaa54f53f02f0d16158015612514575b80156124d6575b8015612498575b8015612491575b8015612453575b15806123fa575b15612361577f2ce93b59000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f80805260205261242c817fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb56121b7565b7f000000000000000000000000000000000000000006765c793fa10079d0000000106123cd565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000042eaeab82aa880d4e4a753a193604d5fd25e86bd16156123c6565b505f6123bf565b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000e769d832934f0a196a25e5c7b69cdf1920bc773416156123b8565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000026140e343d0911921042919ccc4df5cdc92920ef16156123b1565b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000df54a0eb3c3ef1a99355fb5f739d040cd74a4a4c16156123aa565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000002a86a5a69f3f00a1e5f0dae682e750fa7cb9573916301480612652575b156125ba577f271583cf6b56a5e4ec26d7b8fce2a8ac6d3c323425eb913aeb383c3406b5f77790565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527fdf83ba13abb6944253834b10ba0792ca72edebcfab31d5986ace17f00f78570f60408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a0815261264c60c082610ff9565b51902090565b507f00000000000000000000000000000000000000000000000000000000000012374614612591565b65ffffffffffff81116126935765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b905f198201918211610f7857565b9060018201809211610f7857565b91908201809211610f7857565b908154905f82916005841161272a575b612707935084612aef565b806127125750505f90565b61271b906126c3565b905f5260205f20015460301c90565b91926127358161297a565b8103908111610f785761270793855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f1461276b5750916126fc565b929150612777906126d1565b906126fc565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255611049969416946128279390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b91612b53565b80548061283a5750505f90565b805f19810111610f78575f19915f5260205f2001015460301c90565b604290612861612552565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161046a939161157e93612d8a565b73ffffffffffffffffffffffffffffffffffffffff169081156120135773ffffffffffffffffffffffffffffffffffffffff8116928315611fe757806129367f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b811561294d570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561046a57806001700100000000000000000000000000000000831015612aad575b612a53612a49612a3f612a35612a2b612a21612a10612a5a9760048a68010000000000000000612a5f9c1015612aa0575b640100000000811015612a93575b62010000811015612a86575b610100811015612a79575b6010811015612a6c575b1015612a64575b60030260011c90565b612a1a818b612943565b0160011c90565b612a1a818a612943565b612a1a8189612943565b612a1a8188612943565b612a1a8187612943565b612a1a8186612943565b8093612943565b821190565b900390565b60011b612a07565b60041c9160021b91612a00565b60081c9160041b916129f6565b60101c9160081b916129eb565b60201c9160101b916129df565b60401c9160201b916129d1565b5050612a5f612a5a612a53612a49612a3f612a35612a2b612a21612a10612ad48a60801c90565b98506801000000000000000097506129a09650505050505050565b91905b838210612aff5750505090565b9091928083169080841860011c8201809211610f7857845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f14612b415750925b9190612af2565b939250612b4d906126d1565b91612b3a565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612cd1575b612b9b575b5050505050565b81612c4e575b505082612bb0575b8080612b94565b612c43612c2a7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72493612c24612c1e79ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91613139565b9061320d565b6040805192851683529316602082015291829190820190565b0390a25f8080612ba9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff612cc7612c2a612cb87fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b612cc188613139565b906131a9565b0390a25f80612ba1565b50831515612b8f565b60ff8114612d395760ff811690601f8211612d115760405191612cfe604084610ff9565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161046a81612d4c816005611dca565b0382610ff9565b60ff8114612d775760ff811690601f8211612d115760405191612cfe604084610ff9565b5060405161046a81612d4c816006611dca565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612e19579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612e0e575f5173ffffffffffffffffffffffffffffffffffffffff811615612e0457905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60041115612e2e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b612e6481612e24565b80612e6d575050565b612e7681612e24565b60018103612ea6577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612eaf81612e24565b60028103612ee357507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612eef600392612e24565b14612ef75750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612f37575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416801590811561309057612f9b612f96856002546126df565b600255565b73ffffffffffffffffffffffffffffffffffffffff8316908161305e57612fc58560025403600255565b6040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3613000575b61104992936132ce565b6002549379ffffffffffffffffffffffffffffffffffffffffffffffffffff80861161302e57509350612ff6565b7f1cb15d26000000000000000000000000000000000000000000000000000000005f52600486905260245260445ffd5b6130858473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b858154019055612fc5565b6130b78673ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548481106130ef578490036130e98773ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55612f9b565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8716600452602452604484905260645ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff81116131795779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b906131b34361267b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff806131d98561282d565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610f785761320992613497565b9091565b906132174361267b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff8061323d8561282d565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610f785761320992613497565b6132764361267b565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff8061329d600a61282d565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610f785761320991600a613497565b90919073ffffffffffffffffffffffffffffffffffffffff168015613373575b73ffffffffffffffffffffffffffffffffffffffff611049931690811561335b575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f20541690612b53565b61336c61336784613139565b61326d565b5050613310565b61337c82613139565b926133864361267b565b9379ffffffffffffffffffffffffffffffffffffffffffffffffffff806133ad600a61282d565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610f78576110499473ffffffffffffffffffffffffffffffffffffffff926133f991600a613497565b9050509350506132ee565b805468010000000000000000811015610ff45761342691600182018155612f22565b61346b5781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b8054929392801561358d576134ae6134b9916126c3565b825f5260205f200190565b8054603081901c9365ffffffffffff918216929181168084116135655787930361351e575061351a92509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b91505061351a9161353e61353061103a565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152613404565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b50906135c59161359e61353061103a565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152613404565b5f919056fea2646970667358221220ec07f4fd550e9311d609bf16945be4c31e8bcb4aef279e2536f504773b75e3be64736f6c634300081c0033
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xbc23bb…4ee493 | 12 days agoMon, 03 Aug 2026 17:04:36 UTC | Approval | [0] 0x000000000000…97800c72 [1] 0x000000000000…172bb7fe data: 0x000000000000000000…00000000 |
| 0xb26943…5421d6 | 19 days agoMon, 27 Jul 2026 16:15:51 UTC | Transfer | [0] 0x000000000000…d74a4a4c [1] 0x000000000000…d25e86bd data: 0x000000000000000000…524de50c |
| 0xb26943…5421d6 | 19 days agoMon, 27 Jul 2026 16:15:51 UTC | Transfer | [0] 0x000000000000…d74a4a4c [1] 0x000000000000…87b737b1 data: 0x000000000000000000…1b6f4c5a |
| 0xb26943…5421d6 | 19 days agoMon, 27 Jul 2026 16:15:51 UTC | Transfer | [0] 0x000000000000…d74a4a4c [1] 0x000000000000…589b522d data: 0x000000000000000000…1b6f4c59 |
| 0xb26943…5421d6 | 19 days agoMon, 27 Jul 2026 16:15:51 UTC | Transfer | [0] 0x000000000000…53f02f0d [1] 0x000000000000…d74a4a4c data: 0x000000000000000000…892c7dbf |
| 0xdbdbff…72f189 | 21 days agoSat, 25 Jul 2026 04:59:59 UTC | Transfer | [0] 0x000000000000…c8aebb4f [1] 0x000000000000…53f02f0d data: 0x000000000000000000…cae0e66c |
| 0xdbdbff…72f189 | 21 days agoSat, 25 Jul 2026 04:59:59 UTC | Transfer | [0] 0x000000000000…c4fad049 [1] 0x000000000000…c8aebb4f data: 0x000000000000000000…cae0e66c |
| 0x3524ba…3bf538 | 21 days agoSat, 25 Jul 2026 04:59:58 UTC | Approval | [0] 0x000000000000…c4fad049 [1] 0x000000000000…f6797d6d data: 0xffffffffffffffffff…ffffffff |
| 0xe115b9…4fe8ec | 21 days agoSat, 25 Jul 2026 04:59:57 UTC | Approval | [0] 0x000000000000…c4fad049 [1] 0x000000000000…db8c0904 data: 0xffffffffffffffffff…ffffffff |
| 0xd599e1…669822 | 21 days agoSat, 25 Jul 2026 04:59:53 UTC | Approval | [0] 0x000000000000…c4fad049 [1] 0x000000000000…e1a4f53d data: 0xffffffffffffffffff…ffffffff |
| 0xf654b9…d272e2 | 21 days agoSat, 25 Jul 2026 04:59:51 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…c4fad049 data: 0x000000000000000000…c82f50fd |
| 0x810caa…42cd89 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Transfer | [0] 0x000000000000…a35fb424 [1] 0x000000000000…53f02f0d data: 0x000000000000000000…932cf0ed |
| 0x05770d…5d6ad5 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Transfer | [0] 0x000000000000…28cf5ea2 [1] 0x000000000000…53f02f0d data: 0x000000000000000000…b93d755f |
| 0xbf783e…096623 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Transfer | [0] 0x000000000000…725599c7 [1] 0x000000000000…53f02f0d data: 0x000000000000000000…34d73e99 |
| 0x126a14…fbcdac | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Transfer | [0] 0x000000000000…7cfc3264 [1] 0x000000000000…53f02f0d data: 0x000000000000000000…11f1630a |
| 0x759936…aeb63d | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Approval | [0] 0x000000000000…725599c7 [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0x251682…572b34 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Approval | [0] 0x000000000000…a35fb424 [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0x7e01f8…5a3a10 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Approval | [0] 0x000000000000…7cfc3264 [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0x00f947…a32eea | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | Approval | [0] 0x000000000000…28cf5ea2 [1] 0x000000000000…262c40dc data: 0xffffffffffffffffff…ffffffff |
| 0xaba2c9…43eff7 | 26 days agoMon, 20 Jul 2026 15:44:26 UTC | Approval | [0] 0x000000000000…56ed5580 [1] 0x000000000000…262c40dc data: 0x000000000000000000…00000000 |
| 0xad9ab7…b784b5 | 26 days agoMon, 20 Jul 2026 15:43:32 UTC | Approval | [0] 0x000000000000…3756ca57 [1] 0x000000000000…262c40dc data: 0x000000000000000000…00000000 |
| 0x6a93ab…71a529 | 26 days agoMon, 20 Jul 2026 13:15:11 UTC | Transfer | [0] 0x000000000000…172bb7fe [1] 0x000000000000…53f02f0d data: 0x000000000000000000…171e6427 |
| 0x6a93ab…71a529 | 26 days agoMon, 20 Jul 2026 13:15:11 UTC | Approval | [0] 0x000000000000…172bb7fe [1] 0x000000000000…959e5cb2 data: 0x000000000000000000…171e6427 |
| 0x6a93ab…71a529 | 26 days agoMon, 20 Jul 2026 13:15:11 UTC | Transfer | [0] 0x000000000000…19bf0a3b [1] 0x000000000000…172bb7fe data: 0x000000000000000000…171e6427 |
| 0xcd0bab…d24ee7 | 26 days agoMon, 20 Jul 2026 13:14:12 UTC | Transfer | [0] 0x000000000000…172bb7fe [1] 0x000000000000…53f02f0d data: 0x000000000000000000…fdc1859f |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xc80e1807…1ebf55 | Transfer | 18,494,126 | 21 days agoFri, 24 Jul 2026 22:05:06 UTC | 0xcaf7…5d11 | IN | 0x2a86…5739 | $0.001 DIH |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xbc23bb…4ee493 | Approve | 26,927,739 | 12 days agoMon, 03 Aug 2026 17:04:36 UTC | 0xd14d…0c72 | IN | Launch on Trencher | $0.000 ETH | 0.00000049 | |
| 0x3524ba…3bf538 | Approve | 18,742,121 | 21 days agoSat, 25 Jul 2026 04:59:58 UTC | 0xff0f…d049 | IN | Launch on Trencher | $0.000 ETH | 0.00000448 | |
| 0xe115b9…4fe8ec | Approve | 18,742,113 | 21 days agoSat, 25 Jul 2026 04:59:57 UTC | 0xff0f…d049 | IN | Launch on Trencher | $0.000 ETH | 0.00000448 | |
| 0xd599e1…669822 | Approve | 18,742,067 | 21 days agoSat, 25 Jul 2026 04:59:53 UTC | 0xff0f…d049 | IN | Launch on Trencher | $0.000 ETH | 0.00000448 | |
| 0x00f947…a32eea | Approve | 14,899,113 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | 0x48f0…5ea2 | IN | Launch on Trencher | $0.000 ETH | 0.00000246 | |
| 0x7e01f8…5a3a10 | Approve | 14,899,113 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | 0xbc21…3264 | IN | Launch on Trencher | $0.000 ETH | 0.00000246 | |
| 0x759936…aeb63d | Approve | 14,899,113 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | 0x608e…99c7 | IN | Launch on Trencher | $0.000 ETH | 0.00000246 | |
| 0x251682…572b34 | Approve | 14,899,113 | 26 days agoMon, 20 Jul 2026 17:59:05 UTC | 0xd73c…b424 | IN | Launch on Trencher | $0.000 ETH | 0.00000246 | |
| 0xaba2c9…43eff7 | Approve | 14,818,431 | 26 days agoMon, 20 Jul 2026 15:44:26 UTC | 0x9f9c…5580 | IN | Launch on Trencher | $0.000 ETH | 0.00000126 | |
| 0xad9ab7…b784b5 | Approve | 14,817,901 | 26 days agoMon, 20 Jul 2026 15:43:32 UTC | 0x863e…ca57 | IN | Launch on Trencher | $0.000 ETH | 0.00000125 | |
| 0x159e3c…1ca3b2 | Approve | 14,728,406 | 26 days agoMon, 20 Jul 2026 13:14:05 UTC | 0xf4f8…7ab2 | IN | Launch on Trencher | $0.000 ETH | 0.00000231 | |
| 0x3a4343…d52e21 | Approve | 14,728,285 | 26 days agoMon, 20 Jul 2026 13:13:53 UTC | 0x9ff4…c1f4 | IN | Launch on Trencher | $0.000 ETH | 0.00000231 | |
| 0xfd11e7…0573e3 | Approve | 14,724,349 | 26 days agoMon, 20 Jul 2026 13:07:18 UTC | 0x4b9d…7b60 | IN | Launch on Trencher | $0.000 ETH | 0.00000230 | |
| 0x3af67c…b9aa11 | Approve | 14,721,799 | 26 days agoMon, 20 Jul 2026 13:03:02 UTC | 0xd255…b97b | IN | Launch on Trencher | $0.000 ETH | 0.00000120 | |
| 0x61f69b…5e914e | Approve | 14,721,463 | 26 days agoMon, 20 Jul 2026 13:02:28 UTC | 0x06cf…3fc5 | IN | Launch on Trencher | $0.000 ETH | 0.00000233 | |
| 0x4b5532…afb7ff | Approve | 14,721,248 | 26 days agoMon, 20 Jul 2026 13:02:07 UTC | 0x0d4c…8888 | IN | Launch on Trencher | $0.000 ETH | 0.00000231 | |
| 0x1fa8d5…09daaf | Approve | 14,720,911 | 26 days agoMon, 20 Jul 2026 13:01:33 UTC | 0xcde9…5143 | IN | Launch on Trencher | $0.000 ETH | 0.00000231 | |
| 0xaa8d1b…ad6039 | Approve | 14,719,927 | 26 days agoMon, 20 Jul 2026 12:59:54 UTC | 0x39d8…7099 | IN | Launch on Trencher | $0.000 ETH | 0.00000231 | |
| 0x2332b1…aabb69 | Approve | 14,719,686 | 26 days agoMon, 20 Jul 2026 12:59:30 UTC | 0x2372…c3cf | IN | Launch on Trencher | $0.000 ETH | 0.00000232 | |
| 0xb1a282…0efc83 | Approve | 14,719,527 | 26 days agoMon, 20 Jul 2026 12:59:14 UTC | 0x8f89…5945 | IN | Launch on Trencher | $0.000 ETH | 0.00000232 | |
| 0x751056…d0b39f | Approve | 14,719,489 | 26 days agoMon, 20 Jul 2026 12:59:10 UTC | 0x8bfe…01e3 | IN | Launch on Trencher | $0.000 ETH | 0.00000230 | |
| 0xfc5df6…b3f4c1 | Approve | 14,719,426 | 26 days agoMon, 20 Jul 2026 12:59:03 UTC | 0xa761…fd80 | IN | Launch on Trencher | $0.000 ETH | 0.00000232 | |
| 0x9a580b…7679f4 | Approve | 14,719,070 | 26 days agoMon, 20 Jul 2026 12:58:28 UTC | 0xd255…b97b | IN | Launch on Trencher | $0.000 ETH | 0.00000232 | |
| 0xfd96d8…0e2389 | Approve | 14,719,023 | 26 days agoMon, 20 Jul 2026 12:58:23 UTC | 0xd255…b97b | IN | Launch on Trencher | $0.000 ETH | 0.00000120 | |
| 0x6f1b02…c277f7 | Approve | 14,718,972 | 26 days agoMon, 20 Jul 2026 12:58:18 UTC | 0x98e4…3c82 | IN | Launch on Trencher | $0.000 ETH | 0.00000231 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 14,714,959 | 26 days agoMon, 20 Jul 2026 12:51:36 UTC | 0xaaad10…d5c91d | CREATE2 | deployToken | 0xe769…7734 | IN | 0x2a86…5739 | 0 ETH |