// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
// Minimal self-contained ERC20 with no pause / burn / mint extensions.
// Constructor mints `initialSupply` (in base units) to the deployer.
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address from, address to, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract SimpleToken is IERC20 {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
uint8 private _decimals;
// ERC-1046 metadata pointer. It MUST resolve to JSON; a bare image URI is invalid.
// It may be a hosted URI (https/ipfs) or an on-chain data:application/json URI.
string public tokenURI;
// Permissioned only over tokenURI updates; has no power over transfers, supply, etc.
// Set to address(0) by renounceMetadataOwner() to permanently freeze metadata.
address public metadataOwner;
event TokenURIUpdated(address indexed by, string oldURI, string newURI);
// ERC-7572 event used by off-chain indexers to refresh contract metadata.
event ContractURIUpdated();
event MetadataOwnerTransferred(address indexed from, address indexed to);
constructor(
string memory name_,
string memory symbol_,
uint8 decimals_,
uint256 initialSupply,
string memory tokenURI_
) {
_name = name_;
_symbol = symbol_;
_decimals = decimals_;
tokenURI = tokenURI_;
metadataOwner = msg.sender;
_totalSupply = initialSupply;
_balances[msg.sender] = initialSupply;
emit Transfer(address(0), msg.sender, initialSupply);
emit MetadataOwnerTransferred(address(0), msg.sender);
emit ContractURIUpdated();
}
function setTokenURI(string calldata newURI) external {
require(msg.sender == metadataOwner, "not metadata owner");
string memory old = tokenURI;
tokenURI = newURI;
emit TokenURIUpdated(msg.sender, old, newURI);
emit ContractURIUpdated();
}
// ERC-7572 contract-level metadata alias. The ERC-1046 and ERC-7572 JSON
// schemas overlap on name/symbol/description/image, so both point to the
// same canonical document.
function contractURI() external view returns (string memory) {
return tokenURI;
}
function transferMetadataOwner(address newOwner) external {
require(msg.sender == metadataOwner, "not metadata owner");
emit MetadataOwnerTransferred(metadataOwner, newOwner);
metadataOwner = newOwner;
}
function renounceMetadataOwner() external {
require(msg.sender == metadataOwner, "not metadata owner");
emit MetadataOwnerTransferred(metadataOwner, address(0));
metadataOwner = address(0);
}
function name() external view returns (string memory) { return _name; }
function symbol() external view returns (string memory) { return _symbol; }
function decimals() external view returns (uint8) { return _decimals; }
function totalSupply() external view returns (uint256) { return _totalSupply; }
function balanceOf(address account) external view returns (uint256) { return _balances[account]; }
function allowance(address owner, address spender) external view returns (uint256) {
return _allowances[owner][spender];
}
function transfer(address to, uint256 amount) external returns (bool) {
_transfer(msg.sender, to, amount);
return true;
}
function approve(address spender, uint256 amount) external returns (bool) {
_approve(msg.sender, spender, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) external returns (bool) {
uint256 current = _allowances[from][msg.sender];
if (current != type(uint256).max) {
require(current >= amount, "ERC20: insufficient allowance");
unchecked { _approve(from, msg.sender, current - amount); }
}
_transfer(from, to, amount);
return true;
}
function _transfer(address from, address to, uint256 amount) internal {
require(from != address(0), "ERC20: from zero");
require(to != address(0), "ERC20: to zero");
uint256 bal = _balances[from];
require(bal >= amount, "ERC20: balance");
unchecked { _balances[from] = bal - amount; }
_balances[to] += amount;
emit Transfer(from, to, amount);
}
function _approve(address owner, address spender, uint256 amount) internal {
require(owner != address(0), "ERC20: approve from zero");
require(spender != address(0), "ERC20: approve to zero");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "decimals_",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "initialSupply",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenURI_",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "nonpayable"
},
{
"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": "ContractURIUpdated",
"type": "event",
"inputs": [],
"anonymous": false
},
{
"name": "MetadataOwnerTransferred",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "TokenURIUpdated",
"type": "event",
"inputs": [
{
"name": "by",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "oldURI",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "newURI",
"type": "string",
"indexed": false,
"internalType": "string"
}
],
"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": "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": "amount",
"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": "contractURI",
"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": "metadataOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "renounceMetadataOwner",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTokenURI",
"type": "function",
"inputs": [
{
"name": "newURI",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "tokenURI",
"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": "amount",
"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": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferMetadataOwner",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
}
]0x608060405234801561000f575f80fd5b5060405161104e38038061104e83398101604081905261002e916101b9565b600361003a86826102ec565b50600461004785826102ec565b506005805460ff191660ff8516179055600661006382826102ec565b50600780546001600160a01b0319163390811790915560028390555f81815260208181526040808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a360405133905f907f7ce1d7c092838451af7bf8d01b5557a9734958a81f1575787e939db386a08a78908290a36040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a150505050506103a6565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261013f575f80fd5b81516001600160401b038111156101585761015861011c565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101865761018661011c565b60405281815283820160200185101561019d575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f805f60a086880312156101cd575f80fd5b85516001600160401b038111156101e2575f80fd5b6101ee88828901610130565b602088015190965090506001600160401b0381111561020b575f80fd5b61021788828901610130565b945050604086015160ff8116811461022d575f80fd5b6060870151608088015191945092506001600160401b0381111561024f575f80fd5b61025b88828901610130565b9150509295509295909350565b600181811c9082168061027c57607f821691505b60208210810361029a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156102e757805f5260205f20601f840160051c810160208510156102c55750805b601f840160051c820191505b818110156102e4575f81556001016102d1565b50505b505050565b81516001600160401b038111156103055761030561011c565b610319816103138454610268565b846102a0565b6020601f82116001811461034b575f83156103345750848201515b5f19600385901b1c1916600184901b1784556102e4565b5f84815260208120601f198516915b8281101561037a578785015182556020948501946001909201910161035a565b508482101561039757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610c9b806103b35f395ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80633c130d9011610093578063b113c60811610063578063b113c608146101d7578063dd62ed3e14610202578063e0df5b6f1461023a578063e8a3d4851461024d575f80fd5b80633c130d901461018c57806370a082311461019457806395d89b41146101bc578063a9059cbb146101c4575f80fd5b80631f5e8c95116100ce5780631f5e8c951461014757806323b872dd1461015c578063313ce5671461016f5780633a8131dd14610184575f80fd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f80fd5b6100fc610255565b6040516101099190610936565b60405180910390f35b61012561012036600461096a565b6102e5565b6040519015158152602001610109565b6002545b604051908152602001610109565b61015a610155366004610992565b6102fb565b005b61012561016a3660046109ab565b610389565b60055460405160ff9091168152602001610109565b61015a610427565b6100fc61049a565b6101396101a2366004610992565b6001600160a01b03165f9081526020819052604090205490565b6100fc610526565b6101256101d236600461096a565b610535565b6007546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610109565b6101396102103660046109e5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61015a610248366004610a16565b610541565b6100fc61067b565b60606003805461026490610a84565b80601f016020809104026020016040519081016040528092919081815260200182805461029090610a84565b80156102db5780601f106102b2576101008083540402835291602001916102db565b820191905f5260205f20905b8154815290600101906020018083116102be57829003601f168201915b5050505050905090565b5f6102f133848461068a565b5060015b92915050565b6007546001600160a01b0316331461032e5760405162461bcd60e51b815260040161032590610abc565b60405180910390fd5b6007546040516001600160a01b038084169216907f7ce1d7c092838451af7bf8d01b5557a9734958a81f1575787e939db386a08a78905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461041157828110156104045760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610325565b610411853385840361068a565b61041c85858561078f565b506001949350505050565b6007546001600160a01b031633146104515760405162461bcd60e51b815260040161032590610abc565b6007546040515f916001600160a01b0316907f7ce1d7c092838451af7bf8d01b5557a9734958a81f1575787e939db386a08a78908390a3600780546001600160a01b0319169055565b600680546104a790610a84565b80601f01602080910402602001604051908101604052809291908181526020018280546104d390610a84565b801561051e5780601f106104f55761010080835404028352916020019161051e565b820191905f5260205f20905b81548152906001019060200180831161050157829003601f168201915b505050505081565b60606004805461026490610a84565b5f6102f133848461078f565b6007546001600160a01b0316331461056b5760405162461bcd60e51b815260040161032590610abc565b5f6006805461057990610a84565b80601f01602080910402602001604051908101604052809291908181526020018280546105a590610a84565b80156105f05780601f106105c7576101008083540402835291602001916105f0565b820191905f5260205f20905b8154815290600101906020018083116105d357829003601f168201915b50505050509050828260069182610608929190610b48565b50336001600160a01b03167f22090b20e2ba67864c24a22f4bc04ef589e7ff229dec1fec0b896fbc74d6313f82858560405161064693929190610c02565b60405180910390a26040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a1505050565b60606006805461026490610a84565b6001600160a01b0383166106e05760405162461bcd60e51b815260206004820152601860248201527f45524332303a20617070726f76652066726f6d207a65726f00000000000000006044820152606401610325565b6001600160a01b03821661072f5760405162461bcd60e51b815260206004820152601660248201527545524332303a20617070726f766520746f207a65726f60501b6044820152606401610325565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107d85760405162461bcd60e51b815260206004820152601060248201526f45524332303a2066726f6d207a65726f60801b6044820152606401610325565b6001600160a01b03821661081f5760405162461bcd60e51b815260206004820152600e60248201526d45524332303a20746f207a65726f60901b6044820152606401610325565b6001600160a01b0383165f90815260208190526040902054818110156108785760405162461bcd60e51b815260206004820152600e60248201526d45524332303a2062616c616e636560901b6044820152606401610325565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906108ae908490610c46565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108fa91815260200190565b60405180910390a350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109486020830184610908565b9392505050565b80356001600160a01b0381168114610965575f80fd5b919050565b5f806040838503121561097b575f80fd5b6109848361094f565b946020939093013593505050565b5f602082840312156109a2575f80fd5b6109488261094f565b5f805f606084860312156109bd575f80fd5b6109c68461094f565b92506109d46020850161094f565b929592945050506040919091013590565b5f80604083850312156109f6575f80fd5b6109ff8361094f565b9150610a0d6020840161094f565b90509250929050565b5f8060208385031215610a27575f80fd5b823567ffffffffffffffff811115610a3d575f80fd5b8301601f81018513610a4d575f80fd5b803567ffffffffffffffff811115610a63575f80fd5b856020828401011115610a74575f80fd5b6020919091019590945092505050565b600181811c90821680610a9857607f821691505b602082108103610ab657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601290820152713737ba1036b2ba30b230ba309037bbb732b960711b604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b601f821115610b4357805f5260205f20601f840160051c81016020851015610b215750805b601f840160051c820191505b81811015610b40575f8155600101610b2d565b50505b505050565b67ffffffffffffffff831115610b6057610b60610ae8565b610b7483610b6e8354610a84565b83610afc565b5f601f841160018114610ba5575f8515610b8e5750838201355b5f19600387901b1c1916600186901b178355610b40565b5f83815260208120601f198716915b82811015610bd45786850135825560209485019460019092019101610bb4565b5086821015610bf0575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081525f610c146040830186610908565b8281036020840152838152838560208301375f602085830101526020601f19601f860116820101915050949350505050565b808201808211156102f557634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d259bceb84e664bc78250f5abfecd2debc33d05fca4b066eb961f7d2ee2e74864736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000052b7d2dcc80cd2e4000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000045465737400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000754455354494553000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000281646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c65794a70626e526c636d3977496a7037496d5679597a45774e4459694f6e5279645756394c434a755957316c496a6f695647567a64434973496e4e3562574a7662434936496c52465531524a52564d694c434a6b5a574e7062574673637949364d546773496d6c745957646c496a6f696148523063484d364c79397a59324679624756304c57526c5a6d56686447566b4c57313163327476654330334f44517562586c77615735686447457559327876645751766158426d6379396959575a72636d567061487031616a646c637a647a656a5532626e6c69636d51795a48647a4e6d78304e486c6a64336c6f64323969656d5a30616d686a596d5a6a4e573178646e56315a6d357a62534973496d6c745957646c6379493657794a6f64485277637a6f764c334e6a59584a735a5851745a47566d5a5746305a5751746258567a613239344c5463344e43357465584270626d46305953356a624739315a43397063475a7a4c324a685a6d74795a576c6f656e56714e32567a4e334e364e545a7565574a795a444a6b64334d326248513065574e336557683362324a365a6e527161474e695a6d4d31625846326458566d626e4e74496c3073496d6c6a6232357a496a7062496d68306448427a4f69387663324e68636d786c6443316b5a575a6c5958526c5a43317464584e72623367744e7a67304c6d313563476c75595852684c6d4e736233566b4c326c775a6e4d76596d466d61334a6c6157683664576f335a584d3363336f314e6d3535596e4a6b4d6d5233637a5a73644452355933643561486476596e706d6447706f59324a6d597a567463585a3164575a75633230695858303d00000000000000000000000000000000000000000000000000000000000000
0x608060405234801561000f575f80fd5b50600436106100f0575f3560e01c80633c130d9011610093578063b113c60811610063578063b113c608146101d7578063dd62ed3e14610202578063e0df5b6f1461023a578063e8a3d4851461024d575f80fd5b80633c130d901461018c57806370a082311461019457806395d89b41146101bc578063a9059cbb146101c4575f80fd5b80631f5e8c95116100ce5780631f5e8c951461014757806323b872dd1461015c578063313ce5671461016f5780633a8131dd14610184575f80fd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f80fd5b6100fc610255565b6040516101099190610936565b60405180910390f35b61012561012036600461096a565b6102e5565b6040519015158152602001610109565b6002545b604051908152602001610109565b61015a610155366004610992565b6102fb565b005b61012561016a3660046109ab565b610389565b60055460405160ff9091168152602001610109565b61015a610427565b6100fc61049a565b6101396101a2366004610992565b6001600160a01b03165f9081526020819052604090205490565b6100fc610526565b6101256101d236600461096a565b610535565b6007546101ea906001600160a01b031681565b6040516001600160a01b039091168152602001610109565b6101396102103660046109e5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61015a610248366004610a16565b610541565b6100fc61067b565b60606003805461026490610a84565b80601f016020809104026020016040519081016040528092919081815260200182805461029090610a84565b80156102db5780601f106102b2576101008083540402835291602001916102db565b820191905f5260205f20905b8154815290600101906020018083116102be57829003601f168201915b5050505050905090565b5f6102f133848461068a565b5060015b92915050565b6007546001600160a01b0316331461032e5760405162461bcd60e51b815260040161032590610abc565b60405180910390fd5b6007546040516001600160a01b038084169216907f7ce1d7c092838451af7bf8d01b5557a9734958a81f1575787e939db386a08a78905f90a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19811461041157828110156104045760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610325565b610411853385840361068a565b61041c85858561078f565b506001949350505050565b6007546001600160a01b031633146104515760405162461bcd60e51b815260040161032590610abc565b6007546040515f916001600160a01b0316907f7ce1d7c092838451af7bf8d01b5557a9734958a81f1575787e939db386a08a78908390a3600780546001600160a01b0319169055565b600680546104a790610a84565b80601f01602080910402602001604051908101604052809291908181526020018280546104d390610a84565b801561051e5780601f106104f55761010080835404028352916020019161051e565b820191905f5260205f20905b81548152906001019060200180831161050157829003601f168201915b505050505081565b60606004805461026490610a84565b5f6102f133848461078f565b6007546001600160a01b0316331461056b5760405162461bcd60e51b815260040161032590610abc565b5f6006805461057990610a84565b80601f01602080910402602001604051908101604052809291908181526020018280546105a590610a84565b80156105f05780601f106105c7576101008083540402835291602001916105f0565b820191905f5260205f20905b8154815290600101906020018083116105d357829003601f168201915b50505050509050828260069182610608929190610b48565b50336001600160a01b03167f22090b20e2ba67864c24a22f4bc04ef589e7ff229dec1fec0b896fbc74d6313f82858560405161064693929190610c02565b60405180910390a26040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a1505050565b60606006805461026490610a84565b6001600160a01b0383166106e05760405162461bcd60e51b815260206004820152601860248201527f45524332303a20617070726f76652066726f6d207a65726f00000000000000006044820152606401610325565b6001600160a01b03821661072f5760405162461bcd60e51b815260206004820152601660248201527545524332303a20617070726f766520746f207a65726f60501b6044820152606401610325565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107d85760405162461bcd60e51b815260206004820152601060248201526f45524332303a2066726f6d207a65726f60801b6044820152606401610325565b6001600160a01b03821661081f5760405162461bcd60e51b815260206004820152600e60248201526d45524332303a20746f207a65726f60901b6044820152606401610325565b6001600160a01b0383165f90815260208190526040902054818110156108785760405162461bcd60e51b815260206004820152600e60248201526d45524332303a2062616c616e636560901b6044820152606401610325565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906108ae908490610c46565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516108fa91815260200190565b60405180910390a350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6109486020830184610908565b9392505050565b80356001600160a01b0381168114610965575f80fd5b919050565b5f806040838503121561097b575f80fd5b6109848361094f565b946020939093013593505050565b5f602082840312156109a2575f80fd5b6109488261094f565b5f805f606084860312156109bd575f80fd5b6109c68461094f565b92506109d46020850161094f565b929592945050506040919091013590565b5f80604083850312156109f6575f80fd5b6109ff8361094f565b9150610a0d6020840161094f565b90509250929050565b5f8060208385031215610a27575f80fd5b823567ffffffffffffffff811115610a3d575f80fd5b8301601f81018513610a4d575f80fd5b803567ffffffffffffffff811115610a63575f80fd5b856020828401011115610a74575f80fd5b6020919091019590945092505050565b600181811c90821680610a9857607f821691505b602082108103610ab657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252601290820152713737ba1036b2ba30b230ba309037bbb732b960711b604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b601f821115610b4357805f5260205f20601f840160051c81016020851015610b215750805b601f840160051c820191505b81811015610b40575f8155600101610b2d565b50505b505050565b67ffffffffffffffff831115610b6057610b60610ae8565b610b7483610b6e8354610a84565b83610afc565b5f601f841160018114610ba5575f8515610b8e5750838201355b5f19600387901b1c1916600186901b178355610b40565b5f83815260208120601f198716915b82811015610bd45786850135825560209485019460019092019101610bb4565b5086821015610bf0575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b604081525f610c146040830186610908565b8281036020840152838152838560208301375f602085830101526020601f19601f860116820101915050949350505050565b808201808211156102f557634e487b7160e01b5f52601160045260245ffdfea26469706673582212207d259bceb84e664bc78250f5abfecd2debc33d05fca4b066eb961f7d2ee2e74864736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x16ce55…f129ba | 19 days agoMon, 27 Jul 2026 17:44:15 UTC | Transfer | [0] 0x000000000000…2e5fb996 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…0eea17a6 |
| 0x16ce55…f129ba | 19 days agoMon, 27 Jul 2026 17:44:15 UTC | Approval | [0] 0x000000000000…2e5fb996 [1] 0x000000000000…959e5cb2 data: 0x000000000000000000…00000000 |
| 0x16ce55…f129ba | 19 days agoMon, 27 Jul 2026 17:44:15 UTC | Approval | [0] 0x000000000000…2e5fb996 [1] 0x000000000000…959e5cb2 data: 0x000000000000000000…0eea17a6 |
| 0x16ce55…f129ba | 19 days agoMon, 27 Jul 2026 17:44:15 UTC | Transfer | [0] 0x000000000000…e443b1d1 [1] 0x000000000000…2e5fb996 data: 0x000000000000000000…0eea17a6 |
| 0x9f48d7…2d7331 | 19 days agoMon, 27 Jul 2026 16:42:05 UTC | 0x7ce1d7…8a78 | [0] 0x000000000000…4ebc2ba2 [1] 0x000000000000…00000000 |
| 0x2a98d7…b20059 | 19 days agoMon, 27 Jul 2026 16:37:22 UTC | Transfer | [0] 0x000000000000…0ca284cd [1] 0x000000000000…5357b9b2 data: 0x000000000000000000…d29adb7d |
| 0x718cbf…fa7898 | 19 days agoMon, 27 Jul 2026 16:37:19 UTC | Transfer | [0] 0x000000000000…55691454 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…6c344b43 |
| 0x718cbf…fa7898 | 19 days agoMon, 27 Jul 2026 16:37:19 UTC | Transfer | [0] 0x000000000000…4792121e [1] 0x000000000000…55691454 data: 0x000000000000000000…6c344b43 |
| 0xe752e5…367702 | 19 days agoMon, 27 Jul 2026 16:37:07 UTC | Transfer | [0] 0x000000000000…0ca284cd [1] 0x000000000000…5357b9b2 data: 0x000000000000000000…83dd34ff |
| 0x97e7c6…fb6c09 | 19 days agoMon, 27 Jul 2026 16:37:05 UTC | Transfer | [0] 0x000000000000…55691454 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…d8689686 |
| 0x97e7c6…fb6c09 | 19 days agoMon, 27 Jul 2026 16:37:05 UTC | Transfer | [0] 0x000000000000…4792121e [1] 0x000000000000…55691454 data: 0x000000000000000000…d8689686 |
| 0x365fb4…4277b0 | 19 days agoMon, 27 Jul 2026 16:36:59 UTC | Approval | [0] 0x000000000000…4792121e [1] 0x000000000000…55691454 data: 0xffffffffffffffffff…ffffffff |
| 0x8b8996…4ad8be | 19 days agoMon, 27 Jul 2026 16:36:44 UTC | Transfer | [0] 0x000000000000…0ca284cd [1] 0x000000000000…5357b9b2 data: 0x000000000000000000…f654b27b |
| 0x5926a2…dc87d0 | 19 days agoMon, 27 Jul 2026 16:36:42 UTC | Transfer | [0] 0x000000000000…55691454 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…4471e1bb |
| 0x5926a2…dc87d0 | 19 days agoMon, 27 Jul 2026 16:36:42 UTC | Transfer | [0] 0x000000000000…2745e79b [1] 0x000000000000…55691454 data: 0x000000000000000000…4471e1bb |
| 0x0e9e3f…537fec | 19 days agoMon, 27 Jul 2026 16:36:29 UTC | Transfer | [0] 0x000000000000…0ca284cd [1] 0x000000000000…5357b9b2 data: 0x000000000000000000…fa3ae065 |
| 0x880956…0e0331 | 19 days agoMon, 27 Jul 2026 16:36:26 UTC | Transfer | [0] 0x000000000000…55691454 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…88e3c376 |
| 0x880956…0e0331 | 19 days agoMon, 27 Jul 2026 16:36:26 UTC | Transfer | [0] 0x000000000000…2745e79b [1] 0x000000000000…55691454 data: 0x000000000000000000…88e3c376 |
| 0xd37a65…5945aa | 19 days agoMon, 27 Jul 2026 16:36:24 UTC | Approval | [0] 0x000000000000…2745e79b [1] 0x000000000000…55691454 data: 0xffffffffffffffffff…ffffffff |
| 0x763e86…0f12a7 | 19 days agoMon, 27 Jul 2026 16:32:43 UTC | Transfer | [0] 0x000000000000…0ca284cd [1] 0x000000000000…5357b9b2 data: 0x000000000000000000…532bd5c5 |
| 0xc7ae8b…1328e5 | 19 days agoMon, 27 Jul 2026 16:32:42 UTC | Transfer | [0] 0x000000000000…55691454 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…c10d39e3 |
| 0xc7ae8b…1328e5 | 19 days agoMon, 27 Jul 2026 16:32:42 UTC | Transfer | [0] 0x000000000000…eec7c648 [1] 0x000000000000…55691454 data: 0x000000000000000000…c10d39e3 |
| 0x756b5a…b864e0 | 19 days agoMon, 27 Jul 2026 16:32:33 UTC | Transfer | [0] 0x000000000000…0ca284cd [1] 0x000000000000…5357b9b2 data: 0x000000000000000000…6670f67c |
| 0x063065…3082a2 | 19 days agoMon, 27 Jul 2026 16:32:32 UTC | Transfer | [0] 0x000000000000…55691454 [1] 0x000000000000…0ca284cd data: 0x000000000000000000…821a73c6 |
| 0x063065…3082a2 | 19 days agoMon, 27 Jul 2026 16:32:32 UTC | Transfer | [0] 0x000000000000…eec7c648 [1] 0x000000000000…55691454 data: 0x000000000000000000…821a73c6 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x9f48d7…2d7331 | renounceMetadataOwner | 20,883,714 | 19 days agoMon, 27 Jul 2026 16:42:05 UTC | 0xc2ef…2ba2 | IN | Test | $0.000 ETH | 0.00000086 | |
| 0x365fb4…4277b0 | Approve | 20,880,803 | 19 days agoMon, 27 Jul 2026 16:36:59 UTC | 0x9777…121e | IN | Test | $0.000 ETH | 0.00000172 | |
| 0xd37a65…5945aa | Approve | 20,880,471 | 19 days agoMon, 27 Jul 2026 16:36:24 UTC | 0x7db2…e79b | IN | Test | $0.000 ETH | 0.00000172 | |
| 0x8dbf10…d13a09 | Approve | 20,877,130 | 19 days agoMon, 27 Jul 2026 16:30:34 UTC | 0x40b1…c648 | IN | Test | $0.000 ETH | 0.00000172 | |
| 0xbe4515…6d21e1 | Approve | 20,873,116 | 19 days agoMon, 27 Jul 2026 16:23:53 UTC | 0x09c7…1ac0 | IN | Test | $0.000 ETH | 0.00000169 | |
| 0xe19177…c5461a | Approve | 20,872,873 | 19 days agoMon, 27 Jul 2026 16:23:28 UTC | 0xf8b2…7154 | IN | Test | $0.000 ETH | 0.00000169 | |
| 0x8b104e…d1f8e1 | Approve | 20,872,505 | 19 days agoMon, 27 Jul 2026 16:22:53 UTC | 0x3d0f…beae | IN | Test | $0.000 ETH | 0.00000170 | |
| 0x790946…915356 | Approve | 20,869,890 | 19 days agoMon, 27 Jul 2026 16:18:30 UTC | 0x48e2…5775 | IN | Test | $0.000 ETH | 0.00000170 | |
| 0x35dc4b…ed85a0 | Approve | 20,214,576 | 20 days agoSun, 26 Jul 2026 22:02:42 UTC | 0x1407…b1d1 | IN | Test | $0.000 ETH | 0.00000227 | |
| 0xa392ba…7a3f59 | Approve | 20,212,448 | 20 days agoSun, 26 Jul 2026 21:59:09 UTC | 0xc2ef…2ba2 | IN | Test | $0.000 ETH | 0.00000226 |