// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
/// @title WANTED: Outlaws of Sherwood — bounty claim
/// @notice Each NFT tokenId (1..21) has a fixed $STAG bounty. The current holder of the NFT
/// claims it ONCE. The owner funds this contract by depositing $STAG, sets the bounties,
/// then lock()s. lock() now REQUIRES the contract to already hold >= the full bounty total,
/// so a locked bounty is a real, funded guarantee (not just a flag). After an expiry the
/// owner may reclaim leftover (unclaimed) $STAG.
///
/// @dev SECONDARY-SALE SEMANTICS: the bounty is claimed ONCE per tokenId by whoever claims first.
/// A buyer of a WANTED on secondary MUST check `claimed(id)` — if true, the bounty is gone.
/// Surface `claimed[id]` in any marketplace/listing UI. WANTED is lock-in-place stakeable, so
/// the holder keeps ownership while staked and the bounty stays claimable during staking.
import "@openzeppelin/contracts/access/Ownable2Step.sol";
interface IERC20 { function transfer(address,uint256) external returns (bool);
function balanceOf(address) external view returns (uint256); }
interface IERC721 { function ownerOf(uint256) external view returns (address); }
contract WantedBounty is Ownable2Step {
uint256 public constant MAX_ID = 21; // WANTED token ids are 1..21
uint256 public constant MIN_CLAIM_WINDOW = 30 days; // holders always get >= 30 days before sweep
IERC20 public immutable STAG; // 0xCDdB2d9838b7eDab2F04aF4943a6EFE42C2f9F49
IERC721 public immutable WANTED; // the WANTED collection NFT
bool public locked; // once locked, bounties can't change
uint256 public expiry; // after this, owner may reclaim unclaimed $STAG
uint256 public totalBounty; // running sum of all set bounties (funding target)
mapping(uint256 => uint256) public bounty; // tokenId => $STAG amount (18 decimals)
mapping(uint256 => bool) public claimed; // tokenId => claimed?
event BountySet(uint256 indexed id, uint256 amount);
event Claimed(uint256 indexed id, address indexed to, uint256 amount);
event Locked(uint256 totalBounty);
event Swept(address indexed to, uint256 amount);
constructor(address stag, address wanted, uint256 expiry_) Ownable(msg.sender) {
require(stag != address(0) && wanted != address(0), "zero addr");
require(expiry_ >= block.timestamp + MIN_CLAIM_WINDOW, "expiry too soon");
STAG = IERC20(stag); WANTED = IERC721(wanted); expiry = expiry_;
}
/// @notice Owner sets each token's bounty (before locking). Batched. Maintains totalBounty so
/// lock() can verify full funding. ids must be 1..21; amounts must be > 0.
function setBounties(uint256[] calldata ids, uint256[] calldata amounts) external onlyOwner {
require(!locked, "locked");
require(ids.length == amounts.length, "len");
for (uint256 i; i < ids.length; ++i) {
uint256 id = ids[i];
require(id >= 1 && id <= MAX_ID, "bad id");
require(amounts[i] > 0, "zero amount");
totalBounty = totalBounty - bounty[id] + amounts[i]; // correct on overwrite
bounty[id] = amounts[i];
emit BountySet(id, amounts[i]);
}
}
/// @notice Freeze bounties so holders can trust them. REQUIRES the contract to already hold the
/// full bounty total — a locked bounty is therefore a funded promise. Irreversible.
function lock() external onlyOwner {
require(totalBounty > 0, "no bounties");
require(STAG.balanceOf(address(this)) >= totalBounty, "underfunded");
locked = true;
emit Locked(totalBounty);
}
/// @notice Current holder of tokenId claims its bounty, once. CEI: flag set before transfer.
function claim(uint256 id) external {
require(locked, "not live");
require(!claimed[id], "already claimed");
require(WANTED.ownerOf(id) == msg.sender, "not holder");
uint256 amt = bounty[id]; require(amt > 0, "no bounty");
claimed[id] = true;
require(STAG.transfer(msg.sender, amt), "transfer failed");
emit Claimed(id, msg.sender, amt);
}
/// @notice Batch claim for a holder owning several. Skips unowned/already-claimed ids.
function claimMany(uint256[] calldata ids) external {
require(locked, "not live");
for (uint256 i; i < ids.length; ++i) {
uint256 id = ids[i];
if (claimed[id]) continue;
if (WANTED.ownerOf(id) != msg.sender) continue;
uint256 amt = bounty[id]; if (amt == 0) continue;
claimed[id] = true;
require(STAG.transfer(msg.sender, amt), "transfer failed");
emit Claimed(id, msg.sender, amt);
}
}
/// @notice After expiry, owner reclaims whatever $STAG is left (unclaimed bounties).
function sweep() external onlyOwner {
require(block.timestamp >= expiry, "not expired");
uint256 bal = STAG.balanceOf(address(this));
require(STAG.transfer(owner(), bal), "sweep failed");
emit Swept(owner(), bal);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "stag",
"type": "address",
"internalType": "address"
},
{
"name": "wanted",
"type": "address",
"internalType": "address"
},
{
"name": "expiry_",
"type": "uint256",
"internalType": "uint256"
}
],
"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": "BountySet",
"type": "event",
"inputs": [
{
"name": "id",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Claimed",
"type": "event",
"inputs": [
{
"name": "id",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Locked",
"type": "event",
"inputs": [
{
"name": "totalBounty",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferStarted",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"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": "Swept",
"type": "event",
"inputs": [
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MAX_ID",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MIN_CLAIM_WINDOW",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "STAG",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"name": "WANTED",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC721"
}
],
"stateMutability": "view"
},
{
"name": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "bounty",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "claim",
"type": "function",
"inputs": [
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "claimMany",
"type": "function",
"inputs": [
{
"name": "ids",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "claimed",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "expiry",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "lock",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "locked",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "pendingOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setBounties",
"type": "function",
"inputs": [
{
"name": "ids",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "amounts",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "sweep",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "totalBounty",
"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"
}
]0x60c0346101ca57601f61113738819003918201601f191683019291906001600160401b038411838510176101cf5781606092849260409687528339810103126101ca5761004b816101e5565b82610058602084016101e5565b9201519133156101b257600180546001600160a01b031990811690915560008054339281168317825586516001600160a01b03959093869283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08580a31691821515806101a7575b15610179575062278d004201908142116101655750841061012f576080521660a05260025551610f3d90816101fa8239608051818181610132015281816103fb015281816104850152818161085a01526109e3015260a051818181610372015281816104aa01526107cc0152f35b845162461bcd60e51b815260206004820152600f60248201526e32bc3834b93c903a37b79039b7b7b760891b6044820152606490fd5b634e487b7160e01b81526011600452602490fd5b62461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b6044820152606490fd5b5084841615156100c1565b8351631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101ca5756fe608060409080825260048036101561001657600080fd5b600091823560e01c90816317bac05214610d80575080631839329414610b88578063227882d614610b6057806335faa416146109a1578063379607f514610770578063715018a61461070857806379ba5097146106865780638da5cb5b1461065e578063925489a81461042a578063a65ddcee146103e6578063a9211539146103c8578063cf309012146103a1578063d3cfd2bb1461035d578063dbe7e3bd1461032f578063e184c9be14610310578063e30c3978146102e7578063f19d96eb146102c8578063f2fde38b1461025a5763f83d08ba146100f557600080fd5b3461025657816003193601126102565761010d610edb565b60035480156102255783516370a0823160e01b815230838201526020929083816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561021b5790839186916101e6575b50106101b557506001805460ff60a01b1916600160a01b179055925192835290917f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a16119190a180f35b845162461bcd60e51b8152908101839052600b60248201526a1d5b99195c999d5b99195960aa1b6044820152606490fd5b809250858092503d8311610214575b6101ff8183610df7565b81010312610210578290513861016d565b8480fd5b503d6101f5565b86513d87823e3d90fd5b835162461bcd60e51b8152602081840152600b60248201526a6e6f20626f756e7469657360a81b6044820152606490fd5b5080fd5b503461025657602036600319011261025657356001600160a01b03818116918290036102c457610288610edb565b600180546001600160a01b031916831790558254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b8280fd5b8284346102565781600319360112610256576020906003549051908152f35b82843461025657816003193601126102565760015490516001600160a01b039091168152602090f35b8284346102565781600319360112610256576020906002549051908152f35b508290346102c45760203660031901126102c4578160209360ff923581526005855220541690519015158152f35b828434610256578160031936011261025657517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b82843461025657816003193601126102565760209060ff60015460a01c1690519015158152f35b8284346102565781600319360112610256576020905162278d008152f35b828434610256578160031936011261025657517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b508290346102c4576020918260031936011261065a57813567ffffffffffffffff8111610210576104619093929336908501610d9b565b909260ff9260019561047a60ff60015460a01c16610e47565b6001600160a01b03937f0000000000000000000000000000000000000000000000000000000000000000851691907f00000000000000000000000000000000000000000000000000000000000000008616908a5b8181106104d9578b80f35b6104e481838c610dd1565b35808d528c6005808a528d8c8a84205416610650575088516331a9108f60e11b81528781018490528a816024818a5afa90811561064657918f9493918b938391610619575b508d3391160361060f57838252888c528282205494851561060357508b5220805460ff19168e179055875163a9059cbb60e01b815233878201908152602081018490528f91908b90829081906040010381858d5af19182156105f8578f9594939261059a92906105cb575b50610e9d565b88519182527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0268a3393a35b016104ce565b6105eb91508c8d3d106105f1575b6105e38183610df7565b810190610e2f565b38610594565b503d6105d9565b8a51903d90823e3d90fd5b959450505050506105c5565b50505050906105c5565b61063991508d803d1061063f575b6106318183610df7565b810190610e7e565b38610529565b503d610627565b8a513d85823e3d90fd5b93925050506105c5565b8380fd5b828434610256578160031936011261025657905490516001600160a01b039091168152602090f35b5082346102c457826003193601126102c457600154916001600160a01b039133838516036106f15750506001600160a01b031991821660015582543392811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60249250519063118cdaa760e01b82523390820152fd5b823461076d578060031936011261076d57610721610edb565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b5082346102c45760208060031936011261065a5782359161079860ff60015460a01c16610e47565b8285526005825260ff818620541661096e5780516331a9108f60e11b81528481018490526001600160a01b039083816024817f000000000000000000000000000000000000000000000000000000000000000086165afa908115610964578791610947575b50813391160361091757838652848352818620549485156108e85784875260058452828720805460ff19166001179055825163a9059cbb60e01b8152339181019182526020820187905291849183919082908a90829060400103927f0000000000000000000000000000000000000000000000000000000000000000165af19081156108de577f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269392916108b79188916108c15750610e9d565b519384523393a380f35b6108d89150843d86116105f1576105e38183610df7565b88610594565b82513d88823e3d90fd5b825162461bcd60e51b815290810184905260096024820152686e6f20626f756e747960b81b6044820152606490fd5b815162461bcd60e51b8152808601849052600a6024820152693737ba103437b63232b960b11b6044820152606490fd5b61095e9150843d861161063f576106318183610df7565b876107fd565b83513d89823e3d90fd5b5162461bcd60e51b81529283015250600f60248201526e185b1c9958591e4818db185a5b5959608a1b6044820152606490fd5b508290346102c457826003193601126102c4576109bc610edb565b6002544210610b305781516370a0823160e01b815230828201526020916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116929091908481602481875afa938415610aef5785918895610af9575b508754875163a9059cbb60e01b81529085166001600160a01b031684820190815260208101879052909291839182908b9082906040015b03925af1908115610aef578791610ad2575b5015610aa05750907fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969692918554169351908152a280f35b845162461bcd60e51b8152908101849052600c60248201526b1cddd9595c0819985a5b195960a21b6044820152606490fd5b610ae99150853d87116105f1576105e38183610df7565b87610a69565b86513d89823e3d90fd5b8281939296503d8311610b29575b610b118183610df7565b81010312610b255751928490610a57610a20565b8680fd5b503d610b07565b6020606492519162461bcd60e51b8352820152600b60248201526a1b9bdd08195e1c1a5c995960aa1b6044820152fd5b508290346102c45760203660031901126102c457602092818392358252845220549051908152f35b508290346102c457816003193601126102c45767ffffffffffffffff813581811161021057610bba9036908401610d9b565b9390926024928335908111610b2557610bd69036908301610d9b565b91610bdf610edb565b60019660ff60015460a01c16610d5557838103610d2d57885b818110610c03578980f35b610c0e81838a610dd1565b358981101580610d22575b15610cf757610c29828787610dd1565b3515610cc7578a60038054908383528960209388855220548203918211610cb557610c55858a8a610dd1565b358201809211610cb557558a9291907ff8b6bed0adb678144f09e3bafc8d1b261c4750d9b85ea5063357aaf74dde0814908d8a610c93868c8c610dd1565b35918581528984522055610ca8848a8a610dd1565b358a51908152a201610bf8565b634e487b7160e01b8e52601187528a8efd5b865162461bcd60e51b8152602081860152600b818a01526a1e995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b865162461bcd60e51b81526020818601526006818a015265189859081a5960d21b6044820152606490fd5b506015811115610c19565b845162461bcd60e51b8152602081840152600381880152623632b760e91b6044820152606490fd5b845162461bcd60e51b8152602081840152600681880152651b1bd8dad95960d21b6044820152606490fd5b83903461025657816003193601126102565780601560209252f35b9181601f84011215610dcc5782359167ffffffffffffffff8311610dcc576020808501948460051b010111610dcc57565b600080fd5b9190811015610de15760051b0190565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610e1957604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312610dcc57518015158103610dcc5790565b15610e4e57565b60405162461bcd60e51b81526020600482015260086024820152676e6f74206c69766560c01b6044820152606490fd5b90816020910312610dcc57516001600160a01b0381168103610dcc5790565b15610ea457565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6000546001600160a01b03163303610eef57565b60405163118cdaa760e01b8152336004820152602490fdfea2646970667358221220bfbb6a01fd74b22d92b1e6052f013278ab49991800c85fe534cc77d645102c5a64736f6c63430008180033000000000000000000000000cddb2d9838b7edab2f04af4943a6efe42c2f9f4900000000000000000000000035c57109217319df9fef0499f56b3f6a68d50931000000000000000000000000000000000000000000000000000000006c3fd85b
0x608060409080825260048036101561001657600080fd5b600091823560e01c90816317bac05214610d80575080631839329414610b88578063227882d614610b6057806335faa416146109a1578063379607f514610770578063715018a61461070857806379ba5097146106865780638da5cb5b1461065e578063925489a81461042a578063a65ddcee146103e6578063a9211539146103c8578063cf309012146103a1578063d3cfd2bb1461035d578063dbe7e3bd1461032f578063e184c9be14610310578063e30c3978146102e7578063f19d96eb146102c8578063f2fde38b1461025a5763f83d08ba146100f557600080fd5b3461025657816003193601126102565761010d610edb565b60035480156102255783516370a0823160e01b815230838201526020929083816024817f000000000000000000000000cddb2d9838b7edab2f04af4943a6efe42c2f9f496001600160a01b03165afa90811561021b5790839186916101e6575b50106101b557506001805460ff60a01b1916600160a01b179055925192835290917f032bc66be43dbccb7487781d168eb7bda224628a3b2c3388bdf69b532a3a16119190a180f35b845162461bcd60e51b8152908101839052600b60248201526a1d5b99195c999d5b99195960aa1b6044820152606490fd5b809250858092503d8311610214575b6101ff8183610df7565b81010312610210578290513861016d565b8480fd5b503d6101f5565b86513d87823e3d90fd5b835162461bcd60e51b8152602081840152600b60248201526a6e6f20626f756e7469657360a81b6044820152606490fd5b5080fd5b503461025657602036600319011261025657356001600160a01b03818116918290036102c457610288610edb565b600180546001600160a01b031916831790558254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b8280fd5b8284346102565781600319360112610256576020906003549051908152f35b82843461025657816003193601126102565760015490516001600160a01b039091168152602090f35b8284346102565781600319360112610256576020906002549051908152f35b508290346102c45760203660031901126102c4578160209360ff923581526005855220541690519015158152f35b828434610256578160031936011261025657517f00000000000000000000000035c57109217319df9fef0499f56b3f6a68d509316001600160a01b03168152602090f35b82843461025657816003193601126102565760209060ff60015460a01c1690519015158152f35b8284346102565781600319360112610256576020905162278d008152f35b828434610256578160031936011261025657517f000000000000000000000000cddb2d9838b7edab2f04af4943a6efe42c2f9f496001600160a01b03168152602090f35b508290346102c4576020918260031936011261065a57813567ffffffffffffffff8111610210576104619093929336908501610d9b565b909260ff9260019561047a60ff60015460a01c16610e47565b6001600160a01b03937f000000000000000000000000cddb2d9838b7edab2f04af4943a6efe42c2f9f49851691907f00000000000000000000000035c57109217319df9fef0499f56b3f6a68d509318616908a5b8181106104d9578b80f35b6104e481838c610dd1565b35808d528c6005808a528d8c8a84205416610650575088516331a9108f60e11b81528781018490528a816024818a5afa90811561064657918f9493918b938391610619575b508d3391160361060f57838252888c528282205494851561060357508b5220805460ff19168e179055875163a9059cbb60e01b815233878201908152602081018490528f91908b90829081906040010381858d5af19182156105f8578f9594939261059a92906105cb575b50610e9d565b88519182527f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0268a3393a35b016104ce565b6105eb91508c8d3d106105f1575b6105e38183610df7565b810190610e2f565b38610594565b503d6105d9565b8a51903d90823e3d90fd5b959450505050506105c5565b50505050906105c5565b61063991508d803d1061063f575b6106318183610df7565b810190610e7e565b38610529565b503d610627565b8a513d85823e3d90fd5b93925050506105c5565b8380fd5b828434610256578160031936011261025657905490516001600160a01b039091168152602090f35b5082346102c457826003193601126102c457600154916001600160a01b039133838516036106f15750506001600160a01b031991821660015582543392811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b60249250519063118cdaa760e01b82523390820152fd5b823461076d578060031936011261076d57610721610edb565b600180546001600160a01b03199081169091558154908116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b80fd5b5082346102c45760208060031936011261065a5782359161079860ff60015460a01c16610e47565b8285526005825260ff818620541661096e5780516331a9108f60e11b81528481018490526001600160a01b039083816024817f00000000000000000000000035c57109217319df9fef0499f56b3f6a68d5093186165afa908115610964578791610947575b50813391160361091757838652848352818620549485156108e85784875260058452828720805460ff19166001179055825163a9059cbb60e01b8152339181019182526020820187905291849183919082908a90829060400103927f000000000000000000000000cddb2d9838b7edab2f04af4943a6efe42c2f9f49165af19081156108de577f4ec90e965519d92681267467f775ada5bd214aa92c0dc93d90a5e880ce9ed0269392916108b79188916108c15750610e9d565b519384523393a380f35b6108d89150843d86116105f1576105e38183610df7565b88610594565b82513d88823e3d90fd5b825162461bcd60e51b815290810184905260096024820152686e6f20626f756e747960b81b6044820152606490fd5b815162461bcd60e51b8152808601849052600a6024820152693737ba103437b63232b960b11b6044820152606490fd5b61095e9150843d861161063f576106318183610df7565b876107fd565b83513d89823e3d90fd5b5162461bcd60e51b81529283015250600f60248201526e185b1c9958591e4818db185a5b5959608a1b6044820152606490fd5b508290346102c457826003193601126102c4576109bc610edb565b6002544210610b305781516370a0823160e01b815230828201526020916001600160a01b037f000000000000000000000000cddb2d9838b7edab2f04af4943a6efe42c2f9f498116929091908481602481875afa938415610aef5785918895610af9575b508754875163a9059cbb60e01b81529085166001600160a01b031684820190815260208101879052909291839182908b9082906040015b03925af1908115610aef578791610ad2575b5015610aa05750907fc36b5179cb9c303b200074996eab2b3473eac370fdd7eba3bec636fe3510969692918554169351908152a280f35b845162461bcd60e51b8152908101849052600c60248201526b1cddd9595c0819985a5b195960a21b6044820152606490fd5b610ae99150853d87116105f1576105e38183610df7565b87610a69565b86513d89823e3d90fd5b8281939296503d8311610b29575b610b118183610df7565b81010312610b255751928490610a57610a20565b8680fd5b503d610b07565b6020606492519162461bcd60e51b8352820152600b60248201526a1b9bdd08195e1c1a5c995960aa1b6044820152fd5b508290346102c45760203660031901126102c457602092818392358252845220549051908152f35b508290346102c457816003193601126102c45767ffffffffffffffff813581811161021057610bba9036908401610d9b565b9390926024928335908111610b2557610bd69036908301610d9b565b91610bdf610edb565b60019660ff60015460a01c16610d5557838103610d2d57885b818110610c03578980f35b610c0e81838a610dd1565b358981101580610d22575b15610cf757610c29828787610dd1565b3515610cc7578a60038054908383528960209388855220548203918211610cb557610c55858a8a610dd1565b358201809211610cb557558a9291907ff8b6bed0adb678144f09e3bafc8d1b261c4750d9b85ea5063357aaf74dde0814908d8a610c93868c8c610dd1565b35918581528984522055610ca8848a8a610dd1565b358a51908152a201610bf8565b634e487b7160e01b8e52601187528a8efd5b865162461bcd60e51b8152602081860152600b818a01526a1e995c9bc8185b5bdd5b9d60aa1b6044820152606490fd5b865162461bcd60e51b81526020818601526006818a015265189859081a5960d21b6044820152606490fd5b506015811115610c19565b845162461bcd60e51b8152602081840152600381880152623632b760e91b6044820152606490fd5b845162461bcd60e51b8152602081840152600681880152651b1bd8dad95960d21b6044820152606490fd5b83903461025657816003193601126102565780601560209252f35b9181601f84011215610dcc5782359167ffffffffffffffff8311610dcc576020808501948460051b010111610dcc57565b600080fd5b9190811015610de15760051b0190565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610e1957604052565b634e487b7160e01b600052604160045260246000fd5b90816020910312610dcc57518015158103610dcc5790565b15610e4e57565b60405162461bcd60e51b81526020600482015260086024820152676e6f74206c69766560c01b6044820152606490fd5b90816020910312610dcc57516001600160a01b0381168103610dcc5790565b15610ea457565b60405162461bcd60e51b815260206004820152600f60248201526e1d1c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b6000546001600160a01b03163303610eef57565b60405163118cdaa760e01b8152336004820152602490fdfea2646970667358221220bfbb6a01fd74b22d92b1e6052f013278ab49991800c85fe534cc77d645102c5a64736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| $Stag | 69,000 | $0.00000273 | $0.19 |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xda23d5…020ee3 | 15 days agoSun, 02 Aug 2026 10:18:53 UTC | 0x4ec90e…d026 | [0] 0x000000000000…00000001 [1] 0x000000000000…0960670f data: 0x000000000000000000…37c00000 |
| 0x53a352…c13f31 | 28 days agoTue, 21 Jul 2026 02:24:23 UTC | 0x4ec90e…d026 | [0] 0x000000000000…00000003 [1] 0x000000000000…55b2726b data: 0x000000000000000000…37c00000 |
| 0x7d3b2c…ca390f | 28 days agoMon, 20 Jul 2026 23:05:51 UTC | 0x4ec90e…d026 | [0] 0x000000000000…00000005 [1] 0x000000000000…5285d0f1 data: 0x000000000000000000…37c00000 |
| 0x986380…bddf5f | 28 days agoMon, 20 Jul 2026 22:56:08 UTC | 0x032bc6…1611 | data: 0x000000000000000000…a8600000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000015 data: 0x000000000000000000…bd400000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000014 data: 0x000000000000000000…bd400000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000013 data: 0x000000000000000000…bd400000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000012 data: 0x000000000000000000…bd400000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000011 data: 0x000000000000000000…bd400000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000010 data: 0x000000000000000000…9be00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…0000000f data: 0x000000000000000000…9be00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…0000000e data: 0x000000000000000000…9be00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…0000000d data: 0x000000000000000000…9be00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…0000000c data: 0x000000000000000000…9be00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…0000000b data: 0x000000000000000000…59200000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…0000000a data: 0x000000000000000000…59200000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000009 data: 0x000000000000000000…59200000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000008 data: 0x000000000000000000…59200000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000007 data: 0x000000000000000000…37c00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000006 data: 0x000000000000000000…37c00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000005 data: 0x000000000000000000…37c00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000004 data: 0x000000000000000000…37c00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000003 data: 0x000000000000000000…37c00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000002 data: 0x000000000000000000…37c00000 |
| 0xfe834e…eabe6b | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xf8b6be…0814 | [0] 0x000000000000…00000001 data: 0x000000000000000000…37c00000 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xda23d5…020ee3 | claim | 25,823,005 | 15 days agoSun, 02 Aug 2026 10:18:53 UTC | 0xde21…670f | IN | WantedBounty | $0.000 ETH | 0.00000179 | |
| 0x53a352…c13f31 | claim | 15,201,694 | 28 days agoTue, 21 Jul 2026 02:24:23 UTC | 0x693c…726b | IN | WantedBounty | $0.000 ETH | 0.00000422 | |
| 0x7d3b2c…ca390f | claim | 15,082,863 | 28 days agoMon, 20 Jul 2026 23:05:51 UTC | 0x1f99…d0f1 | IN | WantedBounty | $0.000 ETH | 0.00000421 | |
| 0x986380…bddf5f | lock | 15,077,049 | 28 days agoMon, 20 Jul 2026 22:56:08 UTC | 0xb6a5…2516 | IN | WantedBounty | $0.000 ETH | 0.00000317 | |
| 0xfe834e…eabe6b | setBounties | 15,070,253 | 28 days agoMon, 20 Jul 2026 22:44:48 UTC | 0xb6a5…2516 | IN | WantedBounty | $0.000 ETH | 0.00003308 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xda23d535…020ee3 | Transfer | 25,823,005 | 15 days agoSun, 02 Aug 2026 10:18:53 UTC | 0x5b00…46da | OUT | 0xde21…670f | $NaN6,000 $Stag | ||
| 0x53a352dd…c13f31 | Transfer | 15,201,694 | 28 days agoTue, 21 Jul 2026 02:24:23 UTC | 0x5b00…46da | OUT | 0x693c…726b | $NaN6,000 $Stag | ||
| 0x7d3b2cb2…ca390f | Transfer | 15,082,863 | 28 days agoMon, 20 Jul 2026 23:05:51 UTC | 0x5b00…46da | OUT | 0x1f99…d0f1 | $NaN6,000 $Stag | ||
| 0xd4458a2e…2c61f5 | Transfer | 15,077,027 | 28 days agoMon, 20 Jul 2026 22:56:06 UTC | 0xb6a5…2516 | IN | 0x5b00…46da | $NaN86,999.999999 $Stag |