// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {IGetCCIPAdmin} from "../../interfaces/IGetCCIPAdmin.sol";
import {IOwnable} from "@chainlink/contracts/src/v0.8/shared/interfaces/IOwnable.sol";
import {ITypeAndVersion} from "@chainlink/contracts/src/v0.8/shared/interfaces/ITypeAndVersion.sol";
import {IBurnMintERC20} from "@chainlink/contracts/src/v0.8/shared/token/ERC20/IBurnMintERC20.sol";
import {Ownable2StepMsgSender} from "@chainlink/contracts/src/v0.8/shared/access/Ownable2StepMsgSender.sol";
import {ERC20} from "@openzeppelin/contracts@4.8.3/token/ERC20/ERC20.sol";
import {IERC20} from "@openzeppelin/contracts@4.8.3/token/ERC20/IERC20.sol";
import {ERC20Burnable} from "@openzeppelin/contracts@4.8.3/token/ERC20/extensions/ERC20Burnable.sol";
import {IERC165} from "@openzeppelin/contracts@4.8.3/utils/introspection/IERC165.sol";
import {EnumerableSet} from "@openzeppelin/contracts@5.0.2/utils/structs/EnumerableSet.sol";
/// @notice A basic ERC20 compatible token contract with burn and minting roles.
/// @dev The constructor has been modified to support the deployment pattern used by a factory contract.
/// @dev The total supply can be limited during deployment.
contract FactoryBurnMintERC20 is
IBurnMintERC20,
IGetCCIPAdmin,
IERC165,
ERC20Burnable,
Ownable2StepMsgSender,
ITypeAndVersion
{
using EnumerableSet for EnumerableSet.AddressSet;
error SenderNotMinter(address sender);
error SenderNotBurner(address sender);
error MaxSupplyExceeded(uint256 supplyAfterMint);
event MintAccessGranted(address minter);
event BurnAccessGranted(address burner);
event MintAccessRevoked(address minter);
event BurnAccessRevoked(address burner);
event CCIPAdminTransferred(address indexed previousAdmin, address indexed newAdmin);
/// @dev The number of decimals for the token
uint8 internal immutable i_decimals;
/// @dev The maximum supply of the token, 0 if unlimited
uint256 internal immutable i_maxSupply;
/// @dev the CCIPAdmin can be used to register with the CCIP token admin registry, but has no other special powers,
/// and can only be transferred by the owner.
address internal s_ccipAdmin;
/// @dev the allowed minter addresses
EnumerableSet.AddressSet internal s_minters;
/// @dev the allowed burner addresses
EnumerableSet.AddressSet internal s_burners;
/// @dev the underscores in parameter names are used to suppress compiler warnings about shadowing ERC20 functions
constructor(
string memory name,
string memory symbol,
uint8 decimals_,
uint256 maxSupply_,
uint256 preMint,
address newOwner
) ERC20(name, symbol) {
i_decimals = decimals_;
i_maxSupply = maxSupply_;
s_ccipAdmin = newOwner;
if (preMint > maxSupply_ && maxSupply_ != 0) revert MaxSupplyExceeded(preMint);
// Mint the initial supply to the new Owner, saving gas by not calling if the mint amount is zero
if (preMint != 0) _mint(newOwner, preMint);
}
/// @inheritdoc ITypeAndVersion
/// @notice Using a function because constant state variables cannot be overridden by child contracts.
function typeAndVersion() external pure virtual override returns (string memory) {
return "FactoryBurnMintERC20 1.6.2";
}
/// @inheritdoc IERC165
function supportsInterface(
bytes4 interfaceId
) public pure virtual override returns (bool) {
return interfaceId == type(IERC20).interfaceId || interfaceId == type(IBurnMintERC20).interfaceId
|| interfaceId == type(IERC165).interfaceId || interfaceId == type(IOwnable).interfaceId
|| interfaceId == type(IGetCCIPAdmin).interfaceId;
}
// ================================================================
// │ ERC20 │
// ================================================================
/// @dev Returns the number of decimals used in its user representation.
function decimals() public view virtual override returns (uint8) {
return i_decimals;
}
/// @dev Returns the max supply of the token, 0 if unlimited.
function maxSupply() public view virtual returns (uint256) {
return i_maxSupply;
}
/// @dev Uses OZ ERC20 _transfer to disallow sending to address(0).
/// @dev Disallows sending to address(this)
function _transfer(address from, address to, uint256 amount) internal virtual override validAddress(to) {
super._transfer(from, to, amount);
}
/// @dev Uses OZ ERC20 _approve to disallow approving for address(0).
/// @dev Disallows approving for address(this)
function _approve(address owner, address spender, uint256 amount) internal virtual override validAddress(spender) {
super._approve(owner, spender, amount);
}
/// @dev Exists to be backwards compatible with the older naming convention.
/// @param spender the account being approved to spend on the users' behalf.
/// @param subtractedValue the amount being removed from the approval.
/// @return success Bool to return if the approval was successfully decreased.
function decreaseApproval(address spender, uint256 subtractedValue) external returns (bool success) {
return decreaseAllowance(spender, subtractedValue);
}
/// @dev Exists to be backwards compatible with the older naming convention.
/// @param spender the account being approved to spend on the users' behalf.
/// @param addedValue the amount being added to the approval.
function increaseApproval(address spender, uint256 addedValue) external {
increaseAllowance(spender, addedValue);
}
// ================================================================
// │ Burning & minting │
// ================================================================
/// @inheritdoc ERC20Burnable
/// @dev Uses OZ ERC20 _burn to disallow burning from address(0).
/// @dev Decreases the total supply.
function burn(
uint256 amount
) public override(IBurnMintERC20, ERC20Burnable) onlyBurner {
super.burn(amount);
}
/// @inheritdoc IBurnMintERC20
/// @dev Alias for BurnFrom for compatibility with the older naming convention.
/// @dev Uses burnFrom for all validation & logic.
function burn(address account, uint256 amount) public virtual override {
burnFrom(account, amount);
}
/// @inheritdoc ERC20Burnable
/// @dev Uses OZ ERC20 _burn to disallow burning from address(0).
/// @dev Decreases the total supply.
function burnFrom(address account, uint256 amount) public override(IBurnMintERC20, ERC20Burnable) onlyBurner {
super.burnFrom(account, amount);
}
/// @inheritdoc IBurnMintERC20
/// @dev Uses OZ ERC20 _mint to disallow minting to address(0).
/// @dev Disallows minting to address(this)
/// @dev Increases the total supply.
function mint(address account, uint256 amount) external override onlyMinter validAddress(account) {
if (i_maxSupply != 0 && totalSupply() + amount > i_maxSupply) revert MaxSupplyExceeded(totalSupply() + amount);
_mint(account, amount);
}
// ================================================================
// │ Roles │
// ================================================================
/// @notice grants both mint and burn roles to `burnAndMinter`.
/// @dev calls public functions so this function does not require
/// access controls. This is handled in the inner functions.
function grantMintAndBurnRoles(
address burnAndMinter
) external {
grantMintRole(burnAndMinter);
grantBurnRole(burnAndMinter);
}
/// @notice Grants mint role to the given address.
/// @dev only the owner can call this function.
function grantMintRole(
address minter
) public onlyOwner {
if (s_minters.add(minter)) {
emit MintAccessGranted(minter);
}
}
/// @notice Grants burn role to the given address.
/// @dev only the owner can call this function.
/// @param burner the address to grant the burner role to
function grantBurnRole(
address burner
) public onlyOwner {
if (s_burners.add(burner)) {
emit BurnAccessGranted(burner);
}
}
/// @notice Revokes mint role for the given address.
/// @dev only the owner can call this function.
/// @param minter the address to revoke the mint role from.
function revokeMintRole(
address minter
) external onlyOwner {
if (s_minters.remove(minter)) {
emit MintAccessRevoked(minter);
}
}
/// @notice Revokes burn role from the given address.
/// @dev only the owner can call this function
/// @param burner the address to revoke the burner role from
function revokeBurnRole(
address burner
) external onlyOwner {
if (s_burners.remove(burner)) {
emit BurnAccessRevoked(burner);
}
}
/// @notice Returns all permissioned minters
function getMinters() external view returns (address[] memory) {
return s_minters.values();
}
/// @notice Returns all permissioned burners
function getBurners() external view returns (address[] memory) {
return s_burners.values();
}
/// @notice Returns the current CCIPAdmin
function getCCIPAdmin() external view returns (address) {
return s_ccipAdmin;
}
/// @notice Transfers the CCIPAdmin role to a new address
/// @dev only the owner can call this function, NOT the current ccipAdmin, and 1-step ownership transfer is used.
/// @param newAdmin The address to transfer the CCIPAdmin role to. Setting to address(0) is a valid way to revoke
/// the role
function setCCIPAdmin(
address newAdmin
) public onlyOwner {
address currentAdmin = s_ccipAdmin;
s_ccipAdmin = newAdmin;
emit CCIPAdminTransferred(currentAdmin, newAdmin);
}
// ================================================================
// │ Access │
// ================================================================
/// @notice Checks whether a given address is a minter for this token.
/// @return true if the address is allowed to mint.
function isMinter(
address minter
) public view returns (bool) {
return s_minters.contains(minter);
}
/// @notice Checks whether a given address is a burner for this token.
/// @return true if the address is allowed to burn.
function isBurner(
address burner
) public view returns (bool) {
return s_burners.contains(burner);
}
/// @notice Checks whether the msg.sender is a permissioned minter for this token
/// @dev Reverts with a SenderNotMinter if the check fails
modifier onlyMinter() {
if (!isMinter(msg.sender)) revert SenderNotMinter(msg.sender);
_;
}
/// @notice Checks whether the msg.sender is a permissioned burner for this token
/// @dev Reverts with a SenderNotBurner if the check fails
modifier onlyBurner() {
if (!isBurner(msg.sender)) revert SenderNotBurner(msg.sender);
_;
}
/// @notice Check if recipient is valid (not this contract address).
/// @param recipient the account we transfer/approve to.
/// @dev Reverts with an empty revert to be compatible with the existing link token when
/// the recipient is this contract address.
modifier validAddress(
address recipient
) virtual {
// solhint-disable-next-line reason-string, gas-custom-errors
if (recipient == address(this)) revert();
_;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name",
"type": "string",
"internalType": "string"
},
{
"name": "symbol",
"type": "string",
"internalType": "string"
},
{
"name": "decimals_",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "maxSupply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "preMint",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "CannotTransferToSelf",
"type": "error",
"inputs": []
},
{
"name": "MaxSupplyExceeded",
"type": "error",
"inputs": [
{
"name": "supplyAfterMint",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "MustBeProposedOwner",
"type": "error",
"inputs": []
},
{
"name": "OnlyCallableByOwner",
"type": "error",
"inputs": []
},
{
"name": "OwnerCannotBeZero",
"type": "error",
"inputs": []
},
{
"name": "SenderNotBurner",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "SenderNotMinter",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"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": "BurnAccessGranted",
"type": "event",
"inputs": [
{
"name": "burner",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "BurnAccessRevoked",
"type": "event",
"inputs": [
{
"name": "burner",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "CCIPAdminTransferred",
"type": "event",
"inputs": [
{
"name": "previousAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newAdmin",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "MintAccessGranted",
"type": "event",
"inputs": [
{
"name": "minter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "MintAccessRevoked",
"type": "event",
"inputs": [
{
"name": "minter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferRequested",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"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": "burn",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "burn",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "burnFrom",
"type": "function",
"inputs": [
{
"name": "account",
"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": "decreaseAllowance",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "subtractedValue",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "decreaseApproval",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "subtractedValue",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "getBurners",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"name": "getCCIPAdmin",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "getMinters",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address[]",
"internalType": "address[]"
}
],
"stateMutability": "view"
},
{
"name": "grantBurnRole",
"type": "function",
"inputs": [
{
"name": "burner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "grantMintAndBurnRoles",
"type": "function",
"inputs": [
{
"name": "burnAndMinter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "grantMintRole",
"type": "function",
"inputs": [
{
"name": "minter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "increaseAllowance",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "addedValue",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "increaseApproval",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "addedValue",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "isBurner",
"type": "function",
"inputs": [
{
"name": "burner",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "isMinter",
"type": "function",
"inputs": [
{
"name": "minter",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "maxSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "mint",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "revokeBurnRole",
"type": "function",
"inputs": [
{
"name": "burner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "revokeMintRole",
"type": "function",
"inputs": [
{
"name": "minter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setCCIPAdmin",
"type": "function",
"inputs": [
{
"name": "newAdmin",
"type": "address",
"internalType": "address"
}
],
"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": "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": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "typeAndVersion",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "pure"
}
]0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146116ef5750806306fdde0314611612578063095ea7b31461145557806318160ddd14611419578063181f5a771461136357806323b872dd14611264578063313ce5671461120857806339509351146111cc57806340c10f1914610ff957806342966c6814610fa25780634334614a14610f3d5780634f5632f814610eac578063661884631461098a5780636b32810b14610e1757806370a0823114610db257806379ba509714610cc957806379cc67901461098f57806386fe8b4314610c285780638da5cb5b14610bd65780638fd6a6ac14610b8457806395d89b4114610a275780639dc29fac1461098f578063a457c2d71461098a578063a8fa343c146108df578063a9059cbb1461067d578063aa271e1a1461060e578063c2e3273d1461057d578063c630948d146104da578063c64d0ebc14610449578063d5abeb01146103f0578063d73dd623146103ab578063dd62ed3e1461031b578063f2fde38b1461022b5763f81094f31461019557600080fd5b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff6101e16118a6565b6101e9611d29565b166101f3816120d1565b6101f957005b60207fed998b960f6340d045f620c119730f7aa7995e7425c2401d3a5b64ff998a59e991604051908152a1005b600080fd5b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff6102776118a6565b61027f611d29565b163381146102f157807fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055573ffffffffffffffffffffffffffffffffffffffff600654167fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae1278600080a3005b7fdad89dca0000000000000000000000000000000000000000000000000000000060005260046000fd5b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576103526118a6565b73ffffffffffffffffffffffffffffffffffffffff61036f6118c9565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576103ee6103e56118a6565b60243590611b2f565b005b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff6104956118a6565b61049d611d29565b166104a78161225c565b6104ad57005b60207f92308bb7573b2a3d17ddb868b39d8ebec433f3194421abc22d084f89658c9bad91604051908152a1005b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff6105266118a6565b61052e611d29565b16610538816121fc565b61054e575b610545611d29565b6104a78161225c565b7fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea6020604051838152a161053d565b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff6105c96118a6565b6105d1611d29565b166105db816121fc565b6105e157005b60207fe46fef8bbff1389d9010703cf8ebb363fb3daf5bf56edc27080b67bc8d9251ea91604051908152a1005b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657602061067373ffffffffffffffffffffffffffffffffffffffff61065f6118a6565b166000526009602052604060002054151590565b6040519015158152f35b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576106b46118a6565b73ffffffffffffffffffffffffffffffffffffffff1660243530821461022657331561085b5781156107d7573360005260006020526040600020548181106107535781903360005260006020520360406000205581600052600060205260406000208181540190556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576109166118a6565b61091e611d29565b73ffffffffffffffffffffffffffffffffffffffff80600754921691827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600755167f9524c9e4b0b61eb018dd58a1cd856e3e74009528328ab4a613b434fa631d7242600080a3005b6118ec565b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576109c66118a6565b6024356109e033600052600b602052604060002054151590565b156109f9576103ee916109f4823383611bce565b611d74565b7fc820b10b000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265760405160006004548060011c90600181168015610b7a575b602083108114610b4d57828552908115610b0b5750600114610aab575b610aa783610a9b81850382611ab2565b6040519182918261183e565b0390f35b91905060046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b916000905b808210610af157509091508101602001610a9b610a8b565b919260018160209254838588010152019101909291610ad9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b84019091019150610a9b9050610a8b565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b91607f1691610a6e565b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657602073ffffffffffffffffffffffffffffffffffffffff60075416604051908152f35b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657604051806020600a54918281520190600a6000527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a89060005b818110610cb357610aa785610ca781870382611ab2565b60405191829182611a62565b8254845260209093019260019283019201610c90565b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265760055473ffffffffffffffffffffffffffffffffffffffff81163303610d88577fffffffffffffffffffffffff00000000000000000000000000000000000000006006549133828416176006551660055573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b7f02b543c60000000000000000000000000000000000000000000000000000000060005260046000fd5b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff610dfe6118a6565b1660005260006020526020604060002054604051908152f35b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265760405180602060085491828152019060086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39060005b818110610e9657610aa785610ca781870382611ab2565b8254845260209093019260019283019201610e7f565b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265773ffffffffffffffffffffffffffffffffffffffff610ef86118a6565b610f00611d29565b16610f0a81611f3b565b610f1057005b60207f0a675452746933cefe3d74182e78db7afe57ba60eaa4234b5d85e9aa41b0610c91604051908152a1005b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657602061067373ffffffffffffffffffffffffffffffffffffffff610f8e6118a6565b16600052600b602052604060002054151590565b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657610fe833600052600b602052604060002054151590565b156109f9576103ee60043533611d74565b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576110306118a6565b6024359061104b336000526009602052604060002054151590565b1561119e5773ffffffffffffffffffffffffffffffffffffffff1690308214610226577f00000000000000000000000000000000000000000000000000000000000000008015159081611189575b506111505781156110f2577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020826110d6600094600254611af3565b60025584845283825260408420818154019055604051908152a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b61115c90600254611af3565b7fcbbf11130000000000000000000000000000000000000000000000000000000060005260045260246000fd5b905061119782600254611af3565b1183611099565b7fe2c8c9d5000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265760206106736103e56118a6565b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657602060405160ff7f0000000000000000000000000000000000000000000000000000000000000012168152f35b346102265760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265761129b6118a6565b6112a36118c9565b73ffffffffffffffffffffffffffffffffffffffff604435916112c7833386611bce565b16913083146102265773ffffffffffffffffffffffffffffffffffffffff1690811561085b5782156107d75781600052600060205260406000205481811061075357817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9260209285600052600084520360406000205584600052600082526040600020818154019055604051908152a3602060405160018152f35b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657604051604081019080821067ffffffffffffffff8311176113ea57610aa791604052601a81527f466163746f72794275726e4d696e74455243323020312e362e3200000000000060208201526040519182918261183e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576020600254604051908152f35b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265761148c6118a6565b73ffffffffffffffffffffffffffffffffffffffff1660243530821461022657331561158f57811561150b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b346102265760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102265760405160006003548060011c906001811680156116e5575b602083108114610b4d57828552908115610b0b575060011461168557610aa783610a9b81850382611ab2565b91905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b916000905b8082106116cb57509091508101602001610a9b610a8b565b9192600181602092548385880101520191019092916116b3565b91607f1691611659565b346102265760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022657600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361022657817f36372b070000000000000000000000000000000000000000000000000000000060209314908115611814575b81156117ea575b81156117c0575b8115611796575b5015158152f35b7f8fd6a6ac000000000000000000000000000000000000000000000000000000009150148361178f565b7f06e278470000000000000000000000000000000000000000000000000000000081149150611788565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081149150611781565b7fe6599b4d000000000000000000000000000000000000000000000000000000008114915061177a565b9190916020815282519283602083015260005b8481106118905750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b8060208092840101516040828601015201611851565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361022657565b346102265760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610226576119236118a6565b6024359060009133835260016020526040832073ffffffffffffffffffffffffffffffffffffffff831684526020526040832054908082106119de5773ffffffffffffffffffffffffffffffffffffffff91039116913083146119db57331561158f57821561150b5760408291338152600160205281812085825260205220556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a360206001604051908152f35b80fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b602060408183019282815284518094520192019060005b818110611a865750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611a79565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113ea57604052565b91908201809211611b0057565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90611b6b73ffffffffffffffffffffffffffffffffffffffff913360005260016020526040600020838516600052602052604060002054611af3565b91169030821461022657331561158f57811561150b57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3600190565b73ffffffffffffffffffffffffffffffffffffffff909291921690816000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611c49575b50505050565b808210611ccb5773ffffffffffffffffffffffffffffffffffffffff910392169130831461022657811561158f57821561150b5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260018252604060002085600052825280604060002055604051908152a338808080611c43565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b73ffffffffffffffffffffffffffffffffffffffff600654163303611d4a57565b7f2b5c74de0000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff168015611e705780600052600060205260406000205491808310611dec576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926000958587528684520360408620558060025403600255604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b8054821015611f0c5760005260206000200190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000818152600b602052604090205480156120ca577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611b0057600a54907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211611b005781810361205b575b505050600a54801561202c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01611fe981600a611ef4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055600a55600052600b60205260006040812055600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6120b261206c61207d93600a611ef4565b90549060031b1c928392600a611ef4565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b9055600052600b602052604060002055388080611fb0565b5050600090565b60008181526009602052604090205480156120ca577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101818111611b0057600854907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8201918211611b00578181036121c2575b505050600854801561202c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0161217f816008611ef4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055600855600052600960205260006040812055600190565b6121e46121d361207d936008611ef4565b90549060031b1c9283926008611ef4565b90556000526009602052604060002055388080612146565b8060005260096020526040600020541560001461225657600854680100000000000000008110156113ea5761223d61207d8260018594016008556008611ef4565b9055600854906000526009602052604060002055600190565b50600090565b80600052600b6020526040600020541560001461225657600a54680100000000000000008110156113ea5761229d61207d826001859401600a55600a611ef4565b9055600a5490600052600b60205260406000205560019056fea164736f6c634300081a000a
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 | |
| memecat (MEMECAT) | MEMECAT | 50.279 | — | — |
| HOODIE (HOODIE) | HOODIE | 20 | — | — |
| buy and retire (530A) | 530A | 20 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| 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 | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x178734…e3e170 | 19 hrs agoMon, 17 Aug 2026 04:43:37 UTC | Transfer | [0] 0x000000000000…1b024afa [1] 0x000000000000…d3cd6db5 data: 0x000000000000000000…cf6b1291 |
| 0x178734…e3e170 | 19 hrs agoMon, 17 Aug 2026 04:43:37 UTC | Transfer | [0] 0x000000000000…72414af3 [1] 0x000000000000…1b024afa data: 0x000000000000000000…cf6b1291 |
| 0x178734…e3e170 | 19 hrs agoMon, 17 Aug 2026 04:43:37 UTC | Transfer | [0] 0x000000000000…72414af3 [1] 0x000000000000…bcd41984 data: 0x000000000000000000…271a06d2 |
| 0x178734…e3e170 | 19 hrs agoMon, 17 Aug 2026 04:43:37 UTC | Transfer | [0] 0x000000000000…72414af3 [1] 0x000000000000…efae264b data: 0x000000000000000000…6dd8f2e2 |
| 0x178734…e3e170 | 19 hrs agoMon, 17 Aug 2026 04:43:37 UTC | Transfer | [0] 0x000000000000…de6bdb99 [1] 0x000000000000…72414af3 data: 0x000000000000000000…645e0c45 |
| 0x178734…e3e170 | 19 hrs agoMon, 17 Aug 2026 04:43:37 UTC | Approval | [0] 0x000000000000…de6bdb99 [1] 0x000000000000…72414af3 data: 0x000000000000000000…00000000 |
| 0xde6557…bca079 | 19 hrs agoMon, 17 Aug 2026 04:43:36 UTC | Approval | [0] 0x000000000000…de6bdb99 [1] 0x000000000000…72414af3 data: 0x000000000000000000…645e0c45 |
| 0xceb1de…1a4272 | 2 days agoSat, 15 Aug 2026 20:15:16 UTC | Transfer | [0] 0x000000000000…98a03638 [1] 0x000000000000…d3cd6db5 data: 0x000000000000000000…cf19fa9d |
| 0x9b5e27…1c9b82 | 2 days agoSat, 15 Aug 2026 20:14:13 UTC | Approval | [0] 0x000000000000…98a03638 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0x6f9145…b69432 | 2 days agoSat, 15 Aug 2026 17:21:18 UTC | Transfer | [0] 0x000000000000…20cbbe5f [1] 0x000000000000…d3cd6db5 data: 0x000000000000000000…50956443 |
| 0x6f9145…b69432 | 2 days agoSat, 15 Aug 2026 17:21:18 UTC | Transfer | [0] 0x000000000000…20cbbe5f [1] 0x000000000000…98a03638 data: 0x000000000000000000…cf19fa9d |
| 0x6f9145…b69432 | 2 days agoSat, 15 Aug 2026 17:21:18 UTC | Transfer | [0] 0x000000000000…9b454c58 [1] 0x000000000000…20cbbe5f data: 0x000000000000000000…1faf5ee0 |
| 0x6f9145…b69432 | 2 days agoSat, 15 Aug 2026 17:21:18 UTC | Approval | [0] 0x000000000000…9b454c58 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0x726a23…8f389d | 2 days agoSat, 15 Aug 2026 16:46:41 UTC | Transfer | [0] 0x000000000000…9b454c58 [1] 0x000000000000…d3cd6db5 data: 0x000000000000000000…1ef84000 |
| 0x726a23…8f389d | 2 days agoSat, 15 Aug 2026 16:46:41 UTC | Approval | [0] 0x000000000000…9b454c58 [1] 0x000000000000…72c22734 data: 0x000000000000000000…00000000 |
| 0x11dfd7…0af1a8 | 2 days agoSat, 15 Aug 2026 16:46:40 UTC | Approval | [0] 0x000000000000…9b454c58 [1] 0x000000000000…72c22734 data: 0x000000000000000000…1ef84000 |
| 0x28029e…a7ecb8 | 2 days agoSat, 15 Aug 2026 08:57:25 UTC | Transfer | [0] 0x000000000000…63f23c16 [1] 0x000000000000…d3cd6db5 data: 0x000000000000000000…b8b86800 |
| 0x28029e…a7ecb8 | 2 days agoSat, 15 Aug 2026 08:57:25 UTC | Approval | [0] 0x000000000000…63f23c16 [1] 0x000000000000…4d48cd9e data: 0xffffffffffffffffff…ffffffff |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Transfer | [0] 0x000000000000…1b024afa [1] 0x000000000000…d3cd6db5 data: 0x000000000000000000…b87d4300 |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Transfer | [0] 0x000000000000…72414af3 [1] 0x000000000000…1b024afa data: 0x000000000000000000…b87d4300 |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Transfer | [0] 0x000000000000…72414af3 [1] 0x000000000000…3314f316 data: 0x000000000000000000…1b3e2e00 |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Transfer | [0] 0x000000000000…72414af3 [1] 0x000000000000…efae264b data: 0x000000000000000000…c1c29f00 |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Transfer | [0] 0x000000000000…d70f0281 [1] 0x000000000000…72414af3 data: 0x000000000000000000…957e1000 |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Approval | [0] 0x000000000000…d70f0281 [1] 0x000000000000…72414af3 data: 0x000000000000000000…00000000 |
| 0xb459e1…635b9a | 2 days agoSat, 15 Aug 2026 04:09:22 UTC | Approval | [0] 0x000000000000…d70f0281 [1] 0x000000000000…72414af3 data: 0x000000000000000000…957e1000 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x4ce34736…d31222 | Transfer | 24,437,755 | 17 days agoFri, 31 Jul 2026 19:43:09 UTC | 0xc7a7…cec7 | IN | 0x241f…0024 | 50.279 MEMECAT | memecat (MEMECAT) | |
| 0x82ef0aa0…426db5 | Transfer | 18,424,964 | 24 days agoFri, 24 Jul 2026 20:09:33 UTC | 0xcaf7…5d11 | IN | 0x241f…0024 | $0.001 DIH | ||
| 0xf33208b8…2c23d4 | Transfer | 7,252,249 | 37 days agoSat, 11 Jul 2026 21:04:48 UTC | 0x8c94…ec08 | IN | 0x241f…0024 | 20 530A | buy and retire (530A) | |
| 0xb70df3b8…ed0374 | Transfer | 7,252,069 | 37 days agoSat, 11 Jul 2026 21:04:32 UTC | 0xa7e0…34ac | IN | 0x241f…0024 | 20 HOODIE | HOODIE (HOODIE) |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xde6557…bca079 | Approve | 38,558,795 | 19 hrs agoMon, 17 Aug 2026 04:43:36 UTC | 0xd666…db99 | IN | Non-Playable Coin | $0.000 ETH | 0.00000092 | |
| 0x9b5e27…1c9b82 | Approve | 37,393,427 | 2 days agoSat, 15 Aug 2026 20:14:13 UTC | 0xca5b…3638 | IN | Non-Playable Coin | $0.000 ETH | 0.00000132 | |
| 0x11dfd7…0af1a8 | Approve | 37,269,144 | 2 days agoSat, 15 Aug 2026 16:46:40 UTC | 0x6cf8…4c58 | IN | Non-Playable Coin | $0.000 ETH | 0.00000137 | |
| 0x3c9137…8a4b95 | Transfer | 36,484,933 | 3 days agoFri, 14 Aug 2026 18:56:15 UTC | 0xe911…1ec1 | IN | Non-Playable Coin | $0.000 ETH | 0.00000203 | |
| 0x64c08e…e6abfc | Transfer | 36,484,929 | 3 days agoFri, 14 Aug 2026 18:56:15 UTC | 0xe911…1ec1 | IN | Non-Playable Coin | $0.000 ETH | 0.00000201 | |
| 0xf31f35…9ac6a7 | Approve | 34,802,924 | 5 days agoWed, 12 Aug 2026 20:06:26 UTC | 0xedc6…e2e4 | IN | Non-Playable Coin | $0.000 ETH | 0.00000236 | |
| 0x68354d…4760db | Approve | 33,972,220 | 6 days agoTue, 11 Aug 2026 21:05:22 UTC | 0xa2bf…5e95 | IN | Non-Playable Coin | $0.000 ETH | 0.00000140 | |
| 0x24a11d…754619 | Approve | 29,041,953 | 11 days agoThu, 06 Aug 2026 03:56:01 UTC | 0xb201…3705 | IN | Non-Playable Coin | $0.000 ETH | 0.00000124 | |
| 0x9abae8…3e0046 | Approve | 28,183,701 | 12 days agoWed, 05 Aug 2026 04:03:27 UTC | 0x403e…d6ac | IN | Non-Playable Coin | $0.000 ETH | 0.00000100 | |
| 0x32e0d5…03c0fb | Transfer | 27,784,006 | 13 days agoTue, 04 Aug 2026 16:55:15 UTC | 0xc379…5e06 | IN | Non-Playable Coin | $0.000 ETH | 0.00000097 | |
| 0x6e6a85…eed925 | Approve | 27,113,970 | 14 days agoMon, 03 Aug 2026 22:15:35 UTC | 0xde32…5ca1 | IN | Non-Playable Coin | $0.000 ETH | 0.00000096 | |
| 0x110ae1…66b077 | Approve | 26,604,327 | 14 days agoMon, 03 Aug 2026 08:04:25 UTC | 0xa2bf…5e95 | IN | Non-Playable Coin | $0.000 ETH | 0.00000094 | |
| 0xdab023…0839ca | Approve | 26,261,208 | 15 days agoSun, 02 Aug 2026 22:30:58 UTC | 0xe4ed…420b | IN | Non-Playable Coin | $0.000 ETH | 0.00000095 | |
| 0xf07538…62967b | Approve | 25,805,609 | 15 days agoSun, 02 Aug 2026 09:49:48 UTC | 0xd67d…ad11 | IN | Non-Playable Coin | $0.000 ETH | 0.00000093 | |
| 0x448fb0…67f5af | Approve | 24,954,047 | 16 days agoSat, 01 Aug 2026 10:06:05 UTC | 0xa2bf…5e95 | IN | Non-Playable Coin | $0.000 ETH | 0.00000092 | |
| 0xc9085c…7ad93c | Approve | 24,233,977 | 17 days agoFri, 31 Jul 2026 14:03:13 UTC | 0xa2bf…5e95 | IN | Non-Playable Coin | $0.000 ETH | 0.00000092 | |
| 0xec6327…f7bbf2 | Approve | 23,512,669 | 18 days agoThu, 30 Jul 2026 17:58:08 UTC | 0xce06…6f1c | IN | Non-Playable Coin | $0.000 ETH | 0.00000108 | |
| 0x11d91e…084d22 | Approve | 23,054,371 | 18 days agoThu, 30 Jul 2026 05:11:50 UTC | 0xa3d8…c9b1 | IN | Non-Playable Coin | $0.000 ETH | 0.00000094 | |
| 0x65d121…991704 | Approve | 22,511,356 | 19 days agoWed, 29 Jul 2026 14:05:02 UTC | 0x857e…ee0a | IN | Non-Playable Coin | $0.000 ETH | 0.00000104 | |
| 0x63adce…76bb98 | Approve | 21,579,570 | 20 days agoTue, 28 Jul 2026 12:07:46 UTC | 0xa2bf…5e95 | IN | Non-Playable Coin | $0.000 ETH | 0.00000135 | |
| 0x1bd232…f87b99 | Approve | 20,442,083 | 21 days agoMon, 27 Jul 2026 04:23:15 UTC | 0x9e5a…5786 | IN | Non-Playable Coin | $0.000 ETH | 0.00000199 | |
| 0x141a98…7946ba | Approve | 20,176,808 | 22 days agoSun, 26 Jul 2026 20:59:39 UTC | 0x6f83…2699 | IN | Non-Playable Coin | $0.000 ETH | 0.00000231 | |
| 0x3418e2…63fc07 | Approve | 19,965,480 | 22 days agoSun, 26 Jul 2026 15:06:56 UTC | 0xa2bf…5e95 | IN | Non-Playable Coin | $0.000 ETH | 0.00000235 | |
| 0xc22e16…a93d14 | Approve | 19,764,340 | 22 days agoSun, 26 Jul 2026 09:30:37 UTC | 0x659a…0a00 | IN | Non-Playable Coin | $0.000 ETH | 0.00000262 | |
| 0x78678f…37d506 | Approve | 19,757,657 | 22 days agoSun, 26 Jul 2026 09:19:27 UTC | 0xee23…59b4 | IN | Non-Playable Coin | $0.000 ETH | 0.00000274 |