ETH Price: $1,866.55 (+0.09%)Gas: GweiBase: 0.0000 GweiPriority: 0.0000 GweiTotal: 0.0000 Gwei

Address

Kensington(EIKNXYHOYN)0xc7cc33780dc5e556598a08c6d967fb8853d6fb07
Overview
ETH Balance
0 ETH
ETH Value
$0.00 (@ $1,867/ETH)
Token Holdings
More Info
Private Name Tags
Token Tracker
Transactions Sent
Additional Info
Funded By
Token Approvals
TransactionsInternal TransactionsToken Transfers (ERC-20)NFT TransfersOther TransactionsAnalyticsAssetsHoldersCardsInfo
✓ VerifiedExact MatchKensington⤢ Open full
Contract Name
ClankerToken (Kensington)
Compiler
solidity · v0.8.28+commit.7893614a
Optimization
Yes · 20000 runs
EVM Version
cancun
Source
Mirrored from Robinhood Chain explorer
Contract Source Code
Outline
C ClankerToken
ƒ updateAdmin
ƒ updateImage
ƒ updateMetadata
ƒ _update
ƒ verify
ƒ isVerified
ƒ nonces
ƒ admin
ƒ originalAdmin
ƒ imageUrl
ƒ metadata
ƒ context
ƒ allData
ƒ supportsInterface
ClankerToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

import {IERC165} from "@openzeppelin/contracts/interfaces/IERC165.sol";
import {IERC5805} from "@openzeppelin/contracts/interfaces/IERC5805.sol";
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";

import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
import {ERC20Votes} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";

import {Nonces} from "@openzeppelin/contracts/utils/Nonces.sol";

/*
 .--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--. 
/ .. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \
\ \/\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ \/ /
 \/ /`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'\/ / 
 / /\  ````````````````````````````````````````````````````````````````````````````````````  / /\ 
/ /\ \ ```````````````````````````````````````````````````````````````````````````````````` / /\ \
\ \/ / ```````::::::::``:::````````````:::`````::::````:::`:::````:::`::::::::::`:::::::::` \ \/ /
 \/ /  `````:+:````:+:`:+:``````````:+:`:+:```:+:+:```:+:`:+:```:+:``:+:````````:+:````:+:`  \/ / 
 / /\  ````+:+````````+:+`````````+:+```+:+``:+:+:+``+:+`+:+``+:+```+:+````````+:+````+:+``  / /\ 
/ /\ \ ```+#+````````+#+````````+#++:++#++:`+#+`+:+`+#+`+#++:++````+#++:++#```+#++:++#:```` / /\ \
\ \/ / ``+#+````````+#+````````+#+`````+#+`+#+``+#+#+#`+#+``+#+```+#+````````+#+````+#+```` \ \/ /
 \/ /  `#+#````#+#`#+#````````#+#`````#+#`#+#```#+#+#`#+#```#+#``#+#````````#+#````#+#`````  \/ / 
 / /\  `########``##########`###`````###`###````####`###````###`##########`###````###``````  / /\ 
/ /\ \ ```````````````````````````````````````````````````````````````````````````````````` / /\ \
\ \/ / ```````````````````````````````````````````````````````````````````````````````````` \ \/ /
 \/ /  ````````````````````````````````````````````````````````````````````````````````````  \/ / 
 / /\.--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--..--./ /\ 
/ /\ \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \.. \/\ \
\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `'\ `' /
 `--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--'`--' 
*/

contract ClankerToken is ERC20, ERC20Permit, ERC20Votes, ERC20Burnable {
    error NotAdmin();
    error NotOriginalAdmin();
    error AlreadyVerified();

    address private immutable _originalAdmin;
    address private _admin;
    string private _metadata;
    string private _context;
    string private _image;

    bool private _verified;

    event Verified(address indexed admin, address indexed token);
    event UpdateImage(string image);
    event UpdateMetadata(string metadata);
    event UpdateAdmin(address indexed oldAdmin, address indexed newAdmin);

    constructor(
        string memory name_,
        string memory symbol_,
        uint256 maxSupply_,
        address admin_,
        string memory image_,
        string memory metadata_,
        string memory context_,
        uint256 initialSupplyChainId_
    ) ERC20(name_, symbol_) ERC20Permit(name_) {
        _originalAdmin = admin_;
        _admin = admin_;
        _image = image_;
        _metadata = metadata_;
        _context = context_;

        // Only mint initial supply on a single chain
        if (block.chainid == initialSupplyChainId_) {
            _mint(msg.sender, maxSupply_);
        }
    }

    function updateAdmin(address admin_) external {
        if (msg.sender != _admin) {
            revert NotAdmin();
        }
        address oldAdmin = _admin;
        _admin = admin_;
        emit UpdateAdmin(oldAdmin, admin_);
    }

    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_);
    }

    function _update(address from, address to, uint256 value)
        internal
        override(ERC20, ERC20Votes)
    {
        super._update(from, to, value);
    }

    function verify() external {
        if (msg.sender != _originalAdmin) {
            revert NotOriginalAdmin();
        }
        if (_verified) {
            revert AlreadyVerified();
        }
        _verified = true;
        emit Verified(msg.sender, address(this));
    }

    function isVerified() external view returns (bool) {
        return _verified;
    }

    function nonces(address owner) public view override(ERC20Permit, Nonces) returns (uint256) {
        return super.nonces(owner);
    }

    function admin() external view returns (address) {
        return _admin;
    }

    function originalAdmin() external view returns (address) {
        return _originalAdmin;
    }

    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;
    }

    // convenience function to get all data in one call
    function allData()
        external
        view
        returns (
            address originalAdmin,
            address admin,
            string memory image,
            string memory metadata,
            string memory context
        )
    {
        return (_originalAdmin, _admin, _image, _metadata, _context);
    }

    function supportsInterface(bytes4 _interfaceId) public pure returns (bool) {
        return _interfaceId == type(IERC20).interfaceId || _interfaceId == type(IERC165).interfaceId
            || _interfaceId == type(IERC5805).interfaceId;
    }
}
Contract ABI
[
 {
  "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"
   }
  ],
  "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": "InvalidShortString",
  "type": "error",
  "inputs": []
 },
 {
  "name": "NotAdmin",
  "type": "error",
  "inputs": []
 },
 {
  "name": "NotOriginalAdmin",
  "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": "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": "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": "UpdateAdmin",
  "type": "event",
  "inputs": [
   {
    "name": "oldAdmin",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   },
   {
    "name": "newAdmin",
    "type": "address",
    "indexed": true,
    "internalType": "address"
   }
  ],
  "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": "DOMAIN_SEPARATOR",
  "type": "function",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bytes32",
    "internalType": "bytes32"
   }
  ],
  "stateMutability": "view"
 },
 {
  "name": "admin",
  "type": "function",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "stateMutability": "view"
 },
 {
  "name": "allData",
  "type": "function",
  "inputs": [],
  "outputs": [
   {
    "name": "originalAdmin",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "admin",
    "type": "address",
    "internalType": "address"
   },
   {
    "name": "image",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "metadata",
    "type": "string",
    "internalType": "string"
   },
   {
    "name": "context",
    "type": "string",
    "internalType": "string"
   }
  ],
  "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": "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": "isVerified",
  "type": "function",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "bool",
    "internalType": "bool"
   }
  ],
  "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": "originalAdmin",
  "type": "function",
  "inputs": [],
  "outputs": [
   {
    "name": "",
    "type": "address",
    "internalType": "address"
   }
  ],
  "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": "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": "updateAdmin",
  "type": "function",
  "inputs": [
   {
    "name": "admin_",
    "type": "address",
    "internalType": "address"
   }
  ],
  "outputs": [],
  "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": "verify",
  "type": "function",
  "inputs": [],
  "outputs": [],
  "stateMutability": "nonpayable"
 }
]
Creation code isn’t shown — this contract was deployed by a factory (internal CREATE), so it has no standalone creation transaction.
A wallet address is a publicly available address that allows its owner to receive funds from another party. To access the funds in an address, you must have its private key.