// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
interface IERC721 { function ownerOf(uint256 tokenId) external view returns (address); }
interface IWETH { function withdraw(uint256) external; function balanceOf(address) external view returns (uint256); }
/// @title RoyaltyPool
/// @notice Real-time royalty distribution, 75% holders / 25% project.
/// MasterChef-style accumulator: rewards accrue per token every time
/// royalties arrive. Holders claim any time, any subset, verified by
/// ownerOf at claim time. Rewards attach to the TOKEN — claim before you
/// sell, or the next owner can claim what accrued. No snapshots, no admin
/// upkeep, and the owner can never touch the holder pool.
contract RoyaltyPool is Ownable, ReentrancyGuard {
using SafeERC20 for IERC20;
uint256 public constant BPS = 10_000;
uint256 public constant HOLDER_BPS = 7_500; // holders' cut; owner gets the remainder (2_500)
uint256 private constant ACC = 1e18; // accumulator fixed-point precision
IERC721 public immutable NFT;
IWETH public immutable WETH;
address public treasury; // receives the 25%
// ---- accumulator ----
uint256 public accPerShare; // cumulative ETH per active token, scaled by ACC
uint256 public totalShares; // number of activated tokens (each token = 1 share)
mapping(uint256 => bool) public active; // tokenId => activated
mapping(uint256 => uint256) public rewardDebt;// tokenId => accPerShare checkpoint (scaled)
// ---- accounting ----
uint256 public totalReceived;
uint256 public totalToOwner;
uint256 public totalToPool; // holder funds actually pushed into accPerShare
uint256 public totalClaimed;
uint256 public ownerPending; // owner 25% that failed to forward
uint256 public residual; // holder funds not yet distributed (no shares / dust)
event RoyaltyReceived(uint256 gross, uint256 ownerShare, uint256 poolShare);
event OwnerForwardFailed(uint256 amount);
event OwnerPendingWithdrawn(address indexed to, uint256 amount);
event WethSwept(address indexed caller, uint256 amount);
event Activated(uint256 indexed tokenId, address indexed owner);
event Claimed(address indexed account, uint256 amount);
event TreasuryUpdated(address indexed treasury);
event ERC20Rescued(address indexed token, address indexed to, uint256 amount);
event ETHRescued(address indexed to, uint256 amount);
constructor(address _nft, address _treasury, address _weth) Ownable(msg.sender) {
require(_nft != address(0) && _treasury != address(0) && _weth != address(0), "zero addr");
NFT = IERC721(_nft);
treasury = _treasury;
WETH = IWETH(_weth);
emit TreasuryUpdated(_treasury);
}
// ==================== RECEIVING ====================
receive() external payable {
if (msg.sender == address(WETH)) return; // WETH.withdraw refund; sweepWETH distributes it
_intake(msg.value);
}
fallback() external payable {
if (msg.sender == address(WETH)) return;
_intake(msg.value);
}
function _intake(uint256 amount) internal {
if (amount == 0) return;
uint256 ownerShare = amount * (BPS - HOLDER_BPS) / BPS; // floor(25%)
uint256 poolShare = amount - ownerShare; // remainder (dust) -> holders
totalReceived += amount;
totalToOwner += ownerShare;
_toPool(poolShare); // holder cut into the accumulator
emit RoyaltyReceived(amount, ownerShare, poolShare);
// interaction (last): forward owner share, never revert the receive path
if (ownerShare > 0) {
(bool ok, ) = treasury.call{value: ownerShare}("");
if (!ok) { ownerPending += ownerShare; emit OwnerForwardFailed(ownerShare); }
}
}
/// @dev Push a holder-side amount into the accumulator, rolling prior dust in.
function _toPool(uint256 poolShare) internal {
uint256 dist = poolShare + residual;
if (totalShares > 0 && dist > 0) {
uint256 inc = dist * ACC / totalShares;
accPerShare += inc;
uint256 distributed = inc * totalShares / ACC;
totalToPool += distributed;
residual = dist - distributed; // roll dust forward, no wei lost
} else {
residual = dist; // no active tokens yet
}
}
/// @notice Add ETH straight to the holder pool — 100% to holders, no owner cut.
/// Use this to migrate funds from an old distributor, or to top up
/// rewards as a bonus. Requires active shares so it distributes at once.
function fundPool() external payable {
require(msg.value > 0, "no value");
require(totalShares > 0, "no active shares");
totalReceived += msg.value;
_toPool(msg.value);
emit RoyaltyReceived(msg.value, 0, msg.value);
}
// ==================== WETH ====================
function sweepWETH() external nonReentrant {
uint256 bal = WETH.balanceOf(address(this));
require(bal > 0, "no WETH");
WETH.withdraw(bal);
_intake(bal);
emit WethSwept(msg.sender, bal);
}
// ==================== ACTIVATION ====================
/// @notice Make tokens eligible to earn from now on. Permissionless and safe:
/// it only sets a token's start point to the current accumulator, so a
/// token can never claim royalties from before it was activated.
function activate(uint256[] calldata tokenIds) external {
for (uint256 i; i < tokenIds.length; ++i) {
uint256 id = tokenIds[i];
if (active[id]) continue;
address o = NFT.ownerOf(id); // reverts for nonexistent tokens
active[id] = true;
rewardDebt[id] = accPerShare;
totalShares += 1;
emit Activated(id, o);
}
}
// ==================== CLAIM ====================
/// @notice Claim accrued ETH for tokens you currently own. Unactivated tokens
/// are activated on first claim (they start earning from now).
function claim(uint256[] calldata tokenIds) external nonReentrant {
uint256 acc = accPerShare;
uint256 owed;
bool acted;
for (uint256 i; i < tokenIds.length; ++i) {
uint256 id = tokenIds[i];
require(NFT.ownerOf(id) == msg.sender, "not owner");
if (!active[id]) {
active[id] = true;
rewardDebt[id] = acc;
totalShares += 1;
acted = true;
emit Activated(id, msg.sender);
continue;
}
uint256 p = (acc - rewardDebt[id]) / ACC;
if (p > 0) { rewardDebt[id] = acc; owed += p; }
}
if (owed == 0) { require(acted, "nothing to claim"); return; }
totalClaimed += owed; // effects before interaction
(bool ok, ) = msg.sender.call{value: owed}("");
require(ok, "transfer failed");
emit Claimed(msg.sender, owed);
}
// ==================== VIEWS ====================
function pending(uint256[] calldata tokenIds) external view returns (uint256 total) {
uint256 acc = accPerShare;
for (uint256 i; i < tokenIds.length; ++i) {
uint256 id = tokenIds[i];
if (active[id]) total += (acc - rewardDebt[id]) / ACC;
}
}
function pendingOf(uint256 tokenId) external view returns (uint256) {
if (!active[tokenId]) return 0;
return (accPerShare - rewardDebt[tokenId]) / ACC;
}
/// @notice Holder funds currently held by the contract (owed, unclaimed).
function poolBalance() external view returns (uint256) {
return totalToPool - totalClaimed + residual;
}
// ==================== OWNER ====================
function withdrawOwnerPending() external nonReentrant {
uint256 amount = ownerPending;
require(amount > 0, "nothing pending");
ownerPending = 0;
(bool ok, ) = treasury.call{value: amount}("");
require(ok, "transfer failed");
emit OwnerPendingWithdrawn(treasury, amount);
}
function setTreasury(address _treasury) external onlyOwner {
require(_treasury != address(0), "zero addr");
treasury = _treasury;
emit TreasuryUpdated(_treasury);
}
// ==================== RECOVERY (cannot touch holder funds) ====================
function rescueERC20(address token, address to, uint256 amount) external onlyOwner {
require(token != address(WETH), "use sweepWETH");
require(to != address(0), "zero addr");
IERC20(token).safeTransfer(to, amount);
emit ERC20Rescued(token, to, amount);
}
function rescueETH(address to) external onlyOwner nonReentrant {
require(to != address(0), "zero addr");
uint256 owed = totalToPool - totalClaimed + residual; // holder funds (protected)
require(address(this).balance > owed + ownerPending, "no surplus");
uint256 surplus = address(this).balance - owed - ownerPending;
(bool ok, ) = to.call{value: surplus}("");
require(ok, "transfer failed");
emit ETHRescued(to, surplus);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "_nft",
"type": "address",
"internalType": "address"
},
{
"name": "_treasury",
"type": "address",
"internalType": "address"
},
{
"name": "_weth",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "Activated",
"type": "event",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "Claimed",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ERC20Rescued",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "ETHRescued",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnerForwardFailed",
"type": "event",
"inputs": [
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnerPendingWithdrawn",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RoyaltyReceived",
"type": "event",
"inputs": [
{
"name": "gross",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "ownerShare",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "poolShare",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "TreasuryUpdated",
"type": "event",
"inputs": [
{
"name": "treasury",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "WethSwept",
"type": "event",
"inputs": [
{
"name": "caller",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"type": "fallback",
"stateMutability": "payable"
},
{
"name": "BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "HOLDER_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "NFT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC721"
}
],
"stateMutability": "view"
},
{
"name": "WETH",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IWETH"
}
],
"stateMutability": "view"
},
{
"name": "accPerShare",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "activate",
"type": "function",
"inputs": [
{
"name": "tokenIds",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "active",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "claim",
"type": "function",
"inputs": [
{
"name": "tokenIds",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "fundPool",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "ownerPending",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pending",
"type": "function",
"inputs": [
{
"name": "tokenIds",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [
{
"name": "total",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pendingOf",
"type": "function",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "poolBalance",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueERC20",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueETH",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "residual",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "rewardDebt",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "setTreasury",
"type": "function",
"inputs": [
{
"name": "_treasury",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sweepWETH",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "totalClaimed",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalReceived",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalShares",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalToOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalToPool",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "treasury",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "withdrawOwnerPending",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60c060405234801562000010575f80fd5b5060405162001999380380620019998339810160408190526200003391620001a1565b33806200005a57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b620000658162000136565b50600180556001600160a01b038316158015906200008b57506001600160a01b03821615155b8015620000a057506001600160a01b03811615155b620000da5760405162461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b604482015260640162000051565b6001600160a01b03838116608052600280546001600160a01b03191684831690811790915590821660a0526040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d1905f90a2505050620001e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200019c575f80fd5b919050565b5f805f60608486031215620001b4575f80fd5b620001bf8462000185565b9250620001cf6020850162000185565b9150620001df6040850162000185565b90509250925092565b60805160a05161175e6200023b5f395f81816101d401528181610211015281816104bc015281816109a701528181610a69015261116a01525f818161039e01528181610b700152610ca8015261175e5ff3fe6080604052600436106101c5575f3560e01c80637e7feaa7116100f6578063a3c2c46211610094578063d54ad2a111610063578063d54ad2a114610512578063f0f4426014610527578063f2fde38b14610546578063f3371e9a1461056557610207565b8063a3c2c46214610496578063ad5c4648146104ab578063b2118a8d146104de578063d2890a01146104fd57610207565b806390b68959116100d057806390b6895914610439578063918570c81461045857806396365d441461046d578063a0e3d3d91461048157610207565b80637e7feaa7146103c05780638033d581146103df5780638da5cb5b1461041d57610207565b80636222749e116101635780636ba4c1381161013d5780636ba4c1381461035257806370f37d2714610371578063715018a6146103795780637c0b8de21461038d57610207565b80636222749e1461030957806369a48b711461032857806369ec28371461033d57610207565b8063249d39e91161019f578063249d39e91461028057806333d4d309146102a85780633a98ef39146102bd57806361d027b3146102d257610207565b806304824e701461023957806309bdce4a14610258578063128ece9b1461026c57610207565b36610207576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036101fc57005b61020534610590565b005b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036101fc57005b348015610244575f80fd5b50610205610253366004611540565b6106f5565b348015610263575f80fd5b50610205610879565b348015610277575f80fd5b50610205610988565b34801561028b575f80fd5b5061029561271081565b6040519081526020015b60405180910390f35b3480156102b3575f80fd5b5061029560095481565b3480156102c8575f80fd5b5061029560045481565b3480156102dd575f80fd5b506002546102f1906001600160a01b031681565b6040516001600160a01b03909116815260200161029f565b348015610314575f80fd5b50610205610323366004611562565b610b10565b348015610333575f80fd5b50610295600c5481565b348015610348575f80fd5b5061029560085481565b34801561035d575f80fd5b5061020561036c366004611562565b610c69565b610205610f6d565b348015610384575f80fd5b5061020561104b565b348015610398575f80fd5b506102f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156103cb575f80fd5b506102956103da3660046115d1565b61105c565b3480156103ea575f80fd5b5061040d6103f93660046115d1565b60056020525f908152604090205460ff1681565b604051901515815260200161029f565b348015610428575f80fd5b505f546001600160a01b03166102f1565b348015610444575f80fd5b50610295610453366004611562565b6110ac565b348015610463575f80fd5b50610295611d4c81565b348015610478575f80fd5b5061029561113d565b34801561048c575f80fd5b50610295600b5481565b3480156104a1575f80fd5b5061029560075481565b3480156104b6575f80fd5b506102f17f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e9575f80fd5b506102056104f83660046115e8565b611160565b348015610508575f80fd5b5061029560035481565b34801561051d575f80fd5b50610295600a5481565b348015610532575f80fd5b50610205610541366004611540565b611265565b348015610551575f80fd5b50610205610560366004611540565b6112dc565b348015610570575f80fd5b5061029561057f3660046115d1565b60066020525f908152604090205481565b805f0361059a5750565b5f6127106105aa611d4c8261163a565b6105b4908461164d565b6105be9190611664565b90505f6105cb828461163a565b90508260075f8282546105de9190611683565b925050819055508160085f8282546105f69190611683565b90915550610605905081611316565b60408051848152602081018490529081018290527f725846d8fc0c7badc4b32254062afa7128344a531bfb7cc3c0cfcf6a6e2187139060600160405180910390a181156106f0576002546040515f916001600160a01b03169084908381818185875af1925050503d805f8114610696576040519150601f19603f3d011682016040523d82523d5f602084013e61069b565b606091505b50509050806106ee5782600b5f8282546106b59190611683565b90915550506040518381527f2c0d3c07e61b68d278d84823554af06210a58fd87c329f5ece3a1d507a9a27dc9060200160405180910390a15b505b505050565b6106fd6113cc565b6107056113f8565b6001600160a01b0381166107345760405162461bcd60e51b815260040161072b90611696565b60405180910390fd5b5f600c54600a54600954610748919061163a565b6107529190611683565b9050600b54816107629190611683565b471161079d5760405162461bcd60e51b815260206004820152600a6024820152696e6f20737572706c757360b01b604482015260640161072b565b600b545f906107ac834761163a565b6107b6919061163a565b90505f836001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610801576040519150601f19603f3d011682016040523d82523d5f602084013e610806565b606091505b50509050806108275760405162461bcd60e51b815260040161072b906116b9565b836001600160a01b03167fb3579861130e4da8bb7b87c54d2d139937f23bcd6e4ebed9e75d0f78ab1cc1188360405161086291815260200190565b60405180910390a250505061087660018055565b50565b6108816113f8565b600b54806108c35760405162461bcd60e51b815260206004820152600f60248201526e6e6f7468696e672070656e64696e6760881b604482015260640161072b565b5f600b8190556002546040516001600160a01b039091169083908381818185875af1925050503d805f8114610913576040519150601f19603f3d011682016040523d82523d5f602084013e610918565b606091505b50509050806109395760405162461bcd60e51b815260040161072b906116b9565b6002546040518381526001600160a01b03909116907f4448ebf1620259b38435bd2e30b79bb947b2fd7b206cee663e0314ec1d86c9a49060200160405180910390a2505061098660018055565b565b6109906113f8565b6040516370a0823160e01b81523060048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156109f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1891906116e2565b90505f8111610a535760405162461bcd60e51b81526020600482015260076024820152660dcde40ae8aa8960cb1b604482015260640161072b565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015610ab2575f80fd5b505af1158015610ac4573d5f803e3d5ffd5b50505050610ad181610590565b60405181815233907f8918f683c5a050e9ba711d910165d802e055b01300906131a2800ebbd9f63ec09060200160405180910390a25061098660018055565b5f5b818110156106f0575f838383818110610b2d57610b2d6116f9565b602090810292909201355f81815260059093526040909220549192505060ff1615610b585750610c61565b6040516331a9108f60e11b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be1919061170d565b5f838152600560209081526040808320805460ff19166001908117909155600354600690935290832091909155600480549394509092909190610c25908490611683565b90915550506040516001600160a01b0382169083907ee47d1830c1a06163b9d81f720d6b0a11e4558b9631a53afb8ec4722704543a905f90a350505b600101610b12565b610c716113f8565b6003545f80805b84811015610e5b575f868683818110610c9357610c936116f9565b905060200201359050336001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610cf491815260200190565b602060405180830381865afa158015610d0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d33919061170d565b6001600160a01b031614610d755760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b604482015260640161072b565b5f8181526005602052604090205460ff16610dff575f818152600560209081526040808320805460ff19166001908117909155600690925282208790556004805491929091610dc5908490611683565b909155505060405160019350339082907ee47d1830c1a06163b9d81f720d6b0a11e4558b9631a53afb8ec4722704543a905f90a350610e53565b5f81815260066020526040812054670de0b6b3a764000090610e21908861163a565b610e2b9190611664565b90508015610e50575f828152600660205260409020869055610e4d8186611683565b94505b50505b600101610c78565b50815f03610eab5780610ea35760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b604482015260640161072b565b505050610f60565b81600a5f828254610ebc9190611683565b90915550506040515f90339084908381818185875af1925050503d805f8114610f00576040519150601f19603f3d011682016040523d82523d5f602084013e610f05565b606091505b5050905080610f265760405162461bcd60e51b815260040161072b906116b9565b60405183815233907fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9060200160405180910390a2505050505b610f6960018055565b5050565b5f3411610fa75760405162461bcd60e51b81526020600482015260086024820152676e6f2076616c756560c01b604482015260640161072b565b5f60045411610feb5760405162461bcd60e51b815260206004820152601060248201526f6e6f206163746976652073686172657360801b604482015260640161072b565b3460075f828254610ffc9190611683565b9091555061100b905034611316565b60408051348082525f60208301528183015290517f725846d8fc0c7badc4b32254062afa7128344a531bfb7cc3c0cfcf6a6e2187139181900360600190a1565b6110536113cc565b6109865f611422565b5f8181526005602052604081205460ff1661107857505f919050565b5f82815260066020526040902054600354670de0b6b3a76400009161109c9161163a565b6110a69190611664565b92915050565b6003545f90815b83811015611135575f8585838181106110ce576110ce6116f9565b602090810292909201355f81815260059093526040909220549192505060ff161561112c575f81815260066020526040902054670de0b6b3a764000090611115908561163a565b61111f9190611664565b6111299085611683565b93505b506001016110b3565b505092915050565b5f600c54600a54600954611151919061163a565b61115b9190611683565b905090565b6111686113cc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316036111d95760405162461bcd60e51b815260206004820152600d60248201526c0eae6ca40e6eecacae0ae8aa89609b1b604482015260640161072b565b6001600160a01b0382166111ff5760405162461bcd60e51b815260040161072b90611696565b6112136001600160a01b0384168383611471565b816001600160a01b0316836001600160a01b03167f8bbfbb5d7fcacf6fc74005cdede0635561638507f576c95f7f294c22141be2e58360405161125891815260200190565b60405180910390a3505050565b61126d6113cc565b6001600160a01b0381166112935760405162461bcd60e51b815260040161072b90611696565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d1905f90a250565b6112e46113cc565b6001600160a01b03811661130d57604051631e4fbdf760e01b81525f600482015260240161072b565b61087681611422565b5f600c54826113259190611683565b90505f60045411801561133757505f81115b156113c6576004545f90611353670de0b6b3a76400008461164d565b61135d9190611664565b90508060035f8282546113709190611683565b90915550506004545f90670de0b6b3a76400009061138e908461164d565b6113989190611664565b90508060095f8282546113ab9190611683565b909155506113bb9050818461163a565b600c5550610f699050565b600c5550565b5f546001600160a01b031633146109865760405163118cdaa760e01b815233600482015260240161072b565b60026001540361141b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b17815282516106f093879390925f9283929183919082885af1806114df576040513d5f823e3d81fd5b50505f513d915081156114f6578060011415611503565b6001600160a01b0384163b155b156106ee57604051635274afe760e01b81526001600160a01b038516600482015260240161072b565b6001600160a01b0381168114610876575f80fd5b5f60208284031215611550575f80fd5b813561155b8161152c565b9392505050565b5f8060208385031215611573575f80fd5b823567ffffffffffffffff8082111561158a575f80fd5b818501915085601f83011261159d575f80fd5b8135818111156115ab575f80fd5b8660208260051b85010111156115bf575f80fd5b60209290920196919550909350505050565b5f602082840312156115e1575f80fd5b5035919050565b5f805f606084860312156115fa575f80fd5b83356116058161152c565b925060208401356116158161152c565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b818103818111156110a6576110a6611626565b80820281158282048414176110a6576110a6611626565b5f8261167e57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156110a6576110a6611626565b6020808252600990820152683d32b9379030b2323960b91b604082015260600190565b6020808252600f908201526e1d1c985b9cd9995c8819985a5b1959608a1b604082015260600190565b5f602082840312156116f2575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561171d575f80fd5b815161155b8161152c56fea26469706673582212200593baa11de7f789d34d45f042469ba17b3723869b42a7008c71b06e8d37e01964736f6c634300081800330000000000000000000000008c823f397840c914d4c671301800372e8a0f6b4500000000000000000000000062f8ef5178d2ae55c938e826797e692e2937f3210000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73
0x6080604052600436106101c5575f3560e01c80637e7feaa7116100f6578063a3c2c46211610094578063d54ad2a111610063578063d54ad2a114610512578063f0f4426014610527578063f2fde38b14610546578063f3371e9a1461056557610207565b8063a3c2c46214610496578063ad5c4648146104ab578063b2118a8d146104de578063d2890a01146104fd57610207565b806390b68959116100d057806390b6895914610439578063918570c81461045857806396365d441461046d578063a0e3d3d91461048157610207565b80637e7feaa7146103c05780638033d581146103df5780638da5cb5b1461041d57610207565b80636222749e116101635780636ba4c1381161013d5780636ba4c1381461035257806370f37d2714610371578063715018a6146103795780637c0b8de21461038d57610207565b80636222749e1461030957806369a48b711461032857806369ec28371461033d57610207565b8063249d39e91161019f578063249d39e91461028057806333d4d309146102a85780633a98ef39146102bd57806361d027b3146102d257610207565b806304824e701461023957806309bdce4a14610258578063128ece9b1461026c57610207565b36610207576001600160a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad731633036101fc57005b61020534610590565b005b6001600160a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad731633036101fc57005b348015610244575f80fd5b50610205610253366004611540565b6106f5565b348015610263575f80fd5b50610205610879565b348015610277575f80fd5b50610205610988565b34801561028b575f80fd5b5061029561271081565b6040519081526020015b60405180910390f35b3480156102b3575f80fd5b5061029560095481565b3480156102c8575f80fd5b5061029560045481565b3480156102dd575f80fd5b506002546102f1906001600160a01b031681565b6040516001600160a01b03909116815260200161029f565b348015610314575f80fd5b50610205610323366004611562565b610b10565b348015610333575f80fd5b50610295600c5481565b348015610348575f80fd5b5061029560085481565b34801561035d575f80fd5b5061020561036c366004611562565b610c69565b610205610f6d565b348015610384575f80fd5b5061020561104b565b348015610398575f80fd5b506102f17f0000000000000000000000008c823f397840c914d4c671301800372e8a0f6b4581565b3480156103cb575f80fd5b506102956103da3660046115d1565b61105c565b3480156103ea575f80fd5b5061040d6103f93660046115d1565b60056020525f908152604090205460ff1681565b604051901515815260200161029f565b348015610428575f80fd5b505f546001600160a01b03166102f1565b348015610444575f80fd5b50610295610453366004611562565b6110ac565b348015610463575f80fd5b50610295611d4c81565b348015610478575f80fd5b5061029561113d565b34801561048c575f80fd5b50610295600b5481565b3480156104a1575f80fd5b5061029560075481565b3480156104b6575f80fd5b506102f17f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b3480156104e9575f80fd5b506102056104f83660046115e8565b611160565b348015610508575f80fd5b5061029560035481565b34801561051d575f80fd5b50610295600a5481565b348015610532575f80fd5b50610205610541366004611540565b611265565b348015610551575f80fd5b50610205610560366004611540565b6112dc565b348015610570575f80fd5b5061029561057f3660046115d1565b60066020525f908152604090205481565b805f0361059a5750565b5f6127106105aa611d4c8261163a565b6105b4908461164d565b6105be9190611664565b90505f6105cb828461163a565b90508260075f8282546105de9190611683565b925050819055508160085f8282546105f69190611683565b90915550610605905081611316565b60408051848152602081018490529081018290527f725846d8fc0c7badc4b32254062afa7128344a531bfb7cc3c0cfcf6a6e2187139060600160405180910390a181156106f0576002546040515f916001600160a01b03169084908381818185875af1925050503d805f8114610696576040519150601f19603f3d011682016040523d82523d5f602084013e61069b565b606091505b50509050806106ee5782600b5f8282546106b59190611683565b90915550506040518381527f2c0d3c07e61b68d278d84823554af06210a58fd87c329f5ece3a1d507a9a27dc9060200160405180910390a15b505b505050565b6106fd6113cc565b6107056113f8565b6001600160a01b0381166107345760405162461bcd60e51b815260040161072b90611696565b60405180910390fd5b5f600c54600a54600954610748919061163a565b6107529190611683565b9050600b54816107629190611683565b471161079d5760405162461bcd60e51b815260206004820152600a6024820152696e6f20737572706c757360b01b604482015260640161072b565b600b545f906107ac834761163a565b6107b6919061163a565b90505f836001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610801576040519150601f19603f3d011682016040523d82523d5f602084013e610806565b606091505b50509050806108275760405162461bcd60e51b815260040161072b906116b9565b836001600160a01b03167fb3579861130e4da8bb7b87c54d2d139937f23bcd6e4ebed9e75d0f78ab1cc1188360405161086291815260200190565b60405180910390a250505061087660018055565b50565b6108816113f8565b600b54806108c35760405162461bcd60e51b815260206004820152600f60248201526e6e6f7468696e672070656e64696e6760881b604482015260640161072b565b5f600b8190556002546040516001600160a01b039091169083908381818185875af1925050503d805f8114610913576040519150601f19603f3d011682016040523d82523d5f602084013e610918565b606091505b50509050806109395760405162461bcd60e51b815260040161072b906116b9565b6002546040518381526001600160a01b03909116907f4448ebf1620259b38435bd2e30b79bb947b2fd7b206cee663e0314ec1d86c9a49060200160405180910390a2505061098660018055565b565b6109906113f8565b6040516370a0823160e01b81523060048201525f907f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316906370a0823190602401602060405180830381865afa1580156109f4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1891906116e2565b90505f8111610a535760405162461bcd60e51b81526020600482015260076024820152660dcde40ae8aa8960cb1b604482015260640161072b565b604051632e1a7d4d60e01b8152600481018290527f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015610ab2575f80fd5b505af1158015610ac4573d5f803e3d5ffd5b50505050610ad181610590565b60405181815233907f8918f683c5a050e9ba711d910165d802e055b01300906131a2800ebbd9f63ec09060200160405180910390a25061098660018055565b5f5b818110156106f0575f838383818110610b2d57610b2d6116f9565b602090810292909201355f81815260059093526040909220549192505060ff1615610b585750610c61565b6040516331a9108f60e11b8152600481018290525f907f0000000000000000000000008c823f397840c914d4c671301800372e8a0f6b456001600160a01b031690636352211e90602401602060405180830381865afa158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be1919061170d565b5f838152600560209081526040808320805460ff19166001908117909155600354600690935290832091909155600480549394509092909190610c25908490611683565b90915550506040516001600160a01b0382169083907ee47d1830c1a06163b9d81f720d6b0a11e4558b9631a53afb8ec4722704543a905f90a350505b600101610b12565b610c716113f8565b6003545f80805b84811015610e5b575f868683818110610c9357610c936116f9565b905060200201359050336001600160a01b03167f0000000000000000000000008c823f397840c914d4c671301800372e8a0f6b456001600160a01b0316636352211e836040518263ffffffff1660e01b8152600401610cf491815260200190565b602060405180830381865afa158015610d0f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d33919061170d565b6001600160a01b031614610d755760405162461bcd60e51b81526020600482015260096024820152683737ba1037bbb732b960b91b604482015260640161072b565b5f8181526005602052604090205460ff16610dff575f818152600560209081526040808320805460ff19166001908117909155600690925282208790556004805491929091610dc5908490611683565b909155505060405160019350339082907ee47d1830c1a06163b9d81f720d6b0a11e4558b9631a53afb8ec4722704543a905f90a350610e53565b5f81815260066020526040812054670de0b6b3a764000090610e21908861163a565b610e2b9190611664565b90508015610e50575f828152600660205260409020869055610e4d8186611683565b94505b50505b600101610c78565b50815f03610eab5780610ea35760405162461bcd60e51b815260206004820152601060248201526f6e6f7468696e6720746f20636c61696d60801b604482015260640161072b565b505050610f60565b81600a5f828254610ebc9190611683565b90915550506040515f90339084908381818185875af1925050503d805f8114610f00576040519150601f19603f3d011682016040523d82523d5f602084013e610f05565b606091505b5050905080610f265760405162461bcd60e51b815260040161072b906116b9565b60405183815233907fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a9060200160405180910390a2505050505b610f6960018055565b5050565b5f3411610fa75760405162461bcd60e51b81526020600482015260086024820152676e6f2076616c756560c01b604482015260640161072b565b5f60045411610feb5760405162461bcd60e51b815260206004820152601060248201526f6e6f206163746976652073686172657360801b604482015260640161072b565b3460075f828254610ffc9190611683565b9091555061100b905034611316565b60408051348082525f60208301528183015290517f725846d8fc0c7badc4b32254062afa7128344a531bfb7cc3c0cfcf6a6e2187139181900360600190a1565b6110536113cc565b6109865f611422565b5f8181526005602052604081205460ff1661107857505f919050565b5f82815260066020526040902054600354670de0b6b3a76400009161109c9161163a565b6110a69190611664565b92915050565b6003545f90815b83811015611135575f8585838181106110ce576110ce6116f9565b602090810292909201355f81815260059093526040909220549192505060ff161561112c575f81815260066020526040902054670de0b6b3a764000090611115908561163a565b61111f9190611664565b6111299085611683565b93505b506001016110b3565b505092915050565b5f600c54600a54600954611151919061163a565b61115b9190611683565b905090565b6111686113cc565b7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316836001600160a01b0316036111d95760405162461bcd60e51b815260206004820152600d60248201526c0eae6ca40e6eecacae0ae8aa89609b1b604482015260640161072b565b6001600160a01b0382166111ff5760405162461bcd60e51b815260040161072b90611696565b6112136001600160a01b0384168383611471565b816001600160a01b0316836001600160a01b03167f8bbfbb5d7fcacf6fc74005cdede0635561638507f576c95f7f294c22141be2e58360405161125891815260200190565b60405180910390a3505050565b61126d6113cc565b6001600160a01b0381166112935760405162461bcd60e51b815260040161072b90611696565b600280546001600160a01b0319166001600160a01b0383169081179091556040517f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d1905f90a250565b6112e46113cc565b6001600160a01b03811661130d57604051631e4fbdf760e01b81525f600482015260240161072b565b61087681611422565b5f600c54826113259190611683565b90505f60045411801561133757505f81115b156113c6576004545f90611353670de0b6b3a76400008461164d565b61135d9190611664565b90508060035f8282546113709190611683565b90915550506004545f90670de0b6b3a76400009061138e908461164d565b6113989190611664565b90508060095f8282546113ab9190611683565b909155506113bb9050818461163a565b600c5550610f699050565b600c5550565b5f546001600160a01b031633146109865760405163118cdaa760e01b815233600482015260240161072b565b60026001540361141b57604051633ee5aeb560e01b815260040160405180910390fd5b6002600155565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b17815282516106f093879390925f9283929183919082885af1806114df576040513d5f823e3d81fd5b50505f513d915081156114f6578060011415611503565b6001600160a01b0384163b155b156106ee57604051635274afe760e01b81526001600160a01b038516600482015260240161072b565b6001600160a01b0381168114610876575f80fd5b5f60208284031215611550575f80fd5b813561155b8161152c565b9392505050565b5f8060208385031215611573575f80fd5b823567ffffffffffffffff8082111561158a575f80fd5b818501915085601f83011261159d575f80fd5b8135818111156115ab575f80fd5b8660208260051b85010111156115bf575f80fd5b60209290920196919550909350505050565b5f602082840312156115e1575f80fd5b5035919050565b5f805f606084860312156115fa575f80fd5b83356116058161152c565b925060208401356116158161152c565b929592945050506040919091013590565b634e487b7160e01b5f52601160045260245ffd5b818103818111156110a6576110a6611626565b80820281158282048414176110a6576110a6611626565b5f8261167e57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156110a6576110a6611626565b6020808252600990820152683d32b9379030b2323960b91b604082015260600190565b6020808252600f908201526e1d1c985b9cd9995c8819985a5b1959608a1b604082015260600190565b5f602082840312156116f2575f80fd5b5051919050565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121561171d575f80fd5b815161155b8161152c56fea26469706673582212200593baa11de7f789d34d45f042469ba17b3723869b42a7008c71b06e8d37e01964736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
WETH (WETH) | WETH | 0.000022 | $1,892.33 | $0.04 |
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xcdf31d…76b406 | 2 hrs agoTue, 18 Aug 2026 01:38:25 UTC | 0xd8138f…426a | [0] 0x000000000000…2937f321 data: 0x000000000000000000…39bf9fbe |
| 0x0c3835…a503a0 | 8 hrs agoMon, 17 Aug 2026 19:36:25 UTC | 0xd8138f…426a | [0] 0x000000000000…9c08319b data: 0x000000000000000000…51368374 |
| 0x051f69…efa0ea | 23 hrs agoMon, 17 Aug 2026 05:02:48 UTC | 0xd8138f…426a | [0] 0x000000000000…22d30ec3 data: 0x000000000000000000…6c741e68 |
| 0x5341b4…dae44e | 1 day agoMon, 17 Aug 2026 00:27:34 UTC | 0xd8138f…426a | [0] 0x000000000000…547cd4c2 data: 0x000000000000000000…557243f8 |
| 0x0c285c…d88f8d | 1 day agoSun, 16 Aug 2026 05:54:01 UTC | 0xd8138f…426a | [0] 0x000000000000…18832ed5 data: 0x000000000000000000…6c9bd536 |
| 0xfa8781…2c48ad | 2 days agoSun, 16 Aug 2026 02:32:25 UTC | 0xd8138f…426a | [0] 0x000000000000…09f9a616 data: 0x000000000000000000…45d37fa2 |
| 0x1cb1ec…7d40a1 | 2 days agoSun, 16 Aug 2026 01:15:36 UTC | 0xd8138f…426a | [0] 0x000000000000…3feee9f2 data: 0x000000000000000000…72524b84 |
| 0x2569ca…e9d2c4 | 2 days agoSat, 15 Aug 2026 15:06:44 UTC | 0xd8138f…426a | [0] 0x000000000000…96f2e3a3 data: 0x000000000000000000…87b89138 |
| 0x7dcb2d…f99367 | 2 days agoSat, 15 Aug 2026 10:20:11 UTC | 0xd8138f…426a | [0] 0x000000000000…edbd6c15 data: 0x000000000000000000…d937aa6c |
| 0x41b8a2…27f5b6 | 3 days agoSat, 15 Aug 2026 04:25:27 UTC | 0x725846…8713 | data: 0x000000000000000000…76ff8e80 |
| 0xc6bea1…b71f55 | 3 days agoSat, 15 Aug 2026 03:45:35 UTC | 0xd8138f…426a | [0] 0x000000000000…9d24bebf data: 0x000000000000000000…8bef9504 |
| 0x1d8190…2eaefa | 3 days agoSat, 15 Aug 2026 01:32:24 UTC | 0xd8138f…426a | [0] 0x000000000000…96f2e3a3 data: 0x000000000000000000…cf8c88ca |
| 0xff2c52…b29149 | 3 days agoSat, 15 Aug 2026 01:21:01 UTC | 0xd8138f…426a | [0] 0x000000000000…96f2e3a3 data: 0x000000000000000000…fd403edb |
| 0x6c281a…201b21 | 3 days agoFri, 14 Aug 2026 23:46:56 UTC | 0xd8138f…426a | [0] 0x000000000000…96f2e3a3 data: 0x000000000000000000…e5651c66 |
| 0x9c1a2d…4e6fcc | 3 days agoFri, 14 Aug 2026 07:43:17 UTC | 0xd8138f…426a | [0] 0x000000000000…55eea4ba data: 0x000000000000000000…a8056288 |
| 0x1b5db1…49ab78 | 3 days agoFri, 14 Aug 2026 07:07:48 UTC | 0xd8138f…426a | [0] 0x000000000000…9c08319b data: 0x000000000000000000…f49cfc2e |
| 0x545ba3…2cc821 | 3 days agoFri, 14 Aug 2026 05:49:52 UTC | 0xd8138f…426a | [0] 0x000000000000…1a3c0660 data: 0x000000000000000000…ba94c6b0 |
| 0x8bac35…87e4d8 | 4 days agoFri, 14 Aug 2026 02:52:53 UTC | 0xd8138f…426a | [0] 0x000000000000…0c916d80 data: 0x000000000000000000…5d4a6358 |
| 0xd6412b…daa222 | 4 days agoThu, 13 Aug 2026 22:04:34 UTC | 0xd8138f…426a | [0] 0x000000000000…8f62b473 data: 0x000000000000000000…bb206cb7 |
| 0x2eed68…54e8f3 | 4 days agoThu, 13 Aug 2026 20:34:23 UTC | 0xd8138f…426a | [0] 0x000000000000…1297515c data: 0x000000000000000000…effdb210 |
| 0xd9aeaa…72b953 | 4 days agoThu, 13 Aug 2026 20:16:58 UTC | 0xd8138f…426a | [0] 0x000000000000…2937f321 data: 0x000000000000000000…1177d7a8 |
| 0x8bfc6b…4478df | 4 days agoThu, 13 Aug 2026 17:54:48 UTC | 0xd8138f…426a | [0] 0x000000000000…c8e37700 data: 0x000000000000000000…c5f7ca82 |
| 0x642f63…42b6dd | 4 days agoThu, 13 Aug 2026 16:24:24 UTC | 0xd8138f…426a | [0] 0x000000000000…318ae1ec data: 0x000000000000000000…8bef9504 |
| 0xc6c180…bc30f8 | 4 days agoThu, 13 Aug 2026 16:12:42 UTC | 0xd8138f…426a | [0] 0x000000000000…318ae1ec data: 0x000000000000000000…23fcf2b6 |
| 0x98268c…53bc42 | 4 days agoThu, 13 Aug 2026 12:42:13 UTC | 0xd8138f…426a | [0] 0x000000000000…99e77000 data: 0x000000000000000000…18b39f9f |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xcdf31d…76b406 | claim | 39,309,547 | 2 hrs agoTue, 18 Aug 2026 01:38:25 UTC | 0x62f8…f321 | IN | RoyaltyPool | $0.000 ETH | 0.00001397 | |
| 0x0c3835…a503a0 | claim | 39,092,909 | 8 hrs agoMon, 17 Aug 2026 19:36:25 UTC | 0x2b12…319b | IN | RoyaltyPool | $0.000 ETH | 0.00000787 | |
| 0x051f69…efa0ea | claim | 38,570,269 | 23 hrs agoMon, 17 Aug 2026 05:02:48 UTC | 0x4443…0ec3 | IN | RoyaltyPool | $0.000 ETH | 0.00005480 | |
| 0x5341b4…dae44e | claim | 38,405,756 | 1 day agoMon, 17 Aug 2026 00:27:34 UTC | 0xdb36…d4c2 | IN | RoyaltyPool | $0.000 ETH | 0.00006782 | |
| 0x0c285c…d88f8d | claim | 37,740,153 | 1 day agoSun, 16 Aug 2026 05:54:01 UTC | 0x09ca…2ed5 | IN | RoyaltyPool | $0.000 ETH | 0.00000455 | |
| 0xfa8781…2c48ad | claim | 37,619,651 | 2 days agoSun, 16 Aug 2026 02:32:25 UTC | 0xee88…a616 | IN | RoyaltyPool | $0.000 ETH | 0.00001230 | |
| 0x1cb1ec…7d40a1 | claim | 37,573,716 | 2 days agoSun, 16 Aug 2026 01:15:36 UTC | 0xfdbe…e9f2 | IN | RoyaltyPool | $0.000 ETH | 0.00000736 | |
| 0x2569ca…e9d2c4 | claim | 37,209,315 | 2 days agoSat, 15 Aug 2026 15:06:44 UTC | 0x231e…e3a3 | IN | RoyaltyPool | $0.000 ETH | 0.00002219 | |
| 0x7dcb2d…f99367 | claim | 37,037,910 | 2 days agoSat, 15 Aug 2026 10:20:11 UTC | 0x88f1…6c15 | IN | RoyaltyPool | $0.000 ETH | 0.00001067 | |
| 0xc6bea1…b71f55 | claim | 36,802,038 | 3 days agoSat, 15 Aug 2026 03:45:35 UTC | 0x56b9…bebf | IN | RoyaltyPool | $0.000 ETH | 0.00000802 | |
| 0x1d8190…2eaefa | claim | 36,722,316 | 3 days agoSat, 15 Aug 2026 01:32:24 UTC | 0x231e…e3a3 | IN | RoyaltyPool | $0.000 ETH | 0.00005717 | |
| 0xff2c52…b29149 | claim | 36,715,515 | 3 days agoSat, 15 Aug 2026 01:21:01 UTC | 0x231e…e3a3 | IN | RoyaltyPool | $0.000 ETH | 0.00002997 | |
| 0x6c281a…201b21 | claim | 36,659,174 | 3 days agoFri, 14 Aug 2026 23:46:56 UTC | 0x231e…e3a3 | IN | RoyaltyPool | $0.000 ETH | 0.00023248 | |
| 0x9c1a2d…4e6fcc | claim | 36,082,084 | 3 days agoFri, 14 Aug 2026 07:43:17 UTC | 0x970a…a4ba | IN | RoyaltyPool | $0.000 ETH | 0.00003077 | |
| 0x1b5db1…49ab78 | claim | 36,060,841 | 3 days agoFri, 14 Aug 2026 07:07:48 UTC | 0x2b12…319b | IN | RoyaltyPool | $0.000 ETH | 0.00000838 | |
| 0x8bac35…87e4d8 | claim | 35,908,137 | 4 days agoFri, 14 Aug 2026 02:52:53 UTC | 0xfc1a…6d80 | IN | RoyaltyPool | $0.000 ETH | 0.00000667 | |
| 0xd6412b…daa222 | claim | 35,735,390 | 4 days agoThu, 13 Aug 2026 22:04:34 UTC | 0x1ec6…b473 | IN | RoyaltyPool | $0.000 ETH | 0.00012721 | |
| 0x2eed68…54e8f3 | claim | 35,681,377 | 4 days agoThu, 13 Aug 2026 20:34:23 UTC | 0x19f0…515c | IN | RoyaltyPool | $0.000 ETH | 0.00000698 | |
| 0xd9aeaa…72b953 | claim | 35,670,941 | 4 days agoThu, 13 Aug 2026 20:16:58 UTC | 0x62f8…f321 | IN | RoyaltyPool | $0.000 ETH | 0.00001888 | |
| 0x8bfc6b…4478df | claim | 35,585,821 | 4 days agoThu, 13 Aug 2026 17:54:48 UTC | 0xc72b…7700 | IN | RoyaltyPool | $0.000 ETH | 0.00000602 | |
| 0x642f63…42b6dd | claim | 35,531,689 | 4 days agoThu, 13 Aug 2026 16:24:24 UTC | 0x08f3…e1ec | IN | RoyaltyPool | $0.000 ETH | 0.00000983 | |
| 0xc6c180…bc30f8 | claim | 35,524,672 | 4 days agoThu, 13 Aug 2026 16:12:42 UTC | 0x08f3…e1ec | IN | RoyaltyPool | $0.000 ETH | 0.00002161 | |
| 0x98268c…53bc42 | claim | 35,398,686 | 4 days agoThu, 13 Aug 2026 12:42:13 UTC | 0x0000…7000 | IN | RoyaltyPool | $0.000 ETH | 0.00022257 | |
| 0xabd084…e4b196 | claim | 35,368,383 | 4 days agoThu, 13 Aug 2026 11:51:34 UTC | 0x3501…5d36 | IN | RoyaltyPool | $0.000 ETH | 0.00001320 | |
| 0xd0bee3…15a4fb | claim | 35,294,128 | 4 days agoThu, 13 Aug 2026 09:47:17 UTC | 0x0299…6a44 | IN | RoyaltyPool | $0.000 ETH | 0.00000484 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x0d88b966…408353 | Transfer | 38,751,407 | 18 hrs agoMon, 17 Aug 2026 10:05:54 UTC | 0x01c5…5d73 | IN | 0x4cc4…510d | 0.000007 WETH | WETH (WETH) | |
| 0x371b7aa7…95247d | Transfer | 36,613,739 | 3 days agoFri, 14 Aug 2026 22:31:03 UTC | 0xaea7…fa03 | IN | 0x4cc4…510d | 0.000007 WETH | WETH (WETH) | |
| 0x2f6d46c6…2fca15 | Transfer | 34,843,518 | 5 days agoWed, 12 Aug 2026 21:14:14 UTC | 0x3da0…739a | IN | 0x4cc4…510d | 0.000007 WETH | WETH (WETH) | |
| 0x2b255bb2…86c5ee | Transfer | 33,047,848 | 7 days agoMon, 10 Aug 2026 19:24:35 UTC | 0x4cc4…510d | OUT | 0x0000…0000 | 0.00021 WETH | WETH (WETH) | |
| 0x3041073f…5f4206 | Transfer | 32,946,631 | 7 days agoMon, 10 Aug 2026 16:35:45 UTC | 0x2a33…1d38 | IN | 0x4cc4…510d | 0.00003 WETH | WETH (WETH) | |
| 0x25a0b0a7…712e59 | Transfer | 32,729,460 | 7 days agoMon, 10 Aug 2026 10:33:08 UTC | 0xcfda…b2bb | IN | 0x4cc4…510d | 0.000112 WETH | WETH (WETH) | |
| 0xd9b5e408…516d67 | Transfer | 32,727,404 | 7 days agoMon, 10 Aug 2026 10:29:43 UTC | 0xcfda…b2bb | IN | 0x4cc4…510d | 0.000037 WETH | WETH (WETH) | |
| 0xc0c4e342…398d4f | Transfer | 32,687,944 | 7 days agoMon, 10 Aug 2026 09:23:49 UTC | 0x490b…da0c | IN | 0x4cc4…510d | 0.00003 WETH | WETH (WETH) | |
| 0xa273b080…262570 | Transfer | 32,572,155 | 7 days agoMon, 10 Aug 2026 06:10:21 UTC | 0x4cc4…510d | OUT | 0x0000…0000 | 0.00063 WETH | WETH (WETH) | |
| 0x95228b51…59bf3c | Transfer | 32,462,514 | 8 days agoMon, 10 Aug 2026 03:07:10 UTC | 0x00e8…68a8 | IN | 0x4cc4…510d | 0.000007 WETH | WETH (WETH) | |
| 0x09d0e0b5…842bb1 | Transfer | 32,240,922 | 8 days agoSun, 09 Aug 2026 20:57:31 UTC | 0x5b94…5025 | IN | 0x4cc4…510d | 0.000217 WETH | WETH (WETH) | |
| 0x9e6b4a0e…ad8ce8 | Transfer | 32,239,738 | 8 days agoSun, 09 Aug 2026 20:55:32 UTC | 0x5b94…5025 | IN | 0x4cc4…510d | 0.0003 WETH | WETH (WETH) | |
| 0x369ed1a6…3b24d1 | Transfer | 32,239,092 | 8 days agoSun, 09 Aug 2026 20:54:27 UTC | 0x5b94…5025 | IN | 0x4cc4…510d | 0.000105 WETH | WETH (WETH) | |
| 0x4ef467a7…0ac2b2 | Transfer | 32,153,540 | 8 days agoSun, 09 Aug 2026 18:31:47 UTC | 0x4cc4…510d | OUT | 0x0000…0000 | 0.000225 WETH | WETH (WETH) | |
| 0xd09412ab…1e17f8 | Transfer | 32,142,785 | 8 days agoSun, 09 Aug 2026 18:13:50 UTC | 0xac38…4aed | IN | 0x4cc4…510d | 0.000082 WETH | WETH (WETH) | |
| 0x7f46b4c1…c7f5c9 | Transfer | 32,142,605 | 8 days agoSun, 09 Aug 2026 18:13:32 UTC | 0xac38…4aed | IN | 0x4cc4…510d | 0.000022 WETH | WETH (WETH) | |
| 0x6b37d4a6…3b4c1c | Transfer | 32,112,291 | 8 days agoSun, 09 Aug 2026 17:22:57 UTC | 0xac38…4aed | IN | 0x4cc4…510d | 0.000015 WETH | WETH (WETH) | |
| 0x059219f4…6aff48 | Transfer | 32,042,511 | 8 days agoSun, 09 Aug 2026 15:26:32 UTC | 0xac38…4aed | IN | 0x4cc4…510d | 0.00009 WETH | WETH (WETH) | |
| 0x688e4e49…3d7bcb | Transfer | 32,022,419 | 8 days agoSun, 09 Aug 2026 14:53:01 UTC | 0x6a44…ce99 | IN | 0x4cc4…510d | 0.000015 WETH | WETH (WETH) | |
| 0x8359a2c4…be51c6 | Transfer | 31,956,732 | 8 days agoSun, 09 Aug 2026 13:03:19 UTC | 0x4cc4…510d | OUT | 0x0000…0000 | 0.00309 WETH | WETH (WETH) | |
| 0xea199fd7…6f6e88 | Transfer | 31,939,601 | 8 days agoSun, 09 Aug 2026 12:34:41 UTC | 0x6357…c413 | IN | 0x4cc4…510d | 0.000007 WETH | WETH (WETH) | |
| 0x5fa3f417…9b25da | Transfer | 31,923,550 | 8 days agoSun, 09 Aug 2026 12:07:52 UTC | 0x5131…3a19 | IN | 0x4cc4…510d | 0.000022 WETH | WETH (WETH) | |
| 0x15321a47…526483 | Transfer | 31,918,370 | 8 days agoSun, 09 Aug 2026 11:59:13 UTC | 0xf23c…b403 | IN | 0x4cc4…510d | 0.000015 WETH | WETH (WETH) | |
| 0x8043d84a…41c096 | Transfer | 31,917,209 | 8 days agoSun, 09 Aug 2026 11:57:16 UTC | 0xf23c…b403 | IN | 0x4cc4…510d | 0.000015 WETH | WETH (WETH) | |
| 0x834ef83b…26abb1 | Transfer | 31,904,560 | 8 days agoSun, 09 Aug 2026 11:36:08 UTC | 0x3109…9613 | IN | 0x4cc4…510d | 0.000045 WETH | WETH (WETH) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 39,309,547 | 2 hrs agoTue, 18 Aug 2026 01:38:25 UTC | 0xcdf31d…76b406 | CALL | claim | 0x4cc4…510d | OUT | 0x62f8…f321 | 0.00009 ETH |
| 39,092,909 | 8 hrs agoMon, 17 Aug 2026 19:36:25 UTC | 0x0c3835…a503a0 | CALL | claim | 0x4cc4…510d | OUT | 0x2b12…319b | 0.00004 ETH |
| 37,740,153 | 1 day agoSun, 16 Aug 2026 05:54:01 UTC | 0x0c285c…d88f8d | CALL | claim | 0x4cc4…510d | OUT | 0x09ca…2ed5 | 0.00002 ETH |
| 37,619,651 | 2 days agoSun, 16 Aug 2026 02:32:25 UTC | 0xfa8781…2c48ad | CALL | claim | 0x4cc4…510d | OUT | 0xee88…a616 | 0.00006 ETH |
| 37,573,716 | 2 days agoSun, 16 Aug 2026 01:15:36 UTC | 0x1cb1ec…7d40a1 | CALL | claim | 0x4cc4…510d | OUT | 0xfdbe…e9f2 | 0.00002 ETH |
| 37,209,315 | 2 days agoSat, 15 Aug 2026 15:06:44 UTC | 0x2569ca…e9d2c4 | CALL | claim | 0x4cc4…510d | OUT | 0x231e…e3a3 | 0.00010 ETH |
| 36,825,877 | 3 days agoSat, 15 Aug 2026 04:25:27 UTC | 0x41b8a2…27f5b6 | CALL | fulfillAvailableAdvancedOrders | 0x4cc4…510d | OUT | 0x62f8…f321 | 0.00000 ETH |
| 36,825,877 | 3 days agoSat, 15 Aug 2026 04:25:27 UTC | 0x41b8a2…27f5b6 | CALL | fulfillAvailableAdvancedOrders | 0x0000…b395 | IN | 0x4cc4…510d | 0.00002 ETH |
| 36,659,174 | 3 days agoFri, 14 Aug 2026 23:46:56 UTC | 0x6c281a…201b21 | CALL | claim | 0x4cc4…510d | OUT | 0x231e…e3a3 | 0.00091 ETH |
| 36,082,084 | 3 days agoFri, 14 Aug 2026 07:43:17 UTC | 0x9c1a2d…4e6fcc | CALL | claim | 0x4cc4…510d | OUT | 0x970a…a4ba | 0.00010 ETH |
| 36,060,841 | 3 days agoFri, 14 Aug 2026 07:07:48 UTC | 0x1b5db1…49ab78 | CALL | claim | 0x4cc4…510d | OUT | 0x2b12…319b | 0.00002 ETH |
| 36,014,098 | 3 days agoFri, 14 Aug 2026 05:49:52 UTC | 0x545ba3…2cc821 | CALL | handleOps | 0x4cc4…510d | OUT | 0xa316…0660 | 0.00003 ETH |
| 35,908,137 | 4 days agoFri, 14 Aug 2026 02:52:53 UTC | 0x8bac35…87e4d8 | CALL | claim | 0x4cc4…510d | OUT | 0xfc1a…6d80 | 0.00001 ETH |
| 35,735,390 | 4 days agoThu, 13 Aug 2026 22:04:34 UTC | 0xd6412b…daa222 | CALL | claim | 0x4cc4…510d | OUT | 0x1ec6…b473 | 0.00043 ETH |
| 35,681,377 | 4 days agoThu, 13 Aug 2026 20:34:23 UTC | 0x2eed68…54e8f3 | CALL | claim | 0x4cc4…510d | OUT | 0x19f0…515c | 0.00000 ETH |
| 35,670,941 | 4 days agoThu, 13 Aug 2026 20:16:58 UTC | 0xd9aeaa…72b953 | CALL | claim | 0x4cc4…510d | OUT | 0x62f8…f321 | 0.00005 ETH |
| 35,585,821 | 4 days agoThu, 13 Aug 2026 17:54:48 UTC | 0x8bfc6b…4478df | CALL | claim | 0x4cc4…510d | OUT | 0xc72b…7700 | 0.00001 ETH |
| 35,531,689 | 4 days agoThu, 13 Aug 2026 16:24:24 UTC | 0x642f63…42b6dd | CALL | claim | 0x4cc4…510d | OUT | 0x08f3…e1ec | 0.00002 ETH |
| 35,524,672 | 4 days agoThu, 13 Aug 2026 16:12:42 UTC | 0xc6c180…bc30f8 | CALL | claim | 0x4cc4…510d | OUT | 0x08f3…e1ec | 0.00005 ETH |
| 35,398,686 | 4 days agoThu, 13 Aug 2026 12:42:13 UTC | 0x98268c…53bc42 | CALL | claim | 0x4cc4…510d | OUT | 0x0000…7000 | 0.00075 ETH |
| 35,368,383 | 4 days agoThu, 13 Aug 2026 11:51:34 UTC | 0xabd084…e4b196 | CALL | claim | 0x4cc4…510d | OUT | 0x3501…5d36 | 0.00000 ETH |
| 35,294,128 | 4 days agoThu, 13 Aug 2026 09:47:17 UTC | 0xd0bee3…15a4fb | CALL | claim | 0x4cc4…510d | OUT | 0x0299…6a44 | 0.00000 ETH |
| 35,224,515 | 4 days agoThu, 13 Aug 2026 07:50:46 UTC | 0xcc9261…000f36 | CALL | claim | 0x4cc4…510d | OUT | 0x5ae2…503a | 0.00002 ETH |
| 35,109,930 | 4 days agoThu, 13 Aug 2026 04:39:08 UTC | 0x08eeca…8f7a16 | CALL | fulfillAdvancedOrder | 0x4cc4…510d | OUT | 0x62f8…f321 | 0.00000 ETH |
| 35,109,930 | 4 days agoThu, 13 Aug 2026 04:39:08 UTC | 0x08eeca…8f7a16 | CALL | fulfillAdvancedOrder | 0x0000…b395 | IN | 0x4cc4…510d | 0.00002 ETH |