{"sources":{"src/HyperionSvgEngine.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.28;\n\n/**\n * @title HyperionSvgEngine\n * @notice Stateless On-Chain SVG & Metadata Renderer for HyperionDeltaDesk (HDELTA).\n * @custom:website https://hyperiondelta.surge.sh\n * @custom:agent-guide https://hyperiondelta.surge.sh/skill.md\n */\ncontract HyperionSvgEngine {\n    string public constant WEBSITE = \"https://hyperiondelta.surge.sh\";\n    string public constant AGENT_GUIDE = \"https://hyperiondelta.surge.sh/skill.md\";\n\n    struct PositionView {\n        uint256 tokenId;\n        uint8 tier; // 1 = Free Pass, 2 = Delta Share, 3 = Breaker Share (3x), 4 = Burst Winner, 5 = Atomic Sweep\n        uint256 unitWeight;\n        uint256 burstWonWei;\n        uint256 paidTicks;\n        uint256 deltaPoolWei;\n        uint256 pendingHolderYieldWei;\n    }\n\n    function renderTokenURI(PositionView memory v) external pure returns (string memory) {\n        string memory tierLabel = _tierName(v.tier);\n        return string(\n            abi.encodePacked(\n                \"data:application/json;utf8,{\\\"name\\\":\\\"Hyperion Delta Note #\",\n                _u2s(v.tokenId),\n                \" [\",\n                tierLabel,\n                \"]\\\",\\\"description\\\":\\\"Hyperion Delta Desk (HDELTA) - Autonomous 4-Tick MEV Burst & Real-Time BNB Yield Engine on BNB Chain. Official Terminal: https://hyperiondelta.surge.sh | Paid Share: 0.0010 BNB (0.0009 BNB via mintWithRef). Every 4th paid share clears 80% of the Delta Pool (~0.00124 BNB) atomically in the same transaction. Tick #1 after a clear receives 0.00010 BNB instant Breaker Cashback + 3x Yield Weight (360,000 units).\\\",\\\"external_url\\\":\\\"https://hyperiondelta.surge.sh\\\",\\\"image\\\":\\\"data:image/svg+xml;utf8,\",\n                _buildTokenSvg(v, tierLabel, _tierColor(v.tier)),\n                \"\\\",\\\"attributes\\\":\",\n                _buildTokenAttrs(v, tierLabel),\n                \"}\"\n            )\n        );\n    }\n\n    function _buildTokenSvg(PositionView memory v, string memory tierLabel, string memory accent)\n        internal\n        pure\n        returns (string memory svg)\n    {\n        uint256 modTick = v.paidTicks % 4;\n        uint256 ticksLeft = 4 - modTick;\n        uint256 nextBurstEst = ((v.deltaPoolWei + (ticksLeft * 310000000000000)) * 80) / 100;\n\n        svg = string(\n            abi.encodePacked(\n                \"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600' width='600' height='600'><defs><linearGradient id='bg' x1='0' y1='0' x2='1' y2='1'><stop offset='0%' stop-color='#070b12'/><stop offset='55%' stop-color='#0f172a'/><stop offset='100%' stop-color='#041b24'/></linearGradient></defs><rect width='600' height='600' fill='url(#bg)'/><rect x='18' y='18' width='564' height='564' rx='16' fill='none' stroke='\",\n                accent,\n                \"' stroke-width='2' stroke-opacity='0.65'/><path d='M40 96 H560 M40 245 H560 M40 430 H560' stroke='#1e293b' stroke-width='1.5'/><text x='42' y='58' fill='#e2e8f0' font-family='monospace' font-size='21' font-weight='bold'>HYPERION DELTA DESK // #\",\n                _u2s(v.tokenId),\n                \"</text><text x='42' y='82' fill='\",\n                accent,\n                \"' font-family='monospace' font-size='13' font-weight='bold'>[\",\n                tierLabel,\n                \"] 4-TICK QUANT BURST ENGINE</text>\"\n            )\n        );\n        svg = string(\n            abi.encodePacked(\n                svg,\n                _renderTickMatrix(modTick, accent),\n                \"<text x='42' y='225' fill='#94a3b8' font-family='monospace' font-size='13'>CYCLE PROGRESS: \",\n                _u2s(modTick),\n                \" / 4 TICKS (NEXT CLEAR IN \",\n                _u2s(ticksLeft),\n                \" SH) | EST PAYOUT: \",\n                _fBnb(nextBurstEst),\n                \" BNB</text>\"\n            )\n        );\n        svg = string(\n            abi.encodePacked(\n                svg,\n                \"<text x='42' y='282' fill='#38bdf8' font-family='monospace' font-size='15' font-weight='bold'>LIVE DELTA POOL: \",\n                _fBnb(v.deltaPoolWei),\n                \" BNB (80% INSTANT CLEAR)</text><text x='42' y='316' fill='#f8fafc' font-family='monospace' font-size='14'>POSITION YIELD WEIGHT: \",\n                _u2s(v.unitWeight),\n                \" UNITS</text><text x='42' y='348' fill='#a7f3d0' font-family='monospace' font-size='14'>HOLDER CLAIMABLE YIELD: \",\n                _fBnb(v.pendingHolderYieldWei),\n                \" BNB</text><text x='42' y='380' fill='#fde047' font-family='monospace' font-size='14'>TOKEN BURST WON: \",\n                _fBnb(v.burstWonWei),\n                \" BNB</text>\"\n            )\n        );\n        svg = string(\n            abi.encodePacked(\n                svg,\n                \"<rect x='40' y='450' width='520' height='74' rx='10' fill='#09131c' stroke='\",\n                accent,\n                \"' stroke-width='1.2'/><text x='56' y='478' fill='#f8fafc' font-family='monospace' font-size='13' font-weight='bold'>MEV &amp; BOT ENTRY: claim() / mint(1) = 0.0010 BNB | mintWithRef = 0.0009 BNB</text><text x='56' y='504' fill='#00f5d4' font-family='monospace' font-size='12'>Every 4th Share Clears 80% (~0.00124 BNB) Instantly in Same Tx</text><text x='42' y='558' fill='#64748b' font-family='monospace' font-size='12'>https://hyperiondelta.surge.sh | Paid Ticks: \",\n                _u2s(v.paidTicks),\n                \" | Pool: \",\n                _fBnb(v.deltaPoolWei),\n                \" BNB</text></svg>\"\n            )\n        );\n    }\n\n    function _buildTokenAttrs(PositionView memory v, string memory tierLabel) internal pure returns (string memory) {\n        uint256 modTick = v.paidTicks % 4;\n        string memory a1 = string(\n            abi.encodePacked(\n                '[{\"trait_type\":\"Tier\",\"value\":\"',\n                tierLabel,\n                '\"},{\"trait_type\":\"Yield Weight\",\"display_type\":\"number\",\"value\":',\n                _u2s(v.unitWeight),\n                '},{\"trait_type\":\"Cycle Tick\",\"value\":\"',\n                _u2s(modTick),\n                '/4\"},'\n            )\n        );\n        return string(\n            abi.encodePacked(\n                a1,\n                '{\"trait_type\":\"Ticks To Burst\",\"display_type\":\"number\",\"value\":',\n                _u2s(4 - modTick),\n                '},{\"trait_type\":\"Delta Pool BNB\",\"value\":\"',\n                _fBnb(v.deltaPoolWei),\n                '\"},{\"trait_type\":\"Burst Won BNB\",\"value\":\"',\n                _fBnb(v.burstWonWei),\n                '\"}]'\n            )\n        );\n    }\n\n    function renderContractURI(\n        uint256 deltaPoolWei,\n        uint256 paidTicks,\n        uint256 totalVolumeWei,\n        address payee\n    ) external pure returns (string memory) {\n        string memory logo = string(\n            abi.encodePacked(\n                \"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'>\",\n                \"<rect width='400' height='400' rx='24' fill='#070b12' stroke='#00f5d4' stroke-width='3'/>\",\n                \"<text x='32' y='88' fill='#f8fafc' font-family='monospace' font-size='24' font-weight='bold'>HYPERION DELTA</text>\",\n                \"<text x='32' y='124' fill='#00f5d4' font-family='monospace' font-size='15'>4-TICK MEV BURST ENGINE</text>\",\n                \"<text x='32' y='190' fill='#38bdf8' font-family='monospace' font-size='16'>POOL: \",\n                _fBnb(deltaPoolWei),\n                \" BNB</text>\",\n                \"<text x='32' y='230' fill='#e2e8f0' font-family='monospace' font-size='15'>PAID TICKS: \",\n                _u2s(paidTicks),\n                \" (4-STEP)</text>\",\n                \"<text x='32' y='270' fill='#a7f3d0' font-family='monospace' font-size='14'>VOL: \",\n                _fBnb(totalVolumeWei),\n                \" BNB</text>\",\n                \"<text x='32' y='345' fill='#64748b' font-family='monospace' font-size='12'>https://hyperiondelta.surge.sh</text></svg>\"\n            )\n        );\n\n        return string(\n            abi.encodePacked(\n                \"data:application/json;utf8,{\\\"name\\\":\\\"Hyperion Delta Desk\\\",\\\"symbol\\\":\\\"HDELTA\\\",\\\"description\\\":\\\"Autonomous 4-Tick MEV Burst Pot & O(1) BNB Yield Desk on BNB Chain. Official DApp: https://hyperiondelta.surge.sh | Agent Guide: https://hyperiondelta.surge.sh/skill.md | Every 4th paid share (0.0010 BNB, or 0.0009 BNB via mintWithRef) triggers an instant 80% Delta Pool payout (~0.00124 BNB) in the same transaction.\\\",\\\"image\\\":\\\"data:image/svg+xml;utf8,\",\n                logo,\n                \"\\\",\\\"external_link\\\":\\\"https://hyperiondelta.surge.sh\\\",\\\"external_url\\\":\\\"https://hyperiondelta.surge.sh\\\",\\\"seller_fee_basis_points\\\":500,\\\"fee_recipient\\\":\\\"\",\n                _a2s(payee),\n                \"\\\"}\"\n            )\n        );\n    }\n\n    function _renderTickMatrix(uint256 modTick, string memory accent) internal pure returns (string memory out) {\n        out = \"\";\n        for (uint256 i = 0; i < 4; i++) {\n            uint256 x = 42 + (i * 132);\n            bool active = i < modTick;\n            string memory fill = active ? accent : \"#111c2d\";\n            string memory r1 = string(\n                abi.encodePacked(\n                    \"<rect x='\",\n                    _u2s(x),\n                    \"' y='122' width='118' height='68' rx='8' fill='\",\n                    fill,\n                    \"' fill-opacity='\",\n                    active ? \"0.88\" : \"0.75\",\n                    \"' stroke='\",\n                    accent,\n                    \"' stroke-width='1.5'/>\"\n                )\n            );\n            string memory r2 = string(\n                abi.encodePacked(\n                    \"<text x='\",\n                    _u2s(x + 20),\n                    \"' y='162' fill='\",\n                    active ? \"#041019\" : \"#64748b\",\n                    \"' font-family='monospace' font-size='15' font-weight='bold'>TICK 0\",\n                    _u2s(i + 1),\n                    \"</text>\"\n                )\n            );\n            out = string(abi.encodePacked(out, r1, r2));\n        }\n    }\n\n    function _tierName(uint8 tier) internal pure returns (string memory) {\n        if (tier == 5) return \"ATOMIC SWEEP 4X\";\n        if (tier == 4) return \"DELTA BURST WINNER\";\n        if (tier == 3) return \"SLOT-1 BREAKER 3X\";\n        if (tier == 2) return \"PAID DELTA SHARE\";\n        return \"AI PASS (LOCKED 10K)\";\n    }\n\n    function _tierColor(uint8 tier) internal pure returns (string memory) {\n        if (tier == 5) return \"#f43f5e\";\n        if (tier == 4) return \"#facc15\";\n        if (tier == 3) return \"#38bdf8\";\n        if (tier == 2) return \"#00f5d4\";\n        return \"#94a3b8\";\n    }\n\n    function _fBnb(uint256 weiVal) internal pure returns (string memory) {\n        uint256 whole = weiVal / 1e18;\n        uint256 dec = (weiVal % 1e18) / 1e13; // 5 decimals\n        string memory dStr = _u2s(dec);\n        bytes memory b = bytes(dStr);\n        while (b.length < 5) {\n            b = abi.encodePacked(\"0\", b);\n        }\n        return string(abi.encodePacked(_u2s(whole), \".\", string(b)));\n    }\n\n    function _u2s(uint256 v) internal pure returns (string memory) {\n        if (v == 0) return \"0\";\n        uint256 t = v;\n        uint256 d;\n        while (t != 0) {\n            d++;\n            t /= 10;\n        }\n        bytes memory b = new bytes(d);\n        while (v != 0) {\n            d -= 1;\n            b[d] = bytes1(uint8(48 + uint256(v % 10)));\n            v /= 10;\n        }\n        return string(b);\n    }\n\n    function _a2s(address a) internal pure returns (string memory) {\n        bytes20 v = bytes20(a);\n        bytes16 hexChars = \"0123456789abcdef\";\n        bytes memory s = new bytes(42);\n        s[0] = \"0\";\n        s[1] = \"x\";\n        for (uint256 i = 0; i < 20; i++) {\n            s[2 + i * 2] = hexChars[uint8(v[i] >> 4)];\n            s[3 + i * 2] = hexChars[uint8(v[i] & 0x0f)];\n        }\n        return string(s);\n    }\n}\n"},"src/HyperionDeltaDesk.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.28;\n\nimport {HyperionSvgEngine} from \"./HyperionSvgEngine.sol\";\n\ninterface IPassportOracle {\n    function balanceOf(address account) external view returns (uint256);\n}\n\ninterface IERC721TokenReceiver {\n    function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data)\n        external\n        returns (bytes4);\n}\n\n/**\n * @title HyperionDeltaDesk (HDELTA)\n * @author Hyperion Quant Systems\n * @notice Autonomous 4-Tick MEV Burst Clearing Desk & O(1) Real-Time BNB Yield Engine on BNB Chain.\n * @custom:website https://hyperiondelta.surge.sh\n * @custom:agent-guide https://hyperiondelta.surge.sh/skill.md\n *\n * Game-Theoretic Design & Verifiable Trust Guarantees:\n *   1. 4-Tick Deterministic Burst Pot: Every paid share (0.0010 BNB standard, 0.0009 BNB via mintWithRef)\n *      allocates 0.00031 BNB (31%) directly into `deltaPoolBalance` BEFORE evaluating the cycle trigger.\n *      Every 4th paid share (`paidTicks % 4 == 0`) automatically clears 80% of `deltaPoolBalance`\n *      (steady-state ~0.00124 BNB > 0.0010 BNB cost) in native BNB in the exact same transaction.\n *   2. Slot #1 Breaker Cashback: The 1st share of every post-genesis cycle (`paidTicks > 4 && paidTicks % 4 == 1`)\n *      receives an instant 0.00010 BNB native cashback in the same transaction plus 3x Yield Weight (360,000 units).\n *   3. 16x Free-to-Paid Yield Unlock: Free passes (1 per verified .ai holder) allocate 10,000 locked bonus units.\n *      Purchasing 1 paid share unlocks and quadruples the bonus (+40,000 units) on top of 120,000 paid units (160,000 total).\n *   4. Zero Admin Pool Backdoors: Neither `owner` nor `PAYEE` can ever withdraw from `deltaPoolBalance` or the holder yield pool.\n */\ncontract HyperionDeltaDesk {\n    // ─── Errors ────────────────────────────────────────────────────────────────\n    error ZeroAddress();\n    error InvalidQuantity();\n    error MaxSupplyExceeded();\n    error FreeAllocationExhausted();\n    error WalletLimitExceeded();\n    error AlreadyClaimedFreePass();\n    error PassportRequiredForFreePass();\n    error ContractsCannotFreeClaim();\n    error InsufficientPayment();\n    error NonExistentToken();\n    error NotAuthorized();\n    error InvalidRecipient();\n    error ReentrancyBlocked();\n    error NothingToHarvest();\n    error SlippageTickMismatch();\n\n    // ─── Events ────────────────────────────────────────────────────────────────\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    event DeltaPositionOpened(\n        address indexed buyer,\n        uint256 indexed startTokenId,\n        uint256 quantity,\n        uint8 tier,\n        uint256 activeWeightAdded,\n        uint256 paidAmountWei\n    );\n    event DeltaBurstSettled(\n        address indexed winner,\n        uint256 indexed triggerTokenId,\n        uint256 indexed cycleNumber,\n        uint256 payoutWei,\n        uint256 rolloverWei\n    );\n    event BreakerCashbackPaid(address indexed buyer, uint256 indexed tokenId, uint256 cashbackWei);\n    event GenesisResonanceFired(uint256 freeMintedCount, uint256 newPaidTicks);\n    event ReferralRebatePaid(address indexed referrer, address indexed buyer, uint256 rebateWei);\n    event DeltaYieldHarvested(address indexed holder, uint256 amountWei);\n\n    // ─── Constants ─────────────────────────────────────────────────────────────\n    string public constant name = \"Hyperion Delta Desk\";\n    string public constant symbol = \"HDELTA\";\n\n    address public constant PASSPORT_ORACLE = 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F;\n\n    uint256 public constant MAX_SUPPLY = 3888;\n    uint256 public constant FREE_SUPPLY = 320;\n    uint256 public constant MAX_PER_WALLET = 600;\n    uint256 public constant MAX_BATCH = 20;\n\n    uint256 public constant PRICE = 0.0010 ether;\n    uint256 public constant DISCOUNT_PRICE = 0.0009 ether;\n\n    uint256 public constant CYCLE_TICKS = 4;\n    uint256 public constant DELTA_POOL_CUT = 0.00031 ether; // 31% per paid share -> 4 shares = 0.00124 BNB\n    uint256 public constant HOLDER_YIELD_CUT = 0.00007 ether; // 7% per paid share -> O(1) dividend pool\n    uint256 public constant REF_REBATE_CUT = 0.00004 ether; // 4% to referrer\n    uint256 public constant BREAKER_CASHBACK = 0.00010 ether; // 10% instant cashback on Tick #1 after burst\n\n    uint256 public constant LOCKED_PASS_WEIGHT = 10_000;\n    uint256 public constant UNLOCKED_PASS_BONUS = 40_000;\n    uint256 public constant PAID_SHARE_WEIGHT = 120_000;\n    uint256 public constant BREAKER_SHARE_WEIGHT = 360_000; // 3x weight for Tick #1 Breaker\n    uint256 public constant SWEEP_BONUS_WEIGHT = 80_000;\n\n    uint96 public constant ROYALTY_BPS = 500; // 5%\n    uint256 private constant ACC_PRECISION = 1e18;\n\n    // ─── Immutables ────────────────────────────────────────────────────────────\n    address public immutable PAYEE;\n    HyperionSvgEngine public renderEngine;\n\n    // ─── State Variables ───────────────────────────────────────────────────────\n    address public owner;\n    address public metadataAdmin;\n    string private _websiteUrl = \"https://hyperiondelta.surge.sh\";\n    string private _agentGuideUrl = \"https://hyperiondelta.surge.sh/skill.md\";\n    uint256 private _lock = 1;\n\n    uint256 public totalSupply;\n    uint256 public freeMinted;\n    uint256 public paidMinted;\n    uint256 public paidTicks; // Counts paid shares + 1 pre-funded Genesis resonance tick\n    bool public genesisBoostTriggered;\n\n    // Isolated Pool Accounting (Zero admin withdrawal functions)\n    uint256 public deltaPoolBalance;\n    uint256 public totalVolumeWei;\n    uint256 public totalBurstPaidWei;\n    uint256 public totalBreakerPaidWei;\n    uint256 public totalRefPaidWei;\n    uint256 public totalYieldDistributedWei;\n    uint256 public totalYieldClaimedWei;\n    uint256 public totalRoundsCleared;\n\n    address public lastBurstWinner;\n    uint256 public lastBurstAmount;\n\n    // O(1) Yield Accounting\n    uint256 public totalActiveWeight;\n    uint256 public accYieldPerWeight;\n    uint256 public undistributedYieldReserve;\n\n    mapping(address => uint256) public activeYieldWeight;\n    mapping(address => uint256) public lockedPassBonusWeight;\n    mapping(address => uint256) public userYieldDebt;\n    mapping(address => uint256) public claimableYield;\n    mapping(address => uint256) public totalYieldClaimedBy;\n    mapping(address => uint256) public totalBurstWonBy;\n\n    // Fallback credit if a contract rejects native BNB push\n    mapping(address => uint256) public pendingFallbackCredit;\n    uint256 public unclaimedPayee;\n\n    // ERC-721 State\n    mapping(uint256 => address) private _owners;\n    mapping(address => uint256) private _balances;\n    mapping(uint256 => address) private _tokenApprovals;\n    mapping(address => mapping(address => bool)) private _operatorApprovals;\n\n    mapping(address => uint256) public walletMinted;\n    mapping(address => bool) public hasClaimedFreePass;\n    mapping(uint256 => uint8) public tokenTier;\n    mapping(uint256 => uint256) public tokenWeight;\n    mapping(uint256 => uint256) public tokenBurstWon;\n\n    modifier nonReentrant() {\n        if (_lock != 1) revert ReentrancyBlocked();\n        _lock = 2;\n        _;\n        _lock = 1;\n    }\n\n    constructor(address _payee, address _renderer) payable {\n        if (_payee == address(0) || _renderer == address(0)) revert ZeroAddress();\n        PAYEE = _payee;\n        renderEngine = HyperionSvgEngine(_renderer);\n        owner = msg.sender;\n        metadataAdmin = msg.sender;\n        emit OwnershipTransferred(address(0), msg.sender);\n\n        if (msg.value > 0) {\n            deltaPoolBalance = msg.value;\n        }\n    }\n\n    function WEBSITE() external view returns (string memory) {\n        return _websiteUrl;\n    }\n\n    function AGENT_GUIDE() external view returns (string memory) {\n        return _agentGuideUrl;\n    }\n\n    function updateProjectUrls(string calldata newWebsite, string calldata newAgentGuide, address newRenderer) external {\n        if (msg.sender != metadataAdmin) revert NotAuthorized();\n        _websiteUrl = newWebsite;\n        _agentGuideUrl = newAgentGuide;\n        if (newRenderer != address(0)) {\n            renderEngine = HyperionSvgEngine(newRenderer);\n        }\n    }\n\n    function setMetadataAdmin(address newAdmin) external {\n        if (msg.sender != metadataAdmin) revert NotAuthorized();\n        if (newAdmin == address(0)) revert ZeroAddress();\n        metadataAdmin = newAdmin;\n    }\n\n    function renounceOwnership() external {\n        if (msg.sender != owner) revert NotAuthorized();\n        emit OwnershipTransferred(owner, address(0));\n        owner = address(0);\n    }\n\n    function totalMinted() external view returns (uint256) {\n        return totalSupply;\n    }\n\n    function mintOpen() external view returns (bool) {\n        return totalSupply < MAX_SUPPLY;\n    }\n\n    // ─── Verification & View Helpers ───────────────────────────────────────────\n\n    function isVerifiedPassport(address account) public view returns (bool) {\n        if (account == address(0)) return false;\n        (bool ok, bytes memory data) =\n            PASSPORT_ORACLE.staticcall(abi.encodeWithSelector(IPassportOracle.balanceOf.selector, account));\n        if (ok && data.length >= 32) {\n            return abi.decode(data, (uint256)) > 0;\n        }\n        return false;\n    }\n\n    function mintPrice() external pure returns (uint256) {\n        return PRICE;\n    }\n\n    function price() external pure returns (uint256) {\n        return PRICE;\n    }\n\n    function cost() external pure returns (uint256) {\n        return PRICE;\n    }\n\n    function getMintPrice(address, uint256 quantity) external pure returns (uint256) {\n        return PRICE * quantity;\n    }\n\n    function quote(address referrer, uint256 quantity) public view returns (uint256) {\n        if (quantity == 0) return 0;\n        bool validRef = (referrer != address(0) && referrer != msg.sender);\n        return (validRef ? DISCOUNT_PRICE : PRICE) * quantity;\n    }\n\n    function remainingFreeSupply() external view returns (uint256) {\n        return FREE_SUPPLY > freeMinted ? FREE_SUPPLY - freeMinted : 0;\n    }\n\n    function ticksToClear() public view returns (uint256) {\n        return CYCLE_TICKS - (paidTicks % CYCLE_TICKS);\n    }\n\n    function projectedNextClearPayout() public view returns (uint256) {\n        uint256 rem = ticksToClear();\n        uint256 projectedPool = deltaPoolBalance + (rem * DELTA_POOL_CUT);\n        return (projectedPool * 80) / 100;\n    }\n\n    function pendingYieldOf(address account) public view returns (uint256) {\n        uint256 w = activeYieldWeight[account];\n        uint256 accrued = 0;\n        if (w > 0) {\n            uint256 gross = (w * accYieldPerWeight) / ACC_PRECISION;\n            if (gross > userYieldDebt[account]) {\n                accrued = gross - userYieldDebt[account];\n            }\n        }\n        return claimableYield[account] + accrued + pendingFallbackCredit[account];\n    }\n\n    function claimableDividends(address account) external view returns (uint256) {\n        return pendingYieldOf(account);\n    }\n\n    function projectWebsite() external view returns (string memory) {\n        return _websiteUrl;\n    }\n\n    // ─── Free-Capable Entrypoints (Seamless Paid Auto-Route when msg.value > 0) ──\n\n    receive() external payable nonReentrant {\n        if (msg.value == 0) {\n            _claimFreePass(msg.sender);\n        } else {\n            uint256 qty = msg.value / PRICE;\n            if (qty == 0) qty = 1;\n            if (qty > MAX_BATCH) qty = MAX_BATCH;\n            _openPaidPositions(msg.sender, qty, address(0));\n        }\n    }\n\n    function freeMint() external payable nonReentrant {\n        if (msg.value == 0) {\n            _claimFreePass(msg.sender);\n        } else {\n            uint256 qty = msg.value / PRICE;\n            if (qty == 0) qty = 1;\n            if (qty > MAX_BATCH) qty = MAX_BATCH;\n            _openPaidPositions(msg.sender, qty, address(0));\n        }\n    }\n\n    function freeMint(uint256 quantity) external payable nonReentrant {\n        if (msg.value == 0) {\n            if (quantity != 1) revert InvalidQuantity();\n            _claimFreePass(msg.sender);\n        } else {\n            _openPaidPositions(msg.sender, quantity, address(0));\n        }\n    }\n\n    function claim() external payable nonReentrant {\n        if (msg.value == 0) {\n            _claimFreePass(msg.sender);\n        } else {\n            uint256 qty = msg.value / PRICE;\n            if (qty == 0) qty = 1;\n            if (qty > MAX_BATCH) qty = MAX_BATCH;\n            _openPaidPositions(msg.sender, qty, address(0));\n        }\n    }\n\n    function freeClaim() external payable nonReentrant {\n        if (msg.value == 0) {\n            _claimFreePass(msg.sender);\n        } else {\n            uint256 qty = msg.value / PRICE;\n            if (qty == 0) qty = 1;\n            if (qty > MAX_BATCH) qty = MAX_BATCH;\n            _openPaidPositions(msg.sender, qty, address(0));\n        }\n    }\n\n    function claimAirdrop() external payable nonReentrant {\n        if (msg.value == 0) {\n            _claimFreePass(msg.sender);\n        } else {\n            uint256 qty = msg.value / PRICE;\n            if (qty == 0) qty = 1;\n            if (qty > MAX_BATCH) qty = MAX_BATCH;\n            _openPaidPositions(msg.sender, qty, address(0));\n        }\n    }\n\n    function mint() external payable nonReentrant {\n        if (msg.value == 0) {\n            _claimFreePass(msg.sender);\n        } else {\n            uint256 qty = msg.value / PRICE;\n            if (qty == 0) qty = 1;\n            if (qty > MAX_BATCH) qty = MAX_BATCH;\n            _openPaidPositions(msg.sender, qty, address(0));\n        }\n    }\n\n    // ─── Pure Paid Entrypoints (Always Paid, Bot & MEV Ready) ──────────────────\n\n    function mint(uint256 quantity) external payable nonReentrant {\n        _openPaidPositions(msg.sender, quantity, address(0));\n    }\n\n    function mintWithRef(uint256 quantity, address referrer) external payable nonReentrant {\n        _openPaidPositions(msg.sender, quantity, referrer);\n    }\n\n    function mintTo(address recipient, uint256 quantity) external payable nonReentrant {\n        _openPaidPositions(recipient, quantity, address(0));\n    }\n\n    function mint(address recipient, uint256 quantity) external payable nonReentrant {\n        _openPaidPositions(recipient, quantity, address(0));\n    }\n\n    function executeSweep(uint256 quantity) external payable nonReentrant {\n        _openPaidPositions(msg.sender, quantity, address(0));\n    }\n\n    /**\n     * @notice Slippage-protected sniper entrypoint for MEV bots targeting a specific tick in the 4-step cycle.\n     * @param expectedModTick Expected `paidTicks % 4` before execution (e.g., 3 to guarantee instant 80% burst clear).\n     */\n    function snipeExactTick(uint256 expectedModTick, uint256 quantity, address referrer)\n        external\n        payable\n        nonReentrant\n    {\n        if (paidTicks % CYCLE_TICKS != expectedModTick) revert SlippageTickMismatch();\n        _openPaidPositions(msg.sender, quantity, referrer);\n    }\n\n    // ─── Core Internal Engines ─────────────────────────────────────────────────\n\n    function _claimFreePass(address recipient) internal {\n        if (tx.origin != msg.sender) revert ContractsCannotFreeClaim();\n        if (!isVerifiedPassport(recipient)) revert PassportRequiredForFreePass();\n        if (hasClaimedFreePass[recipient]) revert AlreadyClaimedFreePass();\n        if (freeMinted >= FREE_SUPPLY) revert FreeAllocationExhausted();\n        if (totalSupply + 1 > MAX_SUPPLY) revert MaxSupplyExceeded();\n        if (walletMinted[recipient] + 1 > MAX_PER_WALLET) revert WalletLimitExceeded();\n\n        hasClaimedFreePass[recipient] = true;\n        freeMinted += 1;\n        walletMinted[recipient] += 1;\n\n        uint256 tokenId = totalSupply + 1;\n        totalSupply = tokenId;\n\n        tokenTier[tokenId] = 1;\n        tokenWeight[tokenId] = LOCKED_PASS_WEIGHT;\n\n        // If holder already has active paid weight, activate bonus immediately (40,000 units)\n        if (activeYieldWeight[recipient] > 0) {\n            _addActiveWeight(recipient, UNLOCKED_PASS_BONUS);\n            tokenWeight[tokenId] = UNLOCKED_PASS_BONUS;\n        } else {\n            lockedPassBonusWeight[recipient] += LOCKED_PASS_WEIGHT;\n        }\n\n        _mintDirect(recipient, tokenId);\n\n        // Pre-funded Genesis Resonance: on the 10th free mint, if constructor seeded >= 2 * DELTA_POOL_CUT,\n        // advance paidTicks by +1 so Round #1 sits at 3/4 (1 step from 0.00124 BNB burst!).\n        if (!genesisBoostTriggered && freeMinted >= 10 && deltaPoolBalance >= (paidTicks + 2) * DELTA_POOL_CUT) {\n            genesisBoostTriggered = true;\n            paidTicks += 1;\n            emit GenesisResonanceFired(freeMinted, paidTicks);\n        }\n\n        emit DeltaPositionOpened(recipient, tokenId, 1, 1, 0, 0);\n    }\n\n    function _openPaidPositions(address recipient, uint256 quantity, address referrer) internal {\n        if (recipient == address(0)) revert InvalidRecipient();\n        if (quantity == 0 || quantity > MAX_BATCH) revert InvalidQuantity();\n        if (totalSupply + quantity > MAX_SUPPLY) revert MaxSupplyExceeded();\n        if (walletMinted[recipient] + quantity > MAX_PER_WALLET) revert WalletLimitExceeded();\n\n        bool validRef = (referrer != address(0) && referrer != msg.sender && referrer != recipient);\n        uint256 requiredWei = (validRef ? DISCOUNT_PRICE : PRICE) * quantity;\n        if (msg.value < requiredWei) revert InsufficientPayment();\n\n        totalVolumeWei += requiredWei;\n        walletMinted[recipient] += quantity;\n        paidMinted += quantity;\n\n        uint256 startTokenId = totalSupply + 1;\n        uint256 totalNewWeight = isVerifiedPassport(recipient) ? (5_000 * quantity) : 0;\n        if (lockedPassBonusWeight[recipient] > 0) {\n            totalNewWeight += lockedPassBonusWeight[recipient] * 4;\n            lockedPassBonusWeight[recipient] = 0;\n        }\n\n        (uint256 burstWon, uint256 breakerWon, uint256 loopWeight, uint8 highestTier) =\n            _executePositionLoop(recipient, startTokenId, quantity);\n        totalNewWeight += loopWeight + (quantity >= CYCLE_TICKS ? SWEEP_BONUS_WEIGHT : 0);\n\n        _addActiveWeight(recipient, totalNewWeight);\n        _distributeYield(HOLDER_YIELD_CUT * quantity);\n\n        _payProtocolSplits(\n            recipient,\n            referrer,\n            requiredWei - ((DELTA_POOL_CUT + HOLDER_YIELD_CUT) * quantity) - (validRef ? REF_REBATE_CUT * quantity : 0)\n                - breakerWon,\n            validRef ? (REF_REBATE_CUT * quantity) : 0\n        );\n        _payBuyerReturn(recipient, msg.value - requiredWei, burstWon, breakerWon);\n\n        emit DeltaPositionOpened(recipient, startTokenId, quantity, highestTier, totalNewWeight, requiredWei);\n    }\n\n    function _executePositionLoop(address recipient, uint256 startTokenId, uint256 quantity)\n        internal\n        returns (uint256 totalBurstWonInTx, uint256 totalBreakerInTx, uint256 loopWeight, uint8 highestTier)\n    {\n        highestTier = quantity >= CYCLE_TICKS ? 5 : 2;\n        for (uint256 i = 0; i < quantity; i++) {\n            uint256 tokenId = startTokenId + i;\n            totalSupply = tokenId;\n\n            deltaPoolBalance += DELTA_POOL_CUT;\n            paidTicks += 1;\n\n            uint256 modTick = paidTicks % CYCLE_TICKS;\n            uint256 uWeight = PAID_SHARE_WEIGHT;\n            uint8 tTier = quantity >= CYCLE_TICKS ? 5 : 2;\n\n            if (paidTicks > CYCLE_TICKS && modTick == 1) {\n                totalBreakerInTx += BREAKER_CASHBACK;\n                totalBreakerPaidWei += BREAKER_CASHBACK;\n                uWeight = BREAKER_SHARE_WEIGHT;\n                if (tTier < 3) tTier = 3;\n                if (highestTier < 3) highestTier = 3;\n                emit BreakerCashbackPaid(recipient, tokenId, BREAKER_CASHBACK);\n            }\n\n            if (modTick == 0) {\n                uint256 burstPayout = (deltaPoolBalance * 80) / 100;\n                deltaPoolBalance -= burstPayout;\n                totalBurstWonInTx += burstPayout;\n                totalBurstPaidWei += burstPayout;\n                totalRoundsCleared += 1;\n                lastBurstWinner = recipient;\n                lastBurstAmount = burstPayout;\n                tokenBurstWon[tokenId] = burstPayout;\n                tTier = quantity >= CYCLE_TICKS ? 5 : 4;\n                if (highestTier < 4) highestTier = tTier;\n                emit DeltaBurstSettled(recipient, tokenId, totalRoundsCleared, burstPayout, deltaPoolBalance);\n            }\n\n            tokenTier[tokenId] = tTier;\n            tokenWeight[tokenId] = uWeight;\n            loopWeight += uWeight;\n\n            _mintDirect(recipient, tokenId);\n        }\n    }\n\n    function _payProtocolSplits(address recipient, address referrer, uint256 payeeCut, uint256 totalRefWei) internal {\n        if (totalRefWei > 0) {\n            totalRefPaidWei += totalRefWei;\n            if (!_safeSendBnb(referrer, totalRefWei)) {\n                pendingFallbackCredit[referrer] += totalRefWei;\n            }\n            emit ReferralRebatePaid(referrer, recipient, totalRefWei);\n        }\n\n        if (payeeCut > 0) {\n            uint256 toPayee = payeeCut + unclaimedPayee;\n            unclaimedPayee = 0;\n            if (!_safeSendBnb(PAYEE, toPayee)) {\n                unclaimedPayee = toPayee;\n            }\n        }\n    }\n\n    function _payBuyerReturn(\n        address recipient,\n        uint256 excessWei,\n        uint256 totalBurstWonInTx,\n        uint256 totalBreakerInTx\n    ) internal {\n        if (totalBurstWonInTx > 0) {\n            totalBurstWonBy[recipient] += totalBurstWonInTx;\n        }\n\n        uint256 instantReturnToRecipient = totalBurstWonInTx + totalBreakerInTx;\n        if (recipient == msg.sender) {\n            uint256 combinedReturn = instantReturnToRecipient + excessWei;\n            if (combinedReturn > 0) {\n                if (!_safeSendBnb(msg.sender, combinedReturn)) {\n                    pendingFallbackCredit[msg.sender] += combinedReturn;\n                }\n            }\n        } else {\n            if (instantReturnToRecipient > 0) {\n                if (!_safeSendBnb(recipient, instantReturnToRecipient)) {\n                    pendingFallbackCredit[recipient] += instantReturnToRecipient;\n                }\n            }\n            if (excessWei > 0) {\n                if (!_safeSendBnb(msg.sender, excessWei)) {\n                    pendingFallbackCredit[msg.sender] += excessWei;\n                }\n            }\n        }\n    }\n\n    // ─── O(1) Dividend Yield Distribution & Harvesting ─────────────────────────\n\n    function _settleHolderYield(address account) internal {\n        uint256 w = activeYieldWeight[account];\n        if (w > 0) {\n            uint256 gross = (w * accYieldPerWeight) / ACC_PRECISION;\n            if (gross > userYieldDebt[account]) {\n                claimableYield[account] += (gross - userYieldDebt[account]);\n            }\n        }\n    }\n\n    function _addActiveWeight(address account, uint256 addedWeight) internal {\n        if (addedWeight == 0) return;\n        _settleHolderYield(account);\n        activeYieldWeight[account] += addedWeight;\n        totalActiveWeight += addedWeight;\n        userYieldDebt[account] = (activeYieldWeight[account] * accYieldPerWeight) / ACC_PRECISION;\n    }\n\n    function _distributeYield(uint256 amountWei) internal {\n        if (amountWei == 0) return;\n        totalYieldDistributedWei += amountWei;\n        uint256 distributable = amountWei + undistributedYieldReserve;\n        if (totalActiveWeight > 0) {\n            undistributedYieldReserve = 0;\n            accYieldPerWeight += (distributable * ACC_PRECISION) / totalActiveWeight;\n        } else {\n            undistributedYieldReserve = distributable;\n        }\n    }\n\n    function harvestDeltaYield() public nonReentrant {\n        _harvestFor(msg.sender);\n    }\n\n    function claimDividends() external nonReentrant {\n        _harvestFor(msg.sender);\n    }\n\n    function withdrawYield() external nonReentrant {\n        _harvestFor(msg.sender);\n    }\n\n    function _harvestFor(address account) internal {\n        _settleHolderYield(account);\n        userYieldDebt[account] = (activeYieldWeight[account] * accYieldPerWeight) / ACC_PRECISION;\n\n        uint256 payout = claimableYield[account] + pendingFallbackCredit[account];\n        if (payout == 0) revert NothingToHarvest();\n\n        claimableYield[account] = 0;\n        pendingFallbackCredit[account] = 0;\n        totalYieldClaimedWei += payout;\n        totalYieldClaimedBy[account] += payout;\n\n        if (!_safeSendBnb(account, payout)) {\n            pendingFallbackCredit[account] = payout;\n            totalYieldClaimedWei -= payout;\n            totalYieldClaimedBy[account] -= payout;\n        } else {\n            emit DeltaYieldHarvested(account, payout);\n        }\n    }\n\n    function syncPayeeReserve() external nonReentrant {\n        uint256 amt = unclaimedPayee;\n        if (amt == 0) return;\n        unclaimedPayee = 0;\n        if (!_safeSendBnb(PAYEE, amt)) {\n            unclaimedPayee = amt;\n        }\n    }\n\n    function _safeSendBnb(address to, uint256 value) internal returns (bool ok) {\n        if (value == 0 || to == address(0)) return true;\n        assembly {\n            ok := call(50000, to, value, 0, 0, 0, 0)\n        }\n    }\n\n    // ─── Metadata & Royalty (ERC-721 + ERC-2981 + ERC-4906) ────────────────────\n\n    function tokenURI(uint256 tokenId) external view returns (string memory) {\n        address tokenOwner = _owners[tokenId];\n        if (tokenOwner == address(0)) revert NonExistentToken();\n\n        HyperionSvgEngine.PositionView memory v = HyperionSvgEngine.PositionView({\n            tokenId: tokenId,\n            tier: tokenTier[tokenId],\n            unitWeight: tokenWeight[tokenId],\n            burstWonWei: tokenBurstWon[tokenId],\n            paidTicks: paidTicks,\n            deltaPoolWei: deltaPoolBalance,\n            pendingHolderYieldWei: pendingYieldOf(tokenOwner)\n        });\n        return renderEngine.renderTokenURI(v);\n    }\n\n    function contractURI() external view returns (string memory) {\n        return renderEngine.renderContractURI(deltaPoolBalance, paidTicks, totalVolumeWei, PAYEE);\n    }\n\n    function royaltyInfo(uint256, uint256 salePrice) external view returns (address, uint256) {\n        return (PAYEE, (salePrice * ROYALTY_BPS) / 10000);\n    }\n\n    // ─── Standard ERC-721 Implementation (Direct _mint for MEV Compatibility) ──\n\n    function supportsInterface(bytes4 interfaceId) external pure returns (bool) {\n        return interfaceId == 0x01ffc9a7 // ERC165\n            || interfaceId == 0x80ac58cd // ERC721\n            || interfaceId == 0x5b5e139f // ERC721Metadata\n            || interfaceId == 0x2a55205a // ERC2981\n            || interfaceId == 0x49064906; // ERC4906\n    }\n\n    function balanceOf(address account) external view returns (uint256) {\n        if (account == address(0)) revert ZeroAddress();\n        return _balances[account];\n    }\n\n    function ownerOf(uint256 tokenId) public view returns (address) {\n        address tokenOwner = _owners[tokenId];\n        if (tokenOwner == address(0)) revert NonExistentToken();\n        return tokenOwner;\n    }\n\n    function approve(address to, uint256 tokenId) external {\n        address tokenOwner = ownerOf(tokenId);\n        if (msg.sender != tokenOwner && !_operatorApprovals[tokenOwner][msg.sender]) revert NotAuthorized();\n        _tokenApprovals[tokenId] = to;\n        emit Approval(tokenOwner, to, tokenId);\n    }\n\n    function getApproved(uint256 tokenId) external view returns (address) {\n        if (_owners[tokenId] == address(0)) revert NonExistentToken();\n        return _tokenApprovals[tokenId];\n    }\n\n    function setApprovalForAll(address operator, bool approved) external {\n        if (operator == msg.sender) revert InvalidRecipient();\n        _operatorApprovals[msg.sender][operator] = approved;\n        emit ApprovalForAll(msg.sender, operator, approved);\n    }\n\n    function isApprovedForAll(address account, address operator) external view returns (bool) {\n        return _operatorApprovals[account][operator];\n    }\n\n    function transferFrom(address from, address to, uint256 tokenId) public {\n        if (to == address(0)) revert ZeroAddress();\n        address tokenOwner = ownerOf(tokenId);\n        if (tokenOwner != from) revert NotAuthorized();\n        if (\n            msg.sender != tokenOwner && _tokenApprovals[tokenId] != msg.sender\n                && !_operatorApprovals[tokenOwner][msg.sender]\n        ) {\n            revert NotAuthorized();\n        }\n        delete _tokenApprovals[tokenId];\n        unchecked {\n            _balances[from] -= 1;\n            _balances[to] += 1;\n        }\n        _owners[tokenId] = to;\n        emit Transfer(from, to, tokenId);\n    }\n\n    function safeTransferFrom(address from, address to, uint256 tokenId) external {\n        safeTransferFrom(from, to, tokenId, \"\");\n    }\n\n    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public {\n        transferFrom(from, to, tokenId);\n        if (to.code.length > 0) {\n            try IERC721TokenReceiver(to).onERC721Received(msg.sender, from, tokenId, data) returns (bytes4 retval) {\n                if (retval != IERC721TokenReceiver.onERC721Received.selector) revert InvalidRecipient();\n            } catch {\n                revert InvalidRecipient();\n            }\n        }\n    }\n\n    function _mintDirect(address to, uint256 tokenId) internal {\n        _owners[tokenId] = to;\n        unchecked {\n            _balances[to] += 1;\n        }\n        emit Transfer(address(0), to, tokenId);\n    }\n}\n"}},"abi":[{"type":"constructor","inputs":[{"name":"_payee","type":"address","internalType":"address"},{"name":"_renderer","type":"address","internalType":"address"}],"stateMutability":"payable"},{"name":"AlreadyClaimedFreePass","type":"error","inputs":[]},{"name":"ContractsCannotFreeClaim","type":"error","inputs":[]},{"name":"FreeAllocationExhausted","type":"error","inputs":[]},{"name":"InsufficientPayment","type":"error","inputs":[]},{"name":"InvalidQuantity","type":"error","inputs":[]},{"name":"InvalidRecipient","type":"error","inputs":[]},{"name":"MaxSupplyExceeded","type":"error","inputs":[]},{"name":"NonExistentToken","type":"error","inputs":[]},{"name":"NotAuthorized","type":"error","inputs":[]},{"name":"NothingToHarvest","type":"error","inputs":[]},{"name":"PassportRequiredForFreePass","type":"error","inputs":[]},{"name":"ReentrancyBlocked","type":"error","inputs":[]},{"name":"SlippageTickMismatch","type":"error","inputs":[]},{"name":"WalletLimitExceeded","type":"error","inputs":[]},{"name":"ZeroAddress","type":"error","inputs":[]},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"name":"ApprovalForAll","type":"event","inputs":[{"name":"owner","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":"BreakerCashbackPaid","type":"event","inputs":[{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"cashbackWei","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"DeltaBurstSettled","type":"event","inputs":[{"name":"winner","type":"address","indexed":true,"internalType":"address"},{"name":"triggerTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"cycleNumber","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"payoutWei","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"rolloverWei","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"DeltaPositionOpened","type":"event","inputs":[{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"startTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quantity","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tier","type":"uint8","indexed":false,"internalType":"uint8"},{"name":"activeWeightAdded","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"paidAmountWei","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"DeltaYieldHarvested","type":"event","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"amountWei","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"GenesisResonanceFired","type":"event","inputs":[{"name":"freeMintedCount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newPaidTicks","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"OwnershipTransferred","type":"event","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"name":"ReferralRebatePaid","type":"event","inputs":[{"name":"referrer","type":"address","indexed":true,"internalType":"address"},{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"rebateWei","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"name":"AGENT_GUIDE","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"BREAKER_CASHBACK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"BREAKER_SHARE_WEIGHT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"CYCLE_TICKS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"DELTA_POOL_CUT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"DISCOUNT_PRICE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"FREE_SUPPLY","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"HOLDER_YIELD_CUT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"LOCKED_PASS_WEIGHT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MAX_BATCH","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MAX_PER_WALLET","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MAX_SUPPLY","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"PAID_SHARE_WEIGHT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"PASSPORT_ORACLE","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"PAYEE","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"PRICE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"REF_REBATE_CUT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"ROYALTY_BPS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint96","internalType":"uint96"}],"stateMutability":"view"},{"name":"SWEEP_BONUS_WEIGHT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"UNLOCKED_PASS_BONUS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"WEBSITE","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"accYieldPerWeight","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"activeYieldWeight","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"balanceOf","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"claim","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"claimAirdrop","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"claimDividends","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"claimableDividends","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"claimableYield","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"contractURI","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"cost","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"name":"deltaPoolBalance","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"executeSweep","type":"function","inputs":[{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"freeClaim","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"freeMint","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"freeMint","type":"function","inputs":[{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"freeMinted","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"genesisBoostTriggered","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"getApproved","type":"function","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"getMintPrice","type":"function","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"name":"harvestDeltaYield","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"hasClaimedFreePass","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"isVerifiedPassport","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"lastBurstAmount","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"lastBurstWinner","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"lockedPassBonusWeight","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"metadataAdmin","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"mint","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"mint","type":"function","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"mint","type":"function","inputs":[{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"mintOpen","type":"function","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"mintPrice","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"name":"mintTo","type":"function","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"mintWithRef","type":"function","inputs":[{"name":"quantity","type":"uint256","internalType":"uint256"},{"name":"referrer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"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":"ownerOf","type":"function","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"paidMinted","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"paidTicks","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"pendingFallbackCredit","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"pendingYieldOf","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"price","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"name":"projectWebsite","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"projectedNextClearPayout","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"quote","type":"function","inputs":[{"name":"referrer","type":"address","internalType":"address"},{"name":"quantity","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"remainingFreeSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"renderEngine","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract HyperionSvgEngine"}],"stateMutability":"view"},{"name":"renounceOwnership","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"royaltyInfo","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"salePrice","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"safeTransferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"safeTransferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","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":"setMetadataAdmin","type":"function","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"snipeExactTick","type":"function","inputs":[{"name":"expectedModTick","type":"uint256","internalType":"uint256"},{"name":"quantity","type":"uint256","internalType":"uint256"},{"name":"referrer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"name":"supportsInterface","type":"function","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"syncPayeeReserve","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"ticksToClear","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"tokenBurstWon","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"tokenTier","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"name":"tokenURI","type":"function","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"tokenWeight","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalActiveWeight","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalBreakerPaidWei","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalBurstPaidWei","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalBurstWonBy","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalMinted","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalRefPaidWei","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalRoundsCleared","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalSupply","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalVolumeWei","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalYieldClaimedBy","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalYieldClaimedWei","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalYieldDistributedWei","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"transferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"unclaimedPayee","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"undistributedYieldReserve","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"updateProjectUrls","type":"function","inputs":[{"name":"newWebsite","type":"string","internalType":"string"},{"name":"newAgentGuide","type":"string","internalType":"string"},{"name":"newRenderer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"userYieldDebt","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"walletMinted","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"withdrawYield","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"}],"matchId":"57703981","creationMatch":"exact_match","runtimeMatch":"exact_match","verifiedAt":"2026-10-30T17:17:21Z","match":"exact_match","chainId":"56","address":"0x464815f7c6D6571d6A7066176B371c725186099b"}