// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;
import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
/**
* @title DripLauncherTokenV4
* @notice Fixed-supply ERC-20 for Uniswap V4 launches. Restriction-window buys
* are detected via transfers from the V4 PoolManager singleton (not a per-pool
* contract like V3).
*/
contract DripLauncherTokenV4 is ERC20 {
struct Socials {
string twitter;
string telegram;
string discord;
string website;
string farcaster;
}
error LaunchBlockBuyBlocked(address recipient);
error MaxWalletExceeded(address account, uint256 balance, uint256 limit);
error MaxTxExceeded(address recipient, uint256 attempted, uint256 limit);
error NotLaunchFactory();
error ZeroAddress();
address public immutable deployer;
address public immutable launchFactory;
address public immutable poolManager;
address public immutable positionManager;
address public immutable pairToken;
uint24 public immutable poolFee;
uint256 public immutable launchBlock;
uint256 public immutable restrictionBlocks;
uint256 public immutable restrictionEndBlock;
uint16 public immutable maxWalletBps;
uint16 public immutable maxTxBps;
string public logo;
string public description;
Socials private _socials;
address private _initialBuyRecipient;
mapping(address recipient => uint256 amount) private _restrictedPoolBuys;
constructor(
string memory name_,
string memory symbol_,
string memory logo_,
string memory description_,
Socials memory socials_,
address deployer_,
address poolManager_,
address positionManager_,
address pairToken_,
uint24 poolFee_,
uint256 supply_,
uint16 maxWalletBps_,
uint16 maxTxBps_,
uint32 restrictionBlocks_
) ERC20(name_, symbol_) {
if (
deployer_ == address(0) || poolManager_ == address(0) || positionManager_ == address(0)
|| pairToken_ == address(0)
) {
revert ZeroAddress();
}
deployer = deployer_;
launchFactory = msg.sender;
poolManager = poolManager_;
positionManager = positionManager_;
pairToken = pairToken_;
poolFee = poolFee_;
launchBlock = block.number;
restrictionBlocks = restrictionBlocks_;
restrictionEndBlock = block.number + restrictionBlocks_;
maxWalletBps = maxWalletBps_;
maxTxBps = maxTxBps_;
logo = logo_;
description = description_;
_socials = socials_;
_mint(msg.sender, supply_);
}
function socials()
external
view
returns (
string memory twitter,
string memory telegram,
string memory discord,
string memory website,
string memory farcaster
)
{
Socials memory values = _socials;
return (values.twitter, values.telegram, values.discord, values.website, values.farcaster);
}
function getTokenInfo()
external
view
returns (
address tokenDeployer,
string memory tokenLogo,
string memory tokenDescription,
Socials memory tokenSocials
)
{
return (deployer, logo, description, _socials);
}
function maxWalletLimit() public view returns (uint256) {
return (totalSupply() * maxWalletBps) / 10_000;
}
function maxTxLimit() public view returns (uint256) {
return (totalSupply() * maxTxBps) / 10_000;
}
function setInitialBuyRecipient(address recipient) external {
if (msg.sender != launchFactory) revert NotLaunchFactory();
_initialBuyRecipient = recipient;
}
function _update(address from, address to, uint256 value) internal override {
if (from != address(0) && to != address(0) && block.number <= restrictionEndBlock) {
// V4 swaps settle via the singleton PoolManager.
bool isRestrictedBuy = from == poolManager;
if (!isRestrictedBuy) {
super._update(from, to, value);
return;
}
bool isAtomicLaunchBuy =
block.number == launchBlock && _initialBuyRecipient != address(0) && to == _initialBuyRecipient;
if (!isAtomicLaunchBuy && block.number == launchBlock) {
revert LaunchBlockBuyBlocked(to);
}
if (!isAtomicLaunchBuy) {
uint256 walletLimit = maxWalletLimit();
uint256 resultingBalance = balanceOf(to) + value;
if (resultingBalance > walletLimit) {
revert MaxWalletExceeded(to, resultingBalance, walletLimit);
}
uint256 cumulative = _restrictedPoolBuys[to] + value;
uint256 cumulativeLimit = maxTxLimit();
if (cumulative > cumulativeLimit) {
revert MaxTxExceeded(to, cumulative, cumulativeLimit);
}
_restrictedPoolBuys[to] = cumulative;
}
}
super._update(from, to, value);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "name_",
"type": "string",
"internalType": "string"
},
{
"name": "symbol_",
"type": "string",
"internalType": "string"
},
{
"name": "logo_",
"type": "string",
"internalType": "string"
},
{
"name": "description_",
"type": "string",
"internalType": "string"
},
{
"name": "socials_",
"type": "tuple",
"components": [
{
"name": "twitter",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
},
{
"name": "discord",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "farcaster",
"type": "string",
"internalType": "string"
}
],
"internalType": "struct DripLauncherTokenV4.Socials"
},
{
"name": "deployer_",
"type": "address",
"internalType": "address"
},
{
"name": "poolManager_",
"type": "address",
"internalType": "address"
},
{
"name": "positionManager_",
"type": "address",
"internalType": "address"
},
{
"name": "pairToken_",
"type": "address",
"internalType": "address"
},
{
"name": "poolFee_",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "supply_",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "maxWalletBps_",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "maxTxBps_",
"type": "uint16",
"internalType": "uint16"
},
{
"name": "restrictionBlocks_",
"type": "uint32",
"internalType": "uint32"
}
],
"stateMutability": "nonpayable"
},
{
"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": "LaunchBlockBuyBlocked",
"type": "error",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "MaxTxExceeded",
"type": "error",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
},
{
"name": "attempted",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "limit",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "MaxWalletExceeded",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "limit",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "NotLaunchFactory",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"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": "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": "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": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "deployer",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "description",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "getTokenInfo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "tokenDeployer",
"type": "address",
"internalType": "address"
},
{
"name": "tokenLogo",
"type": "string",
"internalType": "string"
},
{
"name": "tokenDescription",
"type": "string",
"internalType": "string"
},
{
"name": "tokenSocials",
"type": "tuple",
"components": [
{
"name": "twitter",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
},
{
"name": "discord",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "farcaster",
"type": "string",
"internalType": "string"
}
],
"internalType": "struct DripLauncherTokenV4.Socials"
}
],
"stateMutability": "view"
},
{
"name": "launchBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "launchFactory",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "logo",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "maxTxBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "maxTxLimit",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "maxWalletBps",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "maxWalletLimit",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "pairToken",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "poolFee",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint24",
"internalType": "uint24"
}
],
"stateMutability": "view"
},
{
"name": "poolManager",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "positionManager",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "restrictionBlocks",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "restrictionEndBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "setInitialBuyRecipient",
"type": "function",
"inputs": [
{
"name": "recipient",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "socials",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "twitter",
"type": "string",
"internalType": "string"
},
{
"name": "telegram",
"type": "string",
"internalType": "string"
},
{
"name": "discord",
"type": "string",
"internalType": "string"
},
{
"name": "website",
"type": "string",
"internalType": "string"
},
{
"name": "farcaster",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"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"
}
]0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146109ed5780630861ac61146109b3578063089fe6aa14610974578063095ea7b3146108f257806312f16a07146108b457806318160ddd1461089757806323b872dd146107b8578063313ce5671461079d5780633de35b7914610759578063536dac9b1461071557806353cd512a1461068957806366a88d961461066f57806370a082311461063857806370bffe1b146105be5780637284e416146105a3578063791b98bc1461055f5780638036d5901461053d57806395d89b4114610449578063a9059cbb14610418578063abb1dc4414610303578063baed0765146102c9578063d00efb2f1461028f578063d5f394881461024b578063dc4c90d314610207578063dd62ed3e146101b7578063fb7f21eb146101845763ff8ea3e514610142575f80fd5b34610180575f36600319011261018057602060405161ffff7f0000000000000000000000000000000000000000000000000000000000000226168152f35b5f80fd5b34610180575f366003190112610180576101b361019f610c18565b604051918291602083526020830190610aa8565b0390f35b34610180576040366003190112610180576101d0610acc565b6101d8610ae2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b34610180575f366003190112610180576040517f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03168152602090f35b34610180575f366003190112610180576040517f0000000000000000000000000210cb294ba483fb714ae0d5b4dbeda897c224fd6001600160a01b03168152602090f35b34610180575f3660031901126101805760206040517f00000000000000000000000000000000000000000000000000000000018616b48152f35b34610180575f3660031901126101805760206040517f000000000000000000000000000000000000000000000000000000000000016e8152f35b34610180575f366003190112610180576060608060405161032381610af8565b8281528260208201528260408201528280820152015261039d610344610c18565b6101b361034f610b4a565b6103ab61035a610d7a565b9160405195869560018060a01b037f0000000000000000000000000210cb294ba483fb714ae0d5b4dbeda897c224fd168752608060208801526080870190610aa8565b908582036040870152610aa8565b838103606085015260806104076103f56103e36103d1865160a0875260a0870190610aa8565b60208701518682036020880152610aa8565b60408601518582036040870152610aa8565b60608501518482036060860152610aa8565b920151906080818403910152610aa8565b346101805760403660031901126101805761043e610434610acc565b6024359033610e65565b602060405160018152f35b34610180575f366003190112610180576040515f6004548060011c90600181168015610533575b60208310811461051f578285529081156104fb575060011461049d575b6101b38361019f81850382610b28565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106104e15750909150810160200161019f61048d565b9192600181602092548385880101520191019092916104c9565b60ff191660208086019190915291151560051b8401909101915061019f905061048d565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610470565b34610180575f366003190112610180576020610557610e31565b604051908152f35b34610180575f366003190112610180576040517f00000000000000000000000058daec3116aae6d93017baaea7749052e8a04fa76001600160a01b03168152602090f35b34610180575f366003190112610180576101b361019f610b4a565b34610180576020366003190112610180576105d7610acc565b7f0000000000000000000000009b3339a087a1170a2fea8a2646d359418a29229e6001600160a01b0316330361062957600c80546001600160a01b0319166001600160a01b0392909216919091179055005b639f5f2caf60e01b5f5260045ffd5b34610180576020366003190112610180576001600160a01b03610659610acc565b165f525f602052602060405f2054604051908152f35b34610180575f366003190112610180576020610557610df9565b34610180575f366003190112610180576106dd6106a4610d7a565b6101b38151916107076020820151916106f960408201516106eb6080606085015194015195604051998a9960a08b5260a08b0190610aa8565b9089820360208b0152610aa8565b908782036040890152610aa8565b908582036060870152610aa8565b908382036080850152610aa8565b34610180575f366003190112610180576040517f0000000000000000000000009b3339a087a1170a2fea8a2646d359418a29229e6001600160a01b03168152602090f35b34610180575f366003190112610180576040517f000000000000000000000000322f0929c4625ed5bad873c95208d54e1c003b2d6001600160a01b03168152602090f35b34610180575f36600319011261018057602060405160128152f35b34610180576060366003190112610180576107d1610acc565b6107d9610ae2565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f198110610817575b5061043e9350610e65565b83811061087c5784156108695733156108565761043e945f52600160205260405f2060018060a01b0333165f526020528360405f20910390558461080c565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b34610180575f366003190112610180576020600254604051908152f35b34610180575f36600319011261018057602060405161ffff7f00000000000000000000000000000000000000000000000000000000000001f4168152f35b346101805760403660031901126101805761090b610acc565b602435903315610869576001600160a01b031690811561085657335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b34610180575f36600319011261018057602060405162ffffff7f0000000000000000000000000000000000000000000000000000000000007530168152f35b34610180575f3660031901126101805760206040517f00000000000000000000000000000000000000000000000000000000018618228152f35b34610180575f366003190112610180576040515f6003548060011c90600181168015610a9e575b60208310811461051f578285529081156104fb5750600114610a40576101b38361019f81850382610b28565b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210610a845750909150810160200161019f61048d565b919260018160209254838588010152019101909291610a6c565b91607f1691610a14565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361018057565b602435906001600160a01b038216820361018057565b60a0810190811067ffffffffffffffff821117610b1457604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610b1457604052565b604051905f6006548060011c9160018216918215610c0e575b60208410831461051f578386528592908115610bef5750600114610b90575b610b8e92500383610b28565b565b5060065f90815290917ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b818310610bd3575050906020610b8e92820101610b82565b6020919350806001915483858901015201910190918492610bbb565b60209250610b8e94915060ff191682840152151560051b820101610b82565b92607f1692610b63565b604051905f6005548060011c9160018216918215610cba575b60208410831461051f578386528592908115610bef5750600114610c5b57610b8e92500383610b28565b5060055f90815290917f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b818310610c9e575050906020610b8e92820101610b82565b6020919350806001915483858901015201910190918492610c86565b92607f1692610c31565b90604051915f8154908160011c9260018316928315610d70575b60208510841461051f578487528693908115610d4e5750600114610d0a575b50610b8e92500383610b28565b90505f9291925260205f20905f915b818310610d32575050906020610b8e928201015f610cfd565b6020919350806001915483858901015201910190918492610d19565b905060209250610b8e94915060ff191682840152151560051b8201015f610cfd565b93607f1693610cde565b60405190610d8782610af8565b81610d926007610cc4565b8152610d9e6008610cc4565b6020820152610dad6009610cc4565b6040820152610dbc600a610cc4565b60608201526080610dcd600b610cc4565b910152565b81810292918115918404141715610de557565b634e487b7160e01b5f52601160045260245ffd5b612710610e2d60025461ffff7f00000000000000000000000000000000000000000000000000000000000001f41690610dd2565b0490565b612710610e2d60025461ffff7f00000000000000000000000000000000000000000000000000000000000002261690610dd2565b91906001600160a01b03831615610ea1576001600160a01b03811615610e8e57610b8e92610ec1565b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b91908201809211610de557565b9291906001600160a01b0384168015158061108e575b80611064575b610eed575b50610b8e92936110a0565b7f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03160361105a57437f00000000000000000000000000000000000000000000000000000000018616b4148080611046575b8061102f575b1580918192611027575b5061100657610f66575b5f610ee2565b610f6e610df9565b9360018060a01b03821694855f525f602052610f8e8460405f2054610eb4565b818111610fed575050845f52600d602052610fad8360405f2054610eb4565b610fb5610e31565b95868211610fd2575f908152600d60205260409020559350610f60565b8692506334e5f8b760e21b5f5260045260245260445260645ffd5b866304a43e8b60e51b5f5260045260245260445260645ffd5b506385234f9760e01b5f9081526001600160a01b0391909116600452602490fd5b90505f610f56565b50600c546001600160a01b03838116911614610f4c565b50600c546001600160a01b03161515610f46565b610b8e92936110a0565b507f0000000000000000000000000000000000000000000000000000000001861822431115610edd565b506001600160a01b0382161515610ed7565b6001600160a01b031690816111195760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef916110df85600254610eb4565b6002555b6001600160a01b031693846111045780600254036002555b604051908152a3565b845f525f825260405f208181540190556110fb565b815f525f60205260405f2054838110611163577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9184602092855f525f84520360405f20556110e3565b91905063391434e360e21b5f5260045260245260445260645ffdfea26469706673582212207a17e9c0af307abe6e1daa2e0e108db24b04f283e0e4f7935fa44b5bae5c099e64736f6c634300081c0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 | |
| Black Cat (CAT) | CAT | 7 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x6aaa3f…526ec4 | 19 days agoThu, 30 Jul 2026 02:33:26 UTC | Transfer | [0] 0x000000000000…594176f0 [1] 0x000000000000…43e40951 data: 0x000000000000000000…136977bc |
| 0x6aaa3f…526ec4 | 19 days agoThu, 30 Jul 2026 02:33:26 UTC | Transfer | [0] 0x000000000000…00bc72b6 [1] 0x000000000000…594176f0 data: 0x000000000000000000…136977bc |
| 0x16989b…3268ba | 19 days agoThu, 30 Jul 2026 02:19:15 UTC | Approval | [0] 0x000000000000…00bc72b6 [1] 0x000000000000…25a66b62 data: 0x000000000000000000…136977bc |
| 0x738fee…f238e7 | 19 days agoThu, 30 Jul 2026 02:19:10 UTC | Approval | [0] 0x000000000000…00bc72b6 [1] 0x000000000000…594176f0 data: 0x000000000000000000…136977bc |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Approval | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…00000000 |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Transfer | [0] 0x000000000000…ebce6c0f [1] 0x000000000000…43e40951 data: 0x000000000000000000…67336039 |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Transfer | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…67336039 |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Approval | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…67336039 |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Transfer | [0] 0x000000000000…8bb7de0e [1] 0x000000000000…412bae3e data: 0x000000000000000000…67336039 |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Transfer | [0] 0x000000000000…8bb7de0e [1] 0x000000000000…00bc72b6 data: 0x000000000000000000…2b303adb |
| 0x2a64b9…cd04ae | 26 days agoThu, 23 Jul 2026 01:47:33 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…8bb7de0e data: 0x000000000000000000…92639b14 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Approval | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…00000000 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Transfer | [0] 0x000000000000…ebce6c0f [1] 0x000000000000…43e40951 data: 0x000000000000000000…0fa2dbf4 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Transfer | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…0fa2dbf4 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Approval | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…0fa2dbf4 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Transfer | [0] 0x000000000000…8bb7de0e [1] 0x000000000000…412bae3e data: 0x000000000000000000…0fa2dbf4 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Transfer | [0] 0x000000000000…8bb7de0e [1] 0x000000000000…00bc72b6 data: 0x000000000000000000…e55036d7 |
| 0x9d6ffa…090078 | 26 days agoThu, 23 Jul 2026 01:43:53 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…8bb7de0e data: 0x000000000000000000…f4f312cb |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Approval | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…00000000 |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Transfer | [0] 0x000000000000…ebce6c0f [1] 0x000000000000…43e40951 data: 0x000000000000000000…8fa6727a |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Transfer | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…8fa6727a |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Approval | [0] 0x000000000000…412bae3e [1] 0x000000000000…ebce6c0f data: 0x000000000000000000…8fa6727a |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Transfer | [0] 0x000000000000…8bb7de0e [1] 0x000000000000…412bae3e data: 0x000000000000000000…8fa6727a |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Transfer | [0] 0x000000000000…8bb7de0e [1] 0x000000000000…00bc72b6 data: 0x000000000000000000…f2b180fa |
| 0x76a695…5a327b | 26 days agoThu, 23 Jul 2026 01:36:17 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…8bb7de0e data: 0x000000000000000000…8257f374 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x16989b…3268ba | Approve | 22,951,139 | 19 days agoThu, 30 Jul 2026 02:19:15 UTC | 0x111d…72b6 | IN | Cybertruck | $0.000 ETH | 0.00000095 | |
| 0x738fee…f238e7 | Approve | 22,951,087 | 19 days agoThu, 30 Jul 2026 02:19:10 UTC | 0x111d…72b6 | IN | Cybertruck | $0.000 ETH | 0.00000095 | |
| 0x744c57…22fb09 | Approve | 13,708,221 | 30 days agoSun, 19 Jul 2026 08:46:29 UTC | 0x2f72…d2ca | IN | Cybertruck | $0.000 ETH | 0.00000141 | |
| 0x4e1a60…52c579 | Approve | 13,681,717 | 30 days agoSun, 19 Jul 2026 08:02:05 UTC | 0x2af6…07af | IN | Cybertruck | $0.000 ETH | 0.00000274 | |
| 0x6609cb…96fd7a | Approve | 13,681,626 | 30 days agoSun, 19 Jul 2026 08:01:56 UTC | 0x2f72…d2ca | IN | Cybertruck | $0.000 ETH | 0.00000303 | |
| 0x6933a8…f368e1 | Approve | 13,657,467 | 30 days agoSun, 19 Jul 2026 07:21:28 UTC | 0x71b2…78fd | IN | Cybertruck | $0.000 ETH | 0.00000279 | |
| 0x93cb37…9dbe39 | Approve | 13,657,467 | 30 days agoSun, 19 Jul 2026 07:21:28 UTC | 0x4dc0…21c5 | IN | Cybertruck | $0.000 ETH | 0.00000279 | |
| 0xef31d9…aa0cf9 | Approve | 13,657,466 | 30 days agoSun, 19 Jul 2026 07:21:28 UTC | 0x4705…31ee | IN | Cybertruck | $0.000 ETH | 0.00000279 | |
| 0x296660…7b33cf | Approve | 13,657,464 | 30 days agoSun, 19 Jul 2026 07:21:28 UTC | 0xd934…000a | IN | Cybertruck | $0.000 ETH | 0.00000276 | |
| 0x3e5ad5…c0a063 | Approve | 13,641,434 | 30 days agoSun, 19 Jul 2026 06:54:33 UTC | 0x6c89…e9bc | IN | Cybertruck | $0.000 ETH | 0.00000278 | |
| 0xea74b4…bff55c | Approve | 13,634,541 | 30 days agoSun, 19 Jul 2026 06:43:01 UTC | 0x2a81…ed0b | IN | Cybertruck | $0.000 ETH | 0.00000280 | |
| 0xce6f4a…84695c | Approve | 13,634,236 | 30 days agoSun, 19 Jul 2026 06:42:30 UTC | 0x8ee4…b444 | IN | Cybertruck | $0.000 ETH | 0.00000278 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 13,612,789 | 30 days agoSun, 19 Jul 2026 06:06:34 UTC | 0x7ee0c7…5d0944 | CREATE2 | 0xb853fa22 | 0x9b33…229e | IN | 0xbc63…6789 | 0 ETH |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x844b5ea7…502264 | Transfer | 19,153,681 | 23 days agoSat, 25 Jul 2026 16:29:05 UTC | 0xcaf7…5d11 | IN | 0xbc63…6789 | $0.001 DIH | ||
| 0xee572828…181292 | Transfer | 14,595,188 | 28 days agoMon, 20 Jul 2026 09:31:11 UTC | 0xaa7f…ddf9 | IN | 0xbc63…6789 | 7 CAT | Black Cat (CAT) |