// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;
import { ERC1155 } from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
/// @notice Transferable four-slot equipment won through Doggy gacha.
/// @dev Equipped items are escrowed by the game proxy and remain marketplace-ready when unequipped.
contract DoggyGearNFT is ERC1155 {
using Strings for uint256;
uint32 public constant MAX_GEAR_TEMPLATE_ID = 208;
uint32 public constant PACK_CRATE_TEMPLATE_ID = 1_000_000;
address public immutable bindingAuthority;
string public templateBaseURI;
address public game;
error AlreadyBound();
error InvalidAddress();
error InvalidTemplate();
error Unauthorized();
event GameBound(address indexed game);
event GearMinted(address indexed owner, uint32 indexed templateId);
event CratesMinted(address indexed owner, uint256 amount);
event CratesBurned(address indexed owner, uint256 amount);
modifier onlyGame() {
if (msg.sender != game) revert Unauthorized();
_;
}
constructor(address bindingAuthority_, string memory templateBaseURI_) ERC1155("") {
if (bindingAuthority_ == address(0)) revert InvalidAddress();
bindingAuthority = bindingAuthority_;
templateBaseURI = templateBaseURI_;
}
function bindGame(address game_) external {
if (msg.sender != bindingAuthority) revert Unauthorized();
if (game != address(0)) revert AlreadyBound();
if (game_ == address(0) || game_.code.length == 0) revert InvalidAddress();
game = game_;
emit GameBound(game_);
}
function mintGear(address to, uint32 templateId) external onlyGame {
if (to == address(0)) revert InvalidAddress();
if (templateId == 0 || templateId > MAX_GEAR_TEMPLATE_ID) revert InvalidTemplate();
_mint(to, templateId, 1, "");
emit GearMinted(to, templateId);
}
function mintCrates(address to, uint8 amount) external onlyGame {
if (to == address(0)) revert InvalidAddress();
if (amount == 0) revert InvalidTemplate();
_mint(to, PACK_CRATE_TEMPLATE_ID, amount, "");
emit CratesMinted(to, amount);
}
function burnCrates(address owner, uint8 amount) external onlyGame {
if (owner == address(0)) revert InvalidAddress();
if (amount == 0) revert InvalidTemplate();
_burn(owner, PACK_CRATE_TEMPLATE_ID, amount);
emit CratesBurned(owner, amount);
}
function uri(uint256 templateId) public view override returns (string memory) {
if (templateId == 0) revert InvalidTemplate();
return string.concat(templateBaseURI, templateId.toString(), ".json");
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "bindingAuthority_",
"type": "address",
"internalType": "address"
},
{
"name": "templateBaseURI_",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyBound",
"type": "error",
"inputs": []
},
{
"name": "ERC1155InsufficientBalance",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
},
{
"name": "balance",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "needed",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC1155InvalidApprover",
"type": "error",
"inputs": [
{
"name": "approver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1155InvalidArrayLength",
"type": "error",
"inputs": [
{
"name": "idsLength",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "valuesLength",
"type": "uint256",
"internalType": "uint256"
}
]
},
{
"name": "ERC1155InvalidOperator",
"type": "error",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1155InvalidReceiver",
"type": "error",
"inputs": [
{
"name": "receiver",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1155InvalidSender",
"type": "error",
"inputs": [
{
"name": "sender",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ERC1155MissingApprovalForAll",
"type": "error",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "InvalidAddress",
"type": "error",
"inputs": []
},
{
"name": "InvalidTemplate",
"type": "error",
"inputs": []
},
{
"name": "Unauthorized",
"type": "error",
"inputs": []
},
{
"name": "ApprovalForAll",
"type": "event",
"inputs": [
{
"name": "account",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"indexed": false,
"internalType": "bool"
}
],
"anonymous": false
},
{
"name": "CratesBurned",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "CratesMinted",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GameBound",
"type": "event",
"inputs": [
{
"name": "game",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "GearMinted",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "templateId",
"type": "uint32",
"indexed": true,
"internalType": "uint32"
}
],
"anonymous": false
},
{
"name": "TransferBatch",
"type": "event",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "ids",
"type": "uint256[]",
"indexed": false,
"internalType": "uint256[]"
},
{
"name": "values",
"type": "uint256[]",
"indexed": false,
"internalType": "uint256[]"
}
],
"anonymous": false
},
{
"name": "TransferSingle",
"type": "event",
"inputs": [
{
"name": "operator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "URI",
"type": "event",
"inputs": [
{
"name": "value",
"type": "string",
"indexed": false,
"internalType": "string"
},
{
"name": "id",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MAX_GEAR_TEMPLATE_ID",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint32",
"internalType": "uint32"
}
],
"stateMutability": "view"
},
{
"name": "PACK_CRATE_TEMPLATE_ID",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint32",
"internalType": "uint32"
}
],
"stateMutability": "view"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "balanceOfBatch",
"type": "function",
"inputs": [
{
"name": "accounts",
"type": "address[]",
"internalType": "address[]"
},
{
"name": "ids",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [
{
"name": "",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"stateMutability": "view"
},
{
"name": "bindGame",
"type": "function",
"inputs": [
{
"name": "game_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "bindingAuthority",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "burnCrates",
"type": "function",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "game",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "isApprovedForAll",
"type": "function",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
},
{
"name": "operator",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "mintCrates",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint8",
"internalType": "uint8"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "mintGear",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "templateId",
"type": "uint32",
"internalType": "uint32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "safeBatchTransferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "ids",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "values",
"type": "uint256[]",
"internalType": "uint256[]"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "safeTransferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "id",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "value",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setApprovalForAll",
"type": "function",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "approved",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "supportsInterface",
"type": "function",
"inputs": [
{
"name": "interfaceId",
"type": "bytes4",
"internalType": "bytes4"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "templateBaseURI",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "uri",
"type": "function",
"inputs": [
{
"name": "templateId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
}
]0x604060a0815234620002bb5762001b1b803803806200001e81620002bf565b92833981018282820312620002bb578151916001600160a01b038316808403620002bb576020938483015160018060401b0393848211620002bb570193601f91818387011215620002bb5785518581116200024857601f19966200008882860189168a01620002bf565b93828552898383010111620002bb5788905f5b838110620002a65750505f91840101528751878101908082108783111762000248575f918a5252600254936001948581811c911680156200029b575b8982101462000229578481116200026d575b505f600255156200025c576080528051938411620002485760039586548481811c911680156200023d575b828210146200022957838111620001e1575b50809285116001146200017d5750839450908392915f9462000171575b50501b915f1990841b1c19161790555b516118359081620002e6823960805181818161055f0152610adc0152f35b015192505f8062000143565b929484908116875f52845f20945f905b88838310620001c65750505010620001ae575b505050811b01905562000153565b01515f1983861b60f8161c191690555f8080620001a0565b8587015188559096019594850194879350908101906200018d565b875f52815f208480880160051c8201928489106200021f575b0160051c019085905b8281106200021357505062000126565b5f815501859062000203565b92508192620001fa565b634e487b7160e01b5f52602260045260245ffd5b90607f169062000114565b634e487b7160e01b5f52604160045260245ffd5b875163e6c4247b60e01b8152600490fd5b60025f5285858a5f20920160051c8201915b8281106200028f575050620000e9565b5f81550186906200027f565b90607f1690620000d7565b8181018301518682018401528a92016200009b565b5f80fd5b6040519190601f01601f191682016001600160401b03811183821017620002485760405256fe60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461012357806301ffc9a71461011e5780630e89341c1461011957806311eed408146101145780632028d39b1461010f578063246025f51461010a5780632eb2c2d6146101055780634e1273f4146101005780637921a20c146100fb5780638a3caa3b146100f6578063a22cb465146100f1578063a35517c8146100ec578063afb7f060146100e7578063c3fe3e28146100e2578063cc0859d8146100dd578063e985e9c5146100d85763f242432a146100d3575f80fd5b610c95565b610c45565b610bad565b610b85565b610ab9565b610a45565b610997565b61097c565b61095f565b6108a5565b61074d565b6105be565b61054a565b61048d565b61027e565b6101b6565b61016c565b600435906001600160a01b038216820361013e57565b5f80fd5b602435906001600160a01b038216820361013e57565b35906001600160a01b038216820361013e57565b3461013e57604036600319011261013e57602061019b61018a610128565b6024355f525f835260405f20610dae565b54604051908152f35b6001600160e01b031981160361013e57565b3461013e57602036600319011261013e5760206004356101d5816101a4565b63ffffffff60e01b16636cdb3d1360e11b8114908115610213575b8115610202575b506040519015158152f35b6301ffc9a760e01b1490505f6101f7565b6303a24d0760e21b811491506101f0565b5f5b8381106102355750505f910152565b8181015183820152602001610226565b9060209161025e81518092818552858086019101610224565b601f01601f1916010190565b90602061027b928181520190610245565b90565b3461013e57602036600319011261013e5760043580156103ec575f908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b81818110156103de575b506904ee2d6d415b85acef8160201b9050808310156103cf575b50662386f26fc10000808310156103c0575b506305f5e100808310156103b1575b50612710808310156103a2575b506064821015610392575b600a80921015610388575b60019081602161032c60018701610fa2565b95860101905b610353575b61034f61034386610dda565b6040519182918261026a565b0390f35b5f19019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821561038357919082610332565b610337565b916001019161031a565b919060646002910491019161030f565b6004919392049101915f610304565b6008919392049101915f6102f7565b6010919392049101915f6102e8565b6020919392049101915f6102d6565b604094500491505f806102bc565b60405163ec55b8cd60e01b8152600490fd5b90600182811c9216801561042c575b602083101461041857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161040d565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761046557604052565b610436565b601f909101601f19168101906001600160401b0382119082101761046557604052565b3461013e575f36600319011261013e576040515f906003546104ae816103fe565b80835260209160019081811690811561051757506001146104da575b61034f846103438188038261046a565b91935060035f52835f20915f925b828410610504575050508161034f9361034392820101936104ca565b80548585018701529285019281016104e8565b60ff1916858501525050151560051b82010191506103438161034f6104ca565b6001600160a01b03909116815260200190565b3461013e575f36600319011261013e576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b604090600319011261013e576004356001600160a01b038116810361013e579060243560ff8116810361013e5790565b3461013e576105cc3661058e565b6004546001600160a01b0390811633036106645782169182156106525760ff82169182156103ec5761063961064d926106257f996ea269edec261f6a6547c2e46e39e887457815734e433f8bb5e545031af11295611037565b915f6040516106338161044a565b5261105f565b60405160ff90911681529081906020820190565b0390a2005b60405163e6c4247b60e01b8152600490fd5b6040516282b42960e81b8152600490fd5b6001600160401b0381116104655760051b60200190565b9080601f8301121561013e5760209082356106a681610675565b936106b4604051958661046a565b81855260208086019260051b82010192831161013e57602001905b8282106106dd575050505090565b813581529083019083016106cf565b6001600160401b03811161046557601f01601f191660200190565b81601f8201121561013e5780359061071e826106ec565b9261072c604051948561046a565b8284526020838301011161013e57815f926020809301838601378301015290565b3461013e5760a036600319011261013e57610766610128565b61076e610142565b60443591906001600160401b039081841161013e576107926004943690860161068c565b9060643583811161013e576107aa903690870161068c565b9260843590811161013e576107c29036908701610707565b936001600160a01b03808216903382141580610841575b6108225783161561080b57156107f5576107f395506112a6565b005b604051626a0d4560e21b81525f81880152602490fd5b604051632bfa23e760e11b81525f81890152602490fd5b60405163711bec9160e11b81528061083d8533838d01610e9f565b0390fd5b50815f52600160205260ff6108593360405f20610dae565b5416156107d9565b9081518082526020808093019301915f5b828110610880575050505090565b835185529381019392810192600101610872565b90602061027b928181520190610861565b3461013e57604036600319011261013e576004356001600160401b0380821161013e573660238301121561013e5781600401356108e181610675565b926108ef604051948561046a565b8184526020916024602086019160051b8301019136831161013e57602401905b828210610948578560243586811161013e5761034f9161093661093c92369060040161068c565b90610ef2565b60405191829182610894565b83809161095484610158565b81520191019061090f565b3461013e575f36600319011261013e576020604051620f42408152f35b3461013e575f36600319011261013e57602060405160d08152f35b3461013e57604036600319011261013e576109b0610128565b60243580151580820361013e576001600160a01b038316928315610a2e576109e390335f52600160205260405f20610dae565b9060ff801983541691161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160405180610a29339482919091602081019215159052565b0390a3005b60405162ced3e160e81b81525f6004820152602490fd5b3461013e57610a533661058e565b6004546001600160a01b0390811633036106645782169182156106525760ff82169182156103ec5761063961064d927f46078704e58acaa17e432f4eee4d06743c631da05e5f857bfca0e919f8dfda329460405191610ab18361044a565b5f8352610fd4565b3461013e57602036600319011261013e57610ad2610128565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811633036106645760045481166001600160a01b0316610b735781169081158015610b6a575b61065257600480546001600160a01b0319166001600160a01b039092169190911790557f53f1167fa77b0aa013b05803e1570b98fb993eea1d45a233e7363842bac4b3c45f80a2005b50803b15610b21565b60405163682a906560e01b8152600490fd5b3461013e575f36600319011261013e576004546040516001600160a01b039091168152602090f35b3461013e57604036600319011261013e57610bc6610128565b6024359063ffffffff821680920361013e576004546001600160a01b0390811633036106645781169081156106525782158015610c3b575b6103ec57610c159083610c0f610f90565b91610ff8565b7f44cd04612ac7c080961a2402e8c665acd04562cc0fb5ca836d9aef9dc28c64835f80a3005b5060d08311610bfe565b3461013e57604036600319011261013e57602060ff610c89610c65610128565b610c6d610142565b6001600160a01b039091165f9081526001855260409020610dae565b54166040519015158152f35b3461013e5760a036600319011261013e57610cae610128565b610cb6610142565b6084356001600160401b03811161013e57610cd5903690600401610707565b906001600160a01b03838116903382141580610d81575b610d6557821615610d4d5715610d36576107f392610d2e6064356044359160405192600184526020840152604083019160018352606084015260808301604052565b9290916112a6565b604051626a0d4560e21b81525f6004820152602490fd5b604051632bfa23e760e11b81525f6004820152602490fd5b60405163711bec9160e11b81528061083d873360048401610e9f565b50815f52600160205260ff610d993360405f20610dae565b541615610cec565b5f525f60205260405f2090565b9060018060a01b03165f5260205260405f2090565b610dd6915f525f60205260405f20610dae565b5490565b9060405191826020915f90600354610df1816103fe565b90600190818116908115610e825750600114610e45575b50509281610e228560059594610e43975194859201610224565b01610e348164173539b7b760d91b9052565b03601a1981018552018361046a565b565b9091925060035f52845f20905f915b838310610e6c57505050820183019080610e22610e08565b8054898401880152889550918601918101610e54565b60ff19168787015250508015150283018401915080610e22610e08565b6001600160a01b0391821681529116602082015260400190565b908152602081019190915260400190565b8051821015610ede5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b91909180518351808203610f74575050805190610f27610f1183610675565b92610f1f604051948561046a565b808452610675565b60209190601f190136848401375f5b8151811015610f6c5780610f5b60019260051b85808287010151918a01015190610dc3565b610f658287610eca565b5201610f36565b509193505050565b61083d604051928392635b05999160e01b845260048401610eb9565b60405190610f9d8261044a565b5f8252565b90610fac826106ec565b610fb9604051918261046a565b8281528092610fca601f19916106ec565b0190602036910137565b9091906001600160a01b03811615610d4d57610ff2610e4393611037565b91611174565b9091906001600160a01b03811615610d4d57610e4392604051906001825260208201526040810191600183526001606083015260808201604052611174565b6040519160018352620f42406020840152604083019160018352606084015260808301604052565b9291908051825190818103610f745750505f5b81518110156110fc57600581901b82810160209081015191850101516001600160a01b0387166110a7575b5050600101611072565b6110b9876110b484610da1565b610dae565b548181106110dd57876110b460019594936110d5930393610da1565b55905f61109d565b8761083d84846040519485946303dee4c560e01b865260048601611440565b50905f92939160018151148414611148576020908101519101516040516001600160a01b039093169233925f805160206117e0833981519152928291611143919083610eb9565b0390a4565b6040516001600160a01b039093169233925f805160206117c08339815191529282916111439183611485565b908051835190818103610f745750505f5b81518110156111e157600581901b82810160209081015191860101516001929185906001600160a01b0382166111bf575b50505001611185565b6111d7916110b46111cf92610da1565b918254611464565b90555f84816111b6565b508051919392916001036112715760208101515f6020840151915f805160206117e08339815191526040518061122260018060a01b038b1696339583610eb9565b0390a45b6001600160a01b03841661123b575b50505050565b80516001036112625790602080611259959301519101519133611753565b5f808080611235565b61126c933361156a565b611259565b6040516001600160a01b038516905f9033905f805160206117c0833981519152908061129e888883611485565b0390a4611226565b949190918151845190818103610f745750505f5b825181101561136f57600581901b83810160209081015191870101516001600160a01b03929186908a8516611317575b60019482166112fd575b505050016112ba565b61130d916110b46111cf92610da1565b90555f85816112f4565b91929390506113298a6110b484610da1565b5483811061135057918791846001969594036113488d6110b485610da1565b5594506112ea565b8a61083d84866040519485946303dee4c560e01b865260048601611440565b5094919392909360018551145f14611408576020850151602083015160018060a01b03915f805160206117e0833981519152604051806113b7868816968a1695339583610eb9565b0390a45b6001600160a01b0381166113d1575b5050505050565b84516001036113f7576020806113ed9601519201519233611788565b5f808080806113ca565b61140394919233611657565b6113ed565b6040516001600160a01b03828116919085169033905f805160206117c08339815191529080611438888c83611485565b0390a46113bb565b90949392606092608083019660018060a01b03168352602083015260408201520152565b9190820180921161147157565b634e487b7160e01b5f52601160045260245ffd5b909161149c61027b93604084526040840190610861565b916020818403910152610861565b9081602091031261013e575161027b816101a4565b926114ed61027b95936114fb9360018060a01b031686525f602087015260a0604087015260a0860190610861565b908482036060860152610861565b916080818403910152610245565b939061027b95936114ed916114fb9460018060a01b03809216885216602087015260a0604087015260a0860190610861565b3d15611565573d9061154c826106ec565b9161155a604051938461046a565b82523d5f602084013e565b606090565b9293919093843b61157c575050505050565b60209161159f604051948593849363bc197c8160e01b98898652600486016114bf565b03815f6001600160a01b0388165af15f9181611626575b506115ef57826115c461153b565b80519190826115e857604051632bfa23e760e11b81528061083d8460048301610537565b6020915001fd5b6001600160e01b0319160361160957505f808080806113ca565b604051632bfa23e760e11b815290819061083d9060048301610537565b61164991925060203d602011611650575b611641818361046a565b8101906114aa565b905f6115b6565b503d611637565b939290949194853b61166c575b505050505050565b61168f602093604051958694859463bc197c8160e01b998a875260048701611509565b03815f6001600160a01b0388165af15f91816116cf575b506116b457826115c461153b565b6001600160e01b0319160361160957505f8080808080611664565b6116e991925060203d60201161165057611641818361046a565b905f6116a6565b909260a09261027b9594600180861b031683525f6020840152604083015260608201528160808201520190610245565b919261027b95949160a094600180871b038092168552166020840152604083015260608201528160808201520190610245565b9293919093843b611765575050505050565b60209161159f604051948593849363f23a6e6160e01b98898652600486016116f0565b939290949194853b61179c57505050505050565b61168f602093604051958694859463f23a6e6160e01b998a87526004870161172056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a26469706673582212208e8d0e601de188cd45a41835343fe45927d8adea093fdd28e7c12609cf4b091964736f6c6343000818003300000000000000000000000014dc8b21f4024f27f527c91588ca20e4e6a60c5d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000003b68747470733a2f2f646f6767792d6d696e696e672d636f2e76657263656c2e6170702f6d657461646174612f7631332f646f6767792d676561722f0000000000
0x60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461012357806301ffc9a71461011e5780630e89341c1461011957806311eed408146101145780632028d39b1461010f578063246025f51461010a5780632eb2c2d6146101055780634e1273f4146101005780637921a20c146100fb5780638a3caa3b146100f6578063a22cb465146100f1578063a35517c8146100ec578063afb7f060146100e7578063c3fe3e28146100e2578063cc0859d8146100dd578063e985e9c5146100d85763f242432a146100d3575f80fd5b610c95565b610c45565b610bad565b610b85565b610ab9565b610a45565b610997565b61097c565b61095f565b6108a5565b61074d565b6105be565b61054a565b61048d565b61027e565b6101b6565b61016c565b600435906001600160a01b038216820361013e57565b5f80fd5b602435906001600160a01b038216820361013e57565b35906001600160a01b038216820361013e57565b3461013e57604036600319011261013e57602061019b61018a610128565b6024355f525f835260405f20610dae565b54604051908152f35b6001600160e01b031981160361013e57565b3461013e57602036600319011261013e5760206004356101d5816101a4565b63ffffffff60e01b16636cdb3d1360e11b8114908115610213575b8115610202575b506040519015158152f35b6301ffc9a760e01b1490505f6101f7565b6303a24d0760e21b811491506101f0565b5f5b8381106102355750505f910152565b8181015183820152602001610226565b9060209161025e81518092818552858086019101610224565b601f01601f1916010190565b90602061027b928181520190610245565b90565b3461013e57602036600319011261013e5760043580156103ec575f908072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b81818110156103de575b506904ee2d6d415b85acef8160201b9050808310156103cf575b50662386f26fc10000808310156103c0575b506305f5e100808310156103b1575b50612710808310156103a2575b506064821015610392575b600a80921015610388575b60019081602161032c60018701610fa2565b95860101905b610353575b61034f61034386610dda565b6040519182918261026a565b0390f35b5f19019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821561038357919082610332565b610337565b916001019161031a565b919060646002910491019161030f565b6004919392049101915f610304565b6008919392049101915f6102f7565b6010919392049101915f6102e8565b6020919392049101915f6102d6565b604094500491505f806102bc565b60405163ec55b8cd60e01b8152600490fd5b90600182811c9216801561042c575b602083101461041857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161040d565b634e487b7160e01b5f52604160045260245ffd5b602081019081106001600160401b0382111761046557604052565b610436565b601f909101601f19168101906001600160401b0382119082101761046557604052565b3461013e575f36600319011261013e576040515f906003546104ae816103fe565b80835260209160019081811690811561051757506001146104da575b61034f846103438188038261046a565b91935060035f52835f20915f925b828410610504575050508161034f9361034392820101936104ca565b80548585018701529285019281016104e8565b60ff1916858501525050151560051b82010191506103438161034f6104ca565b6001600160a01b03909116815260200190565b3461013e575f36600319011261013e576040517f00000000000000000000000014dc8b21f4024f27f527c91588ca20e4e6a60c5d6001600160a01b03168152602090f35b604090600319011261013e576004356001600160a01b038116810361013e579060243560ff8116810361013e5790565b3461013e576105cc3661058e565b6004546001600160a01b0390811633036106645782169182156106525760ff82169182156103ec5761063961064d926106257f996ea269edec261f6a6547c2e46e39e887457815734e433f8bb5e545031af11295611037565b915f6040516106338161044a565b5261105f565b60405160ff90911681529081906020820190565b0390a2005b60405163e6c4247b60e01b8152600490fd5b6040516282b42960e81b8152600490fd5b6001600160401b0381116104655760051b60200190565b9080601f8301121561013e5760209082356106a681610675565b936106b4604051958661046a565b81855260208086019260051b82010192831161013e57602001905b8282106106dd575050505090565b813581529083019083016106cf565b6001600160401b03811161046557601f01601f191660200190565b81601f8201121561013e5780359061071e826106ec565b9261072c604051948561046a565b8284526020838301011161013e57815f926020809301838601378301015290565b3461013e5760a036600319011261013e57610766610128565b61076e610142565b60443591906001600160401b039081841161013e576107926004943690860161068c565b9060643583811161013e576107aa903690870161068c565b9260843590811161013e576107c29036908701610707565b936001600160a01b03808216903382141580610841575b6108225783161561080b57156107f5576107f395506112a6565b005b604051626a0d4560e21b81525f81880152602490fd5b604051632bfa23e760e11b81525f81890152602490fd5b60405163711bec9160e11b81528061083d8533838d01610e9f565b0390fd5b50815f52600160205260ff6108593360405f20610dae565b5416156107d9565b9081518082526020808093019301915f5b828110610880575050505090565b835185529381019392810192600101610872565b90602061027b928181520190610861565b3461013e57604036600319011261013e576004356001600160401b0380821161013e573660238301121561013e5781600401356108e181610675565b926108ef604051948561046a565b8184526020916024602086019160051b8301019136831161013e57602401905b828210610948578560243586811161013e5761034f9161093661093c92369060040161068c565b90610ef2565b60405191829182610894565b83809161095484610158565b81520191019061090f565b3461013e575f36600319011261013e576020604051620f42408152f35b3461013e575f36600319011261013e57602060405160d08152f35b3461013e57604036600319011261013e576109b0610128565b60243580151580820361013e576001600160a01b038316928315610a2e576109e390335f52600160205260405f20610dae565b9060ff801983541691161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160405180610a29339482919091602081019215159052565b0390a3005b60405162ced3e160e81b81525f6004820152602490fd5b3461013e57610a533661058e565b6004546001600160a01b0390811633036106645782169182156106525760ff82169182156103ec5761063961064d927f46078704e58acaa17e432f4eee4d06743c631da05e5f857bfca0e919f8dfda329460405191610ab18361044a565b5f8352610fd4565b3461013e57602036600319011261013e57610ad2610128565b6001600160a01b037f00000000000000000000000014dc8b21f4024f27f527c91588ca20e4e6a60c5d811633036106645760045481166001600160a01b0316610b735781169081158015610b6a575b61065257600480546001600160a01b0319166001600160a01b039092169190911790557f53f1167fa77b0aa013b05803e1570b98fb993eea1d45a233e7363842bac4b3c45f80a2005b50803b15610b21565b60405163682a906560e01b8152600490fd5b3461013e575f36600319011261013e576004546040516001600160a01b039091168152602090f35b3461013e57604036600319011261013e57610bc6610128565b6024359063ffffffff821680920361013e576004546001600160a01b0390811633036106645781169081156106525782158015610c3b575b6103ec57610c159083610c0f610f90565b91610ff8565b7f44cd04612ac7c080961a2402e8c665acd04562cc0fb5ca836d9aef9dc28c64835f80a3005b5060d08311610bfe565b3461013e57604036600319011261013e57602060ff610c89610c65610128565b610c6d610142565b6001600160a01b039091165f9081526001855260409020610dae565b54166040519015158152f35b3461013e5760a036600319011261013e57610cae610128565b610cb6610142565b6084356001600160401b03811161013e57610cd5903690600401610707565b906001600160a01b03838116903382141580610d81575b610d6557821615610d4d5715610d36576107f392610d2e6064356044359160405192600184526020840152604083019160018352606084015260808301604052565b9290916112a6565b604051626a0d4560e21b81525f6004820152602490fd5b604051632bfa23e760e11b81525f6004820152602490fd5b60405163711bec9160e11b81528061083d873360048401610e9f565b50815f52600160205260ff610d993360405f20610dae565b541615610cec565b5f525f60205260405f2090565b9060018060a01b03165f5260205260405f2090565b610dd6915f525f60205260405f20610dae565b5490565b9060405191826020915f90600354610df1816103fe565b90600190818116908115610e825750600114610e45575b50509281610e228560059594610e43975194859201610224565b01610e348164173539b7b760d91b9052565b03601a1981018552018361046a565b565b9091925060035f52845f20905f915b838310610e6c57505050820183019080610e22610e08565b8054898401880152889550918601918101610e54565b60ff19168787015250508015150283018401915080610e22610e08565b6001600160a01b0391821681529116602082015260400190565b908152602081019190915260400190565b8051821015610ede5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b91909180518351808203610f74575050805190610f27610f1183610675565b92610f1f604051948561046a565b808452610675565b60209190601f190136848401375f5b8151811015610f6c5780610f5b60019260051b85808287010151918a01015190610dc3565b610f658287610eca565b5201610f36565b509193505050565b61083d604051928392635b05999160e01b845260048401610eb9565b60405190610f9d8261044a565b5f8252565b90610fac826106ec565b610fb9604051918261046a565b8281528092610fca601f19916106ec565b0190602036910137565b9091906001600160a01b03811615610d4d57610ff2610e4393611037565b91611174565b9091906001600160a01b03811615610d4d57610e4392604051906001825260208201526040810191600183526001606083015260808201604052611174565b6040519160018352620f42406020840152604083019160018352606084015260808301604052565b9291908051825190818103610f745750505f5b81518110156110fc57600581901b82810160209081015191850101516001600160a01b0387166110a7575b5050600101611072565b6110b9876110b484610da1565b610dae565b548181106110dd57876110b460019594936110d5930393610da1565b55905f61109d565b8761083d84846040519485946303dee4c560e01b865260048601611440565b50905f92939160018151148414611148576020908101519101516040516001600160a01b039093169233925f805160206117e0833981519152928291611143919083610eb9565b0390a4565b6040516001600160a01b039093169233925f805160206117c08339815191529282916111439183611485565b908051835190818103610f745750505f5b81518110156111e157600581901b82810160209081015191860101516001929185906001600160a01b0382166111bf575b50505001611185565b6111d7916110b46111cf92610da1565b918254611464565b90555f84816111b6565b508051919392916001036112715760208101515f6020840151915f805160206117e08339815191526040518061122260018060a01b038b1696339583610eb9565b0390a45b6001600160a01b03841661123b575b50505050565b80516001036112625790602080611259959301519101519133611753565b5f808080611235565b61126c933361156a565b611259565b6040516001600160a01b038516905f9033905f805160206117c0833981519152908061129e888883611485565b0390a4611226565b949190918151845190818103610f745750505f5b825181101561136f57600581901b83810160209081015191870101516001600160a01b03929186908a8516611317575b60019482166112fd575b505050016112ba565b61130d916110b46111cf92610da1565b90555f85816112f4565b91929390506113298a6110b484610da1565b5483811061135057918791846001969594036113488d6110b485610da1565b5594506112ea565b8a61083d84866040519485946303dee4c560e01b865260048601611440565b5094919392909360018551145f14611408576020850151602083015160018060a01b03915f805160206117e0833981519152604051806113b7868816968a1695339583610eb9565b0390a45b6001600160a01b0381166113d1575b5050505050565b84516001036113f7576020806113ed9601519201519233611788565b5f808080806113ca565b61140394919233611657565b6113ed565b6040516001600160a01b03828116919085169033905f805160206117c08339815191529080611438888c83611485565b0390a46113bb565b90949392606092608083019660018060a01b03168352602083015260408201520152565b9190820180921161147157565b634e487b7160e01b5f52601160045260245ffd5b909161149c61027b93604084526040840190610861565b916020818403910152610861565b9081602091031261013e575161027b816101a4565b926114ed61027b95936114fb9360018060a01b031686525f602087015260a0604087015260a0860190610861565b908482036060860152610861565b916080818403910152610245565b939061027b95936114ed916114fb9460018060a01b03809216885216602087015260a0604087015260a0860190610861565b3d15611565573d9061154c826106ec565b9161155a604051938461046a565b82523d5f602084013e565b606090565b9293919093843b61157c575050505050565b60209161159f604051948593849363bc197c8160e01b98898652600486016114bf565b03815f6001600160a01b0388165af15f9181611626575b506115ef57826115c461153b565b80519190826115e857604051632bfa23e760e11b81528061083d8460048301610537565b6020915001fd5b6001600160e01b0319160361160957505f808080806113ca565b604051632bfa23e760e11b815290819061083d9060048301610537565b61164991925060203d602011611650575b611641818361046a565b8101906114aa565b905f6115b6565b503d611637565b939290949194853b61166c575b505050505050565b61168f602093604051958694859463bc197c8160e01b998a875260048701611509565b03815f6001600160a01b0388165af15f91816116cf575b506116b457826115c461153b565b6001600160e01b0319160361160957505f8080808080611664565b6116e991925060203d60201161165057611641818361046a565b905f6116a6565b909260a09261027b9594600180861b031683525f6020840152604083015260608201528160808201520190610245565b919261027b95949160a094600180871b038092168552166020840152604083015260608201528160808201520190610245565b9293919093843b611765575050505050565b60209161159f604051948593849363f23a6e6160e01b98898652600486016116f0565b939290949194853b61179c57505050505050565b61168f602093604051958694859463f23a6e6160e01b998a87526004870161172056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a26469706673582212208e8d0e601de188cd45a41835343fe45927d8adea093fdd28e7c12609cf4b091964736f6c63430008180033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| no internal transactions found for this address yet (traced blocks + on-demand) | ||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0xf4d005…429692 | 12 days agoWed, 05 Aug 2026 12:42:21 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…da225970 data: 0x000000000000000000…00000001 |
| 0x8c85d1…6598b1 | 12 days agoWed, 05 Aug 2026 12:41:57 UTC | 0x44cd04…6483 | [0] 0x000000000000…e6a60c5d [1] 0x000000000000…0000008d |
| 0x8c85d1…6598b1 | 12 days agoWed, 05 Aug 2026 12:41:57 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…00000000 [2] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0x94cd85…f43a2c | 12 days agoWed, 05 Aug 2026 12:41:06 UTC | 0x996ea2…f112 | [0] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0x94cd85…f43a2c | 12 days agoWed, 05 Aug 2026 12:41:06 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…00000000 data: 0x000000000000000000…00000001 |
| 0xa6a0fa…830800 | 12 days agoWed, 05 Aug 2026 12:39:33 UTC | 0x44cd04…6483 | [0] 0x000000000000…e6a60c5d [1] 0x000000000000…00000057 |
| 0xa6a0fa…830800 | 12 days agoWed, 05 Aug 2026 12:39:33 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…00000000 [2] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0xfefcdd…28aca4 | 12 days agoWed, 05 Aug 2026 12:38:31 UTC | 0x996ea2…f112 | [0] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0xfefcdd…28aca4 | 12 days agoWed, 05 Aug 2026 12:38:31 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…00000000 data: 0x000000000000000000…00000001 |
| 0xb4c3b0…b63e1e | 12 days agoWed, 05 Aug 2026 12:18:57 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…da225970 data: 0x000000000000000000…00000001 |
| 0xf58f05…ddddbd | 12 days agoWed, 05 Aug 2026 12:07:44 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…da225970 data: 0x000000000000000000…00000001 |
| 0xbdd138…bd5cdb | 12 days agoWed, 05 Aug 2026 12:07:37 UTC | ApprovalForAll | [0] 0x000000000000…e6a60c5d [1] 0x000000000000…da225970 data: 0x000000000000000000…00000001 |
| 0xbccf2d…7570b4 | 12 days agoWed, 05 Aug 2026 12:06:19 UTC | 0x44cd04…6483 | [0] 0x000000000000…e6a60c5d [1] 0x000000000000…00000006 |
| 0xbccf2d…7570b4 | 12 days agoWed, 05 Aug 2026 12:06:19 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…00000000 [2] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0xbc6336…a769bd | 12 days agoWed, 05 Aug 2026 12:05:15 UTC | 0x996ea2…f112 | [0] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0xbc6336…a769bd | 12 days agoWed, 05 Aug 2026 12:05:15 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…00000000 data: 0x000000000000000000…00000001 |
| 0xbc9f34…6c9570 | 12 days agoWed, 05 Aug 2026 12:02:25 UTC | 0x44cd04…6483 | [0] 0x000000000000…e6a60c5d [1] 0x000000000000…00000036 |
| 0xbc9f34…6c9570 | 12 days agoWed, 05 Aug 2026 12:02:25 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…00000000 [2] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0xabd759…eea2e5 | 12 days agoWed, 05 Aug 2026 12:01:39 UTC | 0x996ea2…f112 | [0] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0xabd759…eea2e5 | 12 days agoWed, 05 Aug 2026 12:01:39 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…00000000 data: 0x000000000000000000…00000001 |
| 0x2f9a44…538bf3 | 12 days agoWed, 05 Aug 2026 12:01:20 UTC | 0x44cd04…6483 | [0] 0x000000000000…e6a60c5d [1] 0x000000000000…00000051 |
| 0x2f9a44…538bf3 | 12 days agoWed, 05 Aug 2026 12:01:20 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…00000000 [2] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0x324ebb…065293 | 12 days agoWed, 05 Aug 2026 12:00:22 UTC | 0x996ea2…f112 | [0] 0x000000000000…e6a60c5d data: 0x000000000000000000…00000001 |
| 0x324ebb…065293 | 12 days agoWed, 05 Aug 2026 12:00:22 UTC | TransferSingle | [0] 0x000000000000…da225970 [1] 0x000000000000…e6a60c5d [2] 0x000000000000…00000000 data: 0x000000000000000000…00000001 |
| 0x979f2e…352c8d | 12 days agoWed, 05 Aug 2026 11:59:47 UTC | 0x460787…da32 | [0] 0x000000000000…e6a60c5d data: 0x000000000000000000…0000000a |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xbdd138…bd5cdb | Set Approval For All | 28,473,279 | 12 days agoWed, 05 Aug 2026 12:07:37 UTC | 0x14dc…0c5d | IN | DoggyGearNFT | $0.000 ETH | 0.00000093 | |
| 0x3e03c2…6d3669 | bindGame | 26,840,522 | 14 days agoMon, 03 Aug 2026 14:39:08 UTC | 0x14dc…0c5d | IN | DoggyGearNFT | $0.000 ETH | 0.00000099 |