// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {SafeOwned} from "./access/SafeOwned.sol";
import {IDeepShiftToken} from "./interfaces/IDeepShiftToken.sol";
/// @notice Deep Shift ORE. Miners remain ordinary game records, never NFTs.
/// @dev Historical issuance never decreases, so burns cannot reopen the cap.
contract DeepShiftToken is SafeOwned, IDeepShiftToken {
error CapExceeded();
error UnauthorizedMinter();
error InsufficientBalance();
error InsufficientAllowance();
error InvalidRecipient();
error AlreadyBootstrapped();
error OnlyBootstrapper();
error OnlyLaunchCoordinator();
error AlreadyLaunched();
error NotBootstrapped();
error GameNotLive();
string public constant name = "Deep Shift";
string public constant symbol = "ORE";
uint8 public constant decimals = 18;
uint256 public constant MAX_HISTORICAL_ISSUANCE = 69_000_000 ether;
uint256 public constant GROSS_PRE_LP_ISSUANCE = 5_175_000 ether;
uint256 public constant LP_TOKEN_ALLOCATION = 2_070_000 ether;
uint256 public constant EXTERNAL_ALLOCATION = 2_070_000 ether;
uint256 public constant SAFE_ALLOCATION = 1_035_000 ether;
uint256 public constant MINING_EMISSION_ALLOCATION = 63_825_000 ether;
uint256 public launchBlock;
uint256 public totalSupply;
uint256 public historicalMinted;
mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
address public bootstrapper;
address public minter;
address public launchCoordinator;
bool public bootstrapped;
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event MinterConfigured(address indexed minter);
event LaunchActivated(uint256 indexed launchBlock, address indexed coordinator);
event Bootstrapped(
address indexed safe, address indexed externalVault, address indexed launchCoordinator, address miningMinter
);
constructor(address initialOwner, address initialBootstrapper) SafeOwned(initialOwner) {
if (initialBootstrapper == address(0)) revert InvalidRecipient();
bootstrapper = initialBootstrapper;
}
function bootstrap(address safe, address externalVault, address coordinator, address miningMinter) external {
if (msg.sender != bootstrapper) revert OnlyBootstrapper();
if (bootstrapped) revert AlreadyBootstrapped();
if (safe != owner) revert InvalidRecipient();
if (
safe == address(0) || externalVault == address(0) || coordinator == address(0) || miningMinter == address(0)
) revert InvalidRecipient();
bootstrapped = true;
bootstrapper = address(0);
minter = miningMinter;
launchCoordinator = coordinator;
emit MinterConfigured(miningMinter);
_mint(externalVault, EXTERNAL_ALLOCATION);
_mint(safe, SAFE_ALLOCATION);
_mint(coordinator, LP_TOKEN_ALLOCATION);
if (historicalMinted != GROSS_PRE_LP_ISSUANCE) revert CapExceeded();
emit Bootstrapped(safe, externalVault, coordinator, miningMinter);
}
/// @notice Permanently fixes the mining epoch to the atomic CROAK LP launch block.
function activateLaunch() external {
if (msg.sender != launchCoordinator) revert OnlyLaunchCoordinator();
if (!bootstrapped) revert NotBootstrapped();
if (launchBlock != 0) revert AlreadyLaunched();
launchBlock = block.number;
emit LaunchActivated(block.number, msg.sender);
}
function mint(address to, uint256 amount) external {
if (msg.sender != minter) revert UnauthorizedMinter();
if (launchBlock == 0) revert GameNotLive();
if (to == address(0)) revert InvalidRecipient();
if (amount > MAX_HISTORICAL_ISSUANCE - historicalMinted) revert CapExceeded();
_mint(to, amount);
}
function burn(uint256 amount) external {
_burn(msg.sender, amount);
}
function burnFrom(address from, uint256 amount) external {
uint256 permitted = allowance[from][msg.sender];
if (permitted != type(uint256).max) {
if (permitted < amount) revert InsufficientAllowance();
unchecked {
allowance[from][msg.sender] = permitted - amount;
}
emit Approval(from, msg.sender, allowance[from][msg.sender]);
}
_burn(from, amount);
}
function approve(address spender, uint256 amount) external returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transfer(address to, uint256 amount) external returns (bool) {
_transfer(msg.sender, to, amount);
return true;
}
function transferFrom(address from, address to, uint256 amount) external returns (bool) {
uint256 permitted = allowance[from][msg.sender];
if (permitted != type(uint256).max) {
if (permitted < amount) revert InsufficientAllowance();
unchecked {
allowance[from][msg.sender] = permitted - amount;
}
emit Approval(from, msg.sender, allowance[from][msg.sender]);
}
_transfer(from, to, amount);
return true;
}
function _transfer(address from, address to, uint256 amount) private {
if (to == address(0)) revert InvalidRecipient();
if (balanceOf[from] < amount) revert InsufficientBalance();
unchecked {
balanceOf[from] -= amount;
balanceOf[to] += amount;
}
emit Transfer(from, to, amount);
}
function _burn(address from, uint256 amount) private {
if (balanceOf[from] < amount) revert InsufficientBalance();
unchecked {
balanceOf[from] -= amount;
totalSupply -= amount;
}
emit Transfer(from, address(0), amount);
}
function _mint(address to, uint256 amount) private {
if (to == address(0)) revert InvalidRecipient();
if (amount > MAX_HISTORICAL_ISSUANCE - historicalMinted) revert CapExceeded();
historicalMinted += amount;
totalSupply += amount;
balanceOf[to] += amount;
emit Transfer(address(0), to, amount);
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "initialOwner",
"type": "address",
"internalType": "address"
},
{
"name": "initialBootstrapper",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyBootstrapped",
"type": "error",
"inputs": []
},
{
"name": "AlreadyLaunched",
"type": "error",
"inputs": []
},
{
"name": "CapExceeded",
"type": "error",
"inputs": []
},
{
"name": "GameNotLive",
"type": "error",
"inputs": []
},
{
"name": "InsufficientAllowance",
"type": "error",
"inputs": []
},
{
"name": "InsufficientBalance",
"type": "error",
"inputs": []
},
{
"name": "InvalidRecipient",
"type": "error",
"inputs": []
},
{
"name": "NotBootstrapped",
"type": "error",
"inputs": []
},
{
"name": "OnlyBootstrapper",
"type": "error",
"inputs": []
},
{
"name": "OnlyLaunchCoordinator",
"type": "error",
"inputs": []
},
{
"name": "OnlyOwner",
"type": "error",
"inputs": []
},
{
"name": "UnauthorizedMinter",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "Approval",
"type": "event",
"inputs": [
{
"name": "owner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "spender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Bootstrapped",
"type": "event",
"inputs": [
{
"name": "safe",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "externalVault",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "launchCoordinator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "miningMinter",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "LaunchActivated",
"type": "event",
"inputs": [
{
"name": "launchBlock",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "coordinator",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "MinterConfigured",
"type": "event",
"inputs": [
{
"name": "minter",
"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": "Transfer",
"type": "event",
"inputs": [
{
"name": "from",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "value",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "EXTERNAL_ALLOCATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "GROSS_PRE_LP_ISSUANCE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "LP_TOKEN_ALLOCATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MAX_HISTORICAL_ISSUANCE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "MINING_EMISSION_ALLOCATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "SAFE_ALLOCATION",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "activateLaunch",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "allowance",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
},
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "approve",
"type": "function",
"inputs": [
{
"name": "spender",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "balanceOf",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "bootstrap",
"type": "function",
"inputs": [
{
"name": "safe",
"type": "address",
"internalType": "address"
},
{
"name": "externalVault",
"type": "address",
"internalType": "address"
},
{
"name": "coordinator",
"type": "address",
"internalType": "address"
},
{
"name": "miningMinter",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "bootstrapped",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "bootstrapper",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "burn",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "burnFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "decimals",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "uint8"
}
],
"stateMutability": "view"
},
{
"name": "historicalMinted",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "launchBlock",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "launchCoordinator",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "mint",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "minter",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "name",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "symbol",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "string",
"internalType": "string"
}
],
"stateMutability": "view"
},
{
"name": "totalSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transfer",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferFrom",
"type": "function",
"inputs": [
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
}
]0x6080346100eb57601f610ec038819003918201601f19168301916001600160401b038311848410176100ef5780849260409485528339810103126100eb57610052602061004b83610103565b9201610103565b6001600160a01b039091169081156100dc575f80546001600160a01b0319168317815560405192907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36001600160a01b031680156100cd57600680546001600160a01b031916919091179055610da890816101188239f35b634e46966960e11b5f5260045ffd5b63d92e233d60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100eb5756fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610aee5780630754617214610ac657806307fd9e0614610885578063095ea7b31461080c57806316d2399d146107ef57806318160ddd146107d257806323b872dd146107155780632e1cd750146106f0578063313ce567146106d557806335142c8c146106b057806340c10f191461057757806342966c681461055a57806357215c01146105355780635758abda1461027057806370a08231146104fd578063786e0838146104d557806379cc6790146104115780637c01fbf2146103ed5780638a3aded1146103c55780638da5cb5b1461039e57806395d89b4114610338578063a9059cbb14610307578063baff2fc5146102e2578063d00efb2f146102c5578063dd62ed3e14610275578063e3a8d88a14610270578063ecf91842146101e25763f2fde38b1461014d575f80fd5b346101de5760203660031901126101de57610166610b69565b5f546001600160a01b03811691338390036101cf576001600160a01b03169182156101c05782907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031916175f55005b63d92e233d60e01b5f5260045ffd5b635fc483c560e01b5f5260045ffd5b5f80fd5b346101de575f3660031901126101de576008546001600160a01b03811633036102615760a01c60ff161561025257600154610243574360015533437f2d94fe1c0a583f788889ab72e579a66fbabd9458427c8aa4e3af4ef7e30ad2675f80a3005b6319f4db0f60e31b5f5260045ffd5b6306e27ae160e41b5f5260045ffd5b636f26301f60e01b5f5260045ffd5b610b95565b346101de5760403660031901126101de5761028e610b69565b610296610b7f565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101de575f3660031901126101de576020600154604051908152f35b346101de575f3660031901126101de5760206040516a34cb782ed5712510a000008152f35b346101de5760403660031901126101de5761032d610323610b69565b6024359033610c87565b602060405160018152f35b346101de575f3660031901126101de57604051604081019080821067ffffffffffffffff83111761038a576103869160405260038152624f524560e81b602082015260405191829182610b3f565b0390f35b634e487b7160e01b5f52604160045260245ffd5b346101de575f3660031901126101de575f546040516001600160a01b039091168152602090f35b346101de575f3660031901126101de576008546040516001600160a01b039091168152602090f35b346101de575f3660031901126101de57602060405169db2b76618efb10e000008152f35b346101de5760403660031901126101de5761042a610b69565b6001600160a01b0381165f818152600560209081526040808320338452909152902054916024359160018401610467575b6104658383610d01565b005b8284106104c6575f8181526005602090815260408083203380855290835292819020968690039687905551958652610465959192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a38361045b565b6313be252b60e01b5f5260045ffd5b346101de575f3660031901126101de576006546040516001600160a01b039091168152602090f35b346101de5760203660031901126101de576001600160a01b0361051e610b69565b165f526004602052602060405f2054604051908152f35b346101de575f3660031901126101de5760206040516a0447d94fe7cae7546000008152f35b346101de5760203660031901126101de5761046560043533610d01565b346101de5760403660031901126101de57610590610b69565b60075460243591906001600160a01b031633036106a15760015415610692576001600160a01b0316908115610683576003546a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f5781116106605760035490816a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f5781116106605760208161062d5f80516020610d53833981519152935f95610bba565b60035561063c81600254610bba565b6002558484526004825260408420610655828254610bba565b9055604051908152a3005b63a4875a4960e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b634e46966960e11b5f5260045ffd5b632f9107b560e01b5f5260045ffd5b63955c501b60e01b5f5260045ffd5b346101de575f3660031901126101de57602060ff60085460a01c166040519015158152f35b346101de575f3660031901126101de57602060405160128152f35b346101de575f3660031901126101de5760206040516a3913517ebd3c0c650000008152f35b346101de5760603660031901126101de5761072e610b69565b610736610b7f565b6001600160a01b0382165f81815260056020908152604080832033845290915290205492604435929160018501610773575b5061032d9350610c87565b8385106104c6575f818152600560209081526040808320338085529083529281902097879003978890555196875261032d969192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a384610768565b346101de575f3660031901126101de576020600254604051908152f35b346101de575f3660031901126101de576020600354604051908152f35b346101de5760403660031901126101de57610825610b69565b335f8181526005602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101de5760803660031901126101de5761089e610b69565b6108a6610b7f565b6044356001600160a01b0381169290918383036101de576064356001600160a01b03811693908490036101de576006546001600160a01b0381163303610ab75760085460ff8160a01c16610aa8575f546001600160a01b039586169516850361068357841591828015610a97575b8015610a8f575b8015610a87575b610683576001600160a01b031990811660065560078054909116871790556001600160a81b0319168617600160a01b17600855847fdf21bac22f6aff277bfdfaafb4853c2c3edd0070f1222592fb499b71fdfca2295f80a261098383610bc7565b61068357600354806a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f5769db2b76618efb10e00000116106605769db2b76618efb10e00000810180911161066f5760035560025469db2b76618efb10e00000810180911161066f57600255825f52600460205260405f2090815469db2b76618efb10e00000810180911161066f57610a3b9255835f5f80516020610d53833981519152602060405169db2b76618efb10e000008152a3610bc7565b6a0447d94fe7cae75460000060035403610660576040519283526001600160a01b0316917f6152ef9fd5f46aa919e4f3138f6cc749b7ea243839cbf72fd39726c93af867a690602090a4005b508615610922565b50871561091b565b506001600160a01b03851615610914565b635c03d07560e11b5f5260045ffd5b6312e1500960e31b5f5260045ffd5b346101de575f3660031901126101de576007546040516001600160a01b039091168152602090f35b346101de575f3660031901126101de57604051604081019080821067ffffffffffffffff83111761038a5761038691604052600a8152691119595c0814da1a599d60b21b6020820152604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101de57565b602435906001600160a01b03821682036101de57565b346101de575f3660031901126101de5760206040516a01b656ecc31df621c000008152f35b9190820180921161066f57565b6001600160a01b0316801561068357600354806a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f576a01b656ecc31df621c0000011610660576a01b656ecc31df621c00000810180911161066f576003556002546a01b656ecc31df621c00000810180911161066f57600255805f52600460205260405f208054906a01b656ecc31df621c00000820180921161066f57555f5f80516020610d5383398151915260206040516a01b656ecc31df621c000008152a3565b6001600160a01b03909116919082156106835760018060a01b031690815f5260046020528060405f205410610cf25760205f80516020610d5383398151915291835f526004825260405f20818154039055845f526004825260405f20818154019055604051908152a3565b631e9acf1760e31b5f5260045ffd5b6001600160a01b03165f818152600460205260409020548211610cf2575f80516020610d5383398151915260205f9383855260048252604085208181540390558060025403600255604051908152a356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208e4ca7f34394020a2ca3399babfa8641639e9fb1a531fe719a0eef0bd071d0fa64736f6c634300081a0033000000000000000000000000cb7c7c749c369a0b7001c316d03b07c042d11c29000000000000000000000000ec9543b02e0757249e6bf35b462654b5f9e72d2b
0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde0314610aee5780630754617214610ac657806307fd9e0614610885578063095ea7b31461080c57806316d2399d146107ef57806318160ddd146107d257806323b872dd146107155780632e1cd750146106f0578063313ce567146106d557806335142c8c146106b057806340c10f191461057757806342966c681461055a57806357215c01146105355780635758abda1461027057806370a08231146104fd578063786e0838146104d557806379cc6790146104115780637c01fbf2146103ed5780638a3aded1146103c55780638da5cb5b1461039e57806395d89b4114610338578063a9059cbb14610307578063baff2fc5146102e2578063d00efb2f146102c5578063dd62ed3e14610275578063e3a8d88a14610270578063ecf91842146101e25763f2fde38b1461014d575f80fd5b346101de5760203660031901126101de57610166610b69565b5f546001600160a01b03811691338390036101cf576001600160a01b03169182156101c05782907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031916175f55005b63d92e233d60e01b5f5260045ffd5b635fc483c560e01b5f5260045ffd5b5f80fd5b346101de575f3660031901126101de576008546001600160a01b03811633036102615760a01c60ff161561025257600154610243574360015533437f2d94fe1c0a583f788889ab72e579a66fbabd9458427c8aa4e3af4ef7e30ad2675f80a3005b6319f4db0f60e31b5f5260045ffd5b6306e27ae160e41b5f5260045ffd5b636f26301f60e01b5f5260045ffd5b610b95565b346101de5760403660031901126101de5761028e610b69565b610296610b7f565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101de575f3660031901126101de576020600154604051908152f35b346101de575f3660031901126101de5760206040516a34cb782ed5712510a000008152f35b346101de5760403660031901126101de5761032d610323610b69565b6024359033610c87565b602060405160018152f35b346101de575f3660031901126101de57604051604081019080821067ffffffffffffffff83111761038a576103869160405260038152624f524560e81b602082015260405191829182610b3f565b0390f35b634e487b7160e01b5f52604160045260245ffd5b346101de575f3660031901126101de575f546040516001600160a01b039091168152602090f35b346101de575f3660031901126101de576008546040516001600160a01b039091168152602090f35b346101de575f3660031901126101de57602060405169db2b76618efb10e000008152f35b346101de5760403660031901126101de5761042a610b69565b6001600160a01b0381165f818152600560209081526040808320338452909152902054916024359160018401610467575b6104658383610d01565b005b8284106104c6575f8181526005602090815260408083203380855290835292819020968690039687905551958652610465959192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a38361045b565b6313be252b60e01b5f5260045ffd5b346101de575f3660031901126101de576006546040516001600160a01b039091168152602090f35b346101de5760203660031901126101de576001600160a01b0361051e610b69565b165f526004602052602060405f2054604051908152f35b346101de575f3660031901126101de5760206040516a0447d94fe7cae7546000008152f35b346101de5760203660031901126101de5761046560043533610d01565b346101de5760403660031901126101de57610590610b69565b60075460243591906001600160a01b031633036106a15760015415610692576001600160a01b0316908115610683576003546a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f5781116106605760035490816a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f5781116106605760208161062d5f80516020610d53833981519152935f95610bba565b60035561063c81600254610bba565b6002558484526004825260408420610655828254610bba565b9055604051908152a3005b63a4875a4960e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b634e46966960e11b5f5260045ffd5b632f9107b560e01b5f5260045ffd5b63955c501b60e01b5f5260045ffd5b346101de575f3660031901126101de57602060ff60085460a01c166040519015158152f35b346101de575f3660031901126101de57602060405160128152f35b346101de575f3660031901126101de5760206040516a3913517ebd3c0c650000008152f35b346101de5760603660031901126101de5761072e610b69565b610736610b7f565b6001600160a01b0382165f81815260056020908152604080832033845290915290205492604435929160018501610773575b5061032d9350610c87565b8385106104c6575f818152600560209081526040808320338085529083529281902097879003978890555196875261032d969192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a384610768565b346101de575f3660031901126101de576020600254604051908152f35b346101de575f3660031901126101de576020600354604051908152f35b346101de5760403660031901126101de57610825610b69565b335f8181526005602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101de5760803660031901126101de5761089e610b69565b6108a6610b7f565b6044356001600160a01b0381169290918383036101de576064356001600160a01b03811693908490036101de576006546001600160a01b0381163303610ab75760085460ff8160a01c16610aa8575f546001600160a01b039586169516850361068357841591828015610a97575b8015610a8f575b8015610a87575b610683576001600160a01b031990811660065560078054909116871790556001600160a81b0319168617600160a01b17600855847fdf21bac22f6aff277bfdfaafb4853c2c3edd0070f1222592fb499b71fdfca2295f80a261098383610bc7565b61068357600354806a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f5769db2b76618efb10e00000116106605769db2b76618efb10e00000810180911161066f5760035560025469db2b76618efb10e00000810180911161066f57600255825f52600460205260405f2090815469db2b76618efb10e00000810180911161066f57610a3b9255835f5f80516020610d53833981519152602060405169db2b76618efb10e000008152a3610bc7565b6a0447d94fe7cae75460000060035403610660576040519283526001600160a01b0316917f6152ef9fd5f46aa919e4f3138f6cc749b7ea243839cbf72fd39726c93af867a690602090a4005b508615610922565b50871561091b565b506001600160a01b03851615610914565b635c03d07560e11b5f5260045ffd5b6312e1500960e31b5f5260045ffd5b346101de575f3660031901126101de576007546040516001600160a01b039091168152602090f35b346101de575f3660031901126101de57604051604081019080821067ffffffffffffffff83111761038a5761038691604052600a8152691119595c0814da1a599d60b21b6020820152604051918291825b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101de57565b602435906001600160a01b03821682036101de57565b346101de575f3660031901126101de5760206040516a01b656ecc31df621c000008152f35b9190820180921161066f57565b6001600160a01b0316801561068357600354806a3913517ebd3c0c65000000036a3913517ebd3c0c65000000811161066f576a01b656ecc31df621c0000011610660576a01b656ecc31df621c00000810180911161066f576003556002546a01b656ecc31df621c00000810180911161066f57600255805f52600460205260405f208054906a01b656ecc31df621c00000820180921161066f57555f5f80516020610d5383398151915260206040516a01b656ecc31df621c000008152a3565b6001600160a01b03909116919082156106835760018060a01b031690815f5260046020528060405f205410610cf25760205f80516020610d5383398151915291835f526004825260405f20818154039055845f526004825260405f20818154019055604051908152a3565b631e9acf1760e31b5f5260045ffd5b6001600160a01b03165f818152600460205260409020548211610cf2575f80516020610d5383398151915260205f9383855260048252604085208181540390558060025403600255604051908152a356feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212208e4ca7f34394020a2ca3399babfa8641639e9fb1a531fe719a0eef0bd071d0fa64736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| Wolf Pack (PACK) | PACK | 10 | — | — |
| 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 |
|---|---|---|---|
| 0x7a1cbf…8aaa08 | 42 mins agoMon, 17 Aug 2026 22:16:57 UTC | Transfer | [0] 0x000000000000…7c41b85b [1] 0x000000000000…0000dead data: 0x000000000000000000…00e4b8ee |
| 0xd54582…26603b | 7 hrs agoMon, 17 Aug 2026 15:12:01 UTC | Transfer | [0] 0x000000000000…a7d72116 [1] 0x000000000000…43e40951 data: 0x000000000000000000…b8d85f8e |
| 0xd54582…26603b | 7 hrs agoMon, 17 Aug 2026 15:12:01 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…a7d72116 data: 0x000000000000000000…b8d85f8e |
| 0x68b5eb…46e39e | 7 hrs agoMon, 17 Aug 2026 15:12:01 UTC | Transfer | [0] 0x000000000000…a7d72116 [1] 0x000000000000…43e40951 data: 0x000000000000000000…26e167ae |
| 0x68b5eb…46e39e | 7 hrs agoMon, 17 Aug 2026 15:12:01 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…a7d72116 data: 0x000000000000000000…26e167ae |
| 0x4dd479…b452dc | 7 hrs agoMon, 17 Aug 2026 15:12:00 UTC | Transfer | [0] 0x000000000000…8376dd7b [1] 0x000000000000…43e40951 data: 0x000000000000000000…29443a0d |
| 0x4dd479…b452dc | 7 hrs agoMon, 17 Aug 2026 15:12:00 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…8376dd7b data: 0x000000000000000000…29443a0d |
| 0xbbf5ae…12d92b | 7 hrs agoMon, 17 Aug 2026 15:12:00 UTC | Transfer | [0] 0x000000000000…311048d6 [1] 0x000000000000…43e40951 data: 0x000000000000000000…82e7bae8 |
| 0xa6017b…ed8375 | 7 hrs agoMon, 17 Aug 2026 15:11:59 UTC | Approval | [0] 0x000000000000…311048d6 [1] 0x000000000000…72c22734 data: 0xffffffffffffffffff…ffffffff |
| 0xd428bc…50bbac | 7 hrs agoMon, 17 Aug 2026 15:11:54 UTC | Transfer | [0] 0x000000000000…43e40951 [1] 0x000000000000…311048d6 data: 0x000000000000000000…78c3a5d8 |
| 0xc221d6…2301fb | 13 hrs agoMon, 17 Aug 2026 09:35:27 UTC | Transfer | [0] 0x000000000000…56566301 [1] 0x000000000000…ab383f7b data: 0x000000000000000000…50080000 |
| 0xc221d6…2301fb | 13 hrs agoMon, 17 Aug 2026 09:35:27 UTC | Transfer | [0] 0x000000000000…56566301 [1] 0x000000000000…00000000 data: 0x000000000000000000…f0180000 |
| 0xc221d6…2301fb | 13 hrs agoMon, 17 Aug 2026 09:35:27 UTC | Transfer | [0] 0x000000000000…1a8a83ff [1] 0x000000000000…56566301 data: 0x000000000000000000…40200000 |
| 0xc221d6…2301fb | 13 hrs agoMon, 17 Aug 2026 09:35:27 UTC | Approval | [0] 0x000000000000…1a8a83ff [1] 0x000000000000…56566301 data: 0x000000000000000000…00000000 |
| 0xe3dba3…0e9236 | 13 hrs agoMon, 17 Aug 2026 09:35:13 UTC | Approval | [0] 0x000000000000…1a8a83ff [1] 0x000000000000…56566301 data: 0x000000000000000000…40200000 |
| 0xa51068…7cf3de | 13 hrs agoMon, 17 Aug 2026 09:34:43 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…1a8a83ff data: 0x000000000000000000…ad34c391 |
| 0x767c1f…3439eb | 15 hrs agoMon, 17 Aug 2026 07:55:18 UTC | Transfer | [0] 0x000000000000…56566301 [1] 0x000000000000…ab383f7b data: 0x000000000000000000…50080000 |
| 0x767c1f…3439eb | 15 hrs agoMon, 17 Aug 2026 07:55:18 UTC | Transfer | [0] 0x000000000000…56566301 [1] 0x000000000000…00000000 data: 0x000000000000000000…f0180000 |
| 0x767c1f…3439eb | 15 hrs agoMon, 17 Aug 2026 07:55:18 UTC | Transfer | [0] 0x000000000000…1a8a83ff [1] 0x000000000000…56566301 data: 0x000000000000000000…40200000 |
| 0x767c1f…3439eb | 15 hrs agoMon, 17 Aug 2026 07:55:18 UTC | Approval | [0] 0x000000000000…1a8a83ff [1] 0x000000000000…56566301 data: 0x000000000000000000…00000000 |
| 0x1748f9…822273 | 15 hrs agoMon, 17 Aug 2026 07:55:06 UTC | Approval | [0] 0x000000000000…1a8a83ff [1] 0x000000000000…56566301 data: 0x000000000000000000…40200000 |
| 0x0e3c48…61a6aa | 15 hrs agoMon, 17 Aug 2026 07:53:47 UTC | Transfer | [0] 0x000000000000…00000000 [1] 0x000000000000…1a8a83ff data: 0x000000000000000000…b49c1f66 |
| 0x9ed232…9e10b1 | 17 hrs agoMon, 17 Aug 2026 05:52:51 UTC | Transfer | [0] 0x000000000000…da0bbbcd [1] 0x000000000000…43e40951 data: 0x000000000000000000…d27127d0 |
| 0x9ed232…9e10b1 | 17 hrs agoMon, 17 Aug 2026 05:52:51 UTC | Approval | [0] 0x000000000000…da0bbbcd [1] 0x000000000000…262c40dc data: 0x000000000000000000…00000000 |
| 0xd3e4bb…8a96da | 17 hrs agoMon, 17 Aug 2026 05:52:51 UTC | Approval | [0] 0x000000000000…da0bbbcd [1] 0x000000000000…262c40dc data: 0x000000000000000000…d27127d0 |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x854ab6d7…883b31 | Transfer | 37,460,062 | 2 days agoSat, 15 Aug 2026 22:05:39 UTC | 0xc7a7…cec7 | IN | 0xde57…4fa1 | 10 PACK | Wolf Pack (PACK) |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x7a1cbf…8aaa08 | Transfer | 39,188,915 | 42 mins agoMon, 17 Aug 2026 22:16:57 UTC | 0x4ffa…b85b | IN | Deep Shift | $0.000 ETH | 0.00000093 | |
| 0xa6017b…ed8375 | Approve | 38,934,617 | 7 hrs agoMon, 17 Aug 2026 15:11:59 UTC | 0xfe8b…48d6 | IN | Deep Shift | $0.000 ETH | 0.00000094 | |
| 0xe3dba3…0e9236 | Approve | 38,733,079 | 13 hrs agoMon, 17 Aug 2026 09:35:13 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000092 | |
| 0x1748f9…822273 | Approve | 38,673,255 | 15 hrs agoMon, 17 Aug 2026 07:55:06 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000093 | |
| 0xd3e4bb…8a96da | Approve | 38,600,195 | 17 hrs agoMon, 17 Aug 2026 05:52:51 UTC | 0x7773…bbcd | IN | Deep Shift | $0.000 ETH | 0.00000092 | |
| 0x7a9a44…16d262 | Approve | 38,500,963 | 19 hrs agoMon, 17 Aug 2026 03:06:49 UTC | 0xe8d5…47d7 | IN | Deep Shift | $0.000 ETH | 0.00000093 | |
| 0x5ca571…3112f7 | Approve | 38,498,914 | 19 hrs agoMon, 17 Aug 2026 03:03:23 UTC | 0x3fee…0332 | IN | Deep Shift | $0.000 ETH | 0.00000093 | |
| 0x6d759f…511dba | Approve | 38,447,698 | 21 hrs agoMon, 17 Aug 2026 01:37:43 UTC | 0x70b7…a8e6 | IN | Deep Shift | $0.000 ETH | 0.00000092 | |
| 0x8c35a2…2151d2 | Approve | 38,445,043 | 21 hrs agoMon, 17 Aug 2026 01:33:17 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000092 | |
| 0x10ff59…66ee9e | Approve | 38,443,011 | 21 hrs agoMon, 17 Aug 2026 01:29:53 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000092 | |
| 0xbd968a…eefc4b | Approve | 38,441,724 | 21 hrs agoMon, 17 Aug 2026 01:27:43 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000092 | |
| 0x6621e1…146fa6 | Approve | 38,389,044 | 23 hrs agoSun, 16 Aug 2026 23:59:36 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000093 | |
| 0x71eb69…ee1ac7 | Approve | 37,911,564 | 1 day agoSun, 16 Aug 2026 10:41:01 UTC | 0x143e…15ee | IN | Deep Shift | $0.000 ETH | 0.00000063 | |
| 0x401761…3b4993 | Approve | 37,870,115 | 1 day agoSun, 16 Aug 2026 09:31:39 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000104 | |
| 0x70fbcf…3e7140 | Approve | 37,760,626 | 1 day agoSun, 16 Aug 2026 06:28:17 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000112 | |
| 0x29d24a…ea3741 | Approve | 37,760,099 | 1 day agoSun, 16 Aug 2026 06:27:24 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000112 | |
| 0x93afed…dd7d00 | Approve | 37,568,804 | 1 day agoSun, 16 Aug 2026 01:07:24 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000124 | |
| 0xeb3fe9…af2dd9 | Approve | 37,568,383 | 1 day agoSun, 16 Aug 2026 01:06:42 UTC | 0x90f8…83ff | IN | Deep Shift | $0.000 ETH | 0.00000124 | |
| 0xf3c1ae…85ef75 | Approve | 37,566,167 | 1 day agoSun, 16 Aug 2026 01:02:59 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000125 | |
| 0x13b78f…1e8e86 | Approve | 37,565,249 | 1 day agoSun, 16 Aug 2026 01:01:27 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000124 | |
| 0xc20114…ae1cad | Approve | 37,555,313 | 1 day agoSun, 16 Aug 2026 00:44:51 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000126 | |
| 0xc432cb…1f65c6 | Approve | 37,553,890 | 1 day agoSun, 16 Aug 2026 00:42:28 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000125 | |
| 0xcac0c0…aee545 | Approve | 37,551,942 | 1 day agoSun, 16 Aug 2026 00:39:13 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000126 | |
| 0x0264a8…e943d4 | Approve | 37,550,890 | 1 day agoSun, 16 Aug 2026 00:37:27 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000125 | |
| 0xe1b9b9…80ffbc | Approve | 37,490,486 | 2 days agoSat, 15 Aug 2026 22:56:29 UTC | 0x43c9…33f7 | IN | Deep Shift | $0.000 ETH | 0.00000128 |