{"sources":{"src/KinetixShareReserve.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.28;\n\ninterface IAgentIdRegistryD3 {\n    function balanceOf(address owner) external view returns (uint256);\n}\n\ninterface IERC165D3 {\n    function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\ninterface IERC721ReceiverD3 {\n    function onERC721Received(\n        address operator,\n        address from,\n        uint256 tokenId,\n        bytes calldata data\n    ) external returns (bytes4);\n}\n\n/// @title KinetixShareReserve (KTXR)\n/// @notice Dual-Track .ai Share Minter & Block Burst Reserve Vault on BNB Chain.\n/// @dev Quantitative EV Rules for Share Minter Bots, Snipers & Whales:\n///      - Free Genesis Quota (380 Share Notes for .ai holders): call freeMint(), claim(), claimAirdrop(), or mint().\n///      - Paid Share Minter (0.0010 BNB/share, or 0.0009 BNB/share with referrer):\n///        * mint(uint256 shares) [0xa0712d68]\n///        * mintShares(uint256 shares) [0xb1aa90a1]\n///        * mint(address referrer, uint256 shares) [0xe38fd349]\n///        * mintWithRef(uint256 shares, address referrer) [0x788f15e3]\n///      - Every Paid Share credits 100,000 KTXR Share Units and injects 0.00025 BNB into burstVaultPool:\n///        * Every 5th Paid Share (paidMinted % 5 == 0) wins 80% of burstVaultPool in the same tx!\n///        * Sweeping 10+ Paid Shares in a single tx wins 2x 5th-Share Bursts PLUS 50% of remaining vault!\ncontract KinetixShareReserve is IERC165D3 {\n    string public constant name = \"Kinetix Share Reserve\";\n    string public constant symbol = \"KTXR\";\n\n    address public constant AGENT_ID_REGISTRY = 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F;\n\n    uint256 public constant PRICE = 0.001 ether;\n    uint256 public constant SHARE_PRICE = 0.001 ether;\n    uint256 public constant REF_DISCOUNT_PRICE = 0.0009 ether;\n    uint256 public constant MAX_SUPPLY = 4444;\n    uint256 public constant FREE_SUPPLY = 380;\n    uint256 public constant MAX_FREE_SUPPLY = 380;\n    uint256 public constant MAX_PAID_SUPPLY = 4064;\n    uint256 public constant MAX_FREE_PER_WALLET = 1;\n    uint256 public constant MAX_PER_WALLET = 40;\n    uint256 public constant MAX_PER_TX = 20;\n\n    uint256 public constant UNITS_PER_PAID_SHARE = 100_000 * 1e18;\n    uint256 public constant UNITS_PER_FREE_SHARE = 10_000 * 1e18;\n\n    uint256 public constant BURST_POOL_CUT = 0.00025 ether; // 25% of base price\n    uint256 public constant REFERRAL_CASHBACK = 0.00015 ether; // 15% of base price\n    uint256 public constant BURST_MILESTONE = 5;\n    uint256 public constant BURST_WIN_BPS = 8000; // 80%\n    uint256 public constant WHALE_SWEEP_QTY = 10;\n    uint256 public constant WHALE_BONUS_BPS = 5000; // +50% of remaining pool\n    uint256 public constant TAIL_TIMEOUT = 12 hours;\n\n    address public immutable RESERVE_RECEIVER;\n    address public immutable PAYEE;\n    address public immutable OWNER;\n\n    uint256 public totalSupply;\n    uint256 public freeMinted;\n    uint256 public paidMinted;\n    uint256 public totalShareUnits;\n\n    uint256 public burstVaultPool;\n    uint256 public totalBurstPaid;\n    uint256 public totalReferralPaid;\n    address public lastShareBuyer;\n    uint256 public lastShareTimestamp;\n\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 freeClaimed;\n    mapping(address => uint256) public paidSharesBy;\n    mapping(address => uint256) public shareUnitsOf;\n    mapping(address => uint256) public referralEarned;\n\n    mapping(uint256 => bool) public isPaidShareNote;\n    mapping(uint256 => bool) public isAgentVerifiedNote;\n    mapping(uint256 => uint256) public noteShareUnits;\n\n    mapping(address => uint256) public claimablePayout;\n    uint256 public totalEscrowedPayouts;\n\n    uint256 private _locked = 1;\n\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 ShareNoteIssued(address indexed buyer, uint256 indexed tokenId, bool isPaid, uint256 shareUnits);\n    event ReferralRewardPaid(address indexed referrer, address indexed buyer, uint256 shares, uint256 reward);\n    event BurstVaultTriggered(address indexed winner, uint256 indexed paidShareIndex, uint256 burstReward, uint256 remainingPool);\n    event WhaleSweepBonusPaid(address indexed whale, uint256 sharesSwept, uint256 bonusReward);\n    event TailVaultSwept(address indexed sweeper, uint256 sweeperShare, uint256 reserveShare);\n    event PayoutEscrowed(address indexed beneficiary, uint256 amount);\n    event PayoutWithdrawn(address indexed beneficiary, address indexed recipient, uint256 amount);\n\n    modifier nonReentrant() {\n        require(_locked == 1, \"KTXR: reentrant\");\n        _locked = 2;\n        _;\n        _locked = 1;\n    }\n\n    constructor(address _receiver) {\n        require(_receiver != address(0), \"KTXR: zero receiver\");\n        RESERVE_RECEIVER = _receiver;\n        PAYEE = _receiver;\n        OWNER = _receiver;\n    }\n\n    function owner() external view returns (address) {\n        return OWNER;\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 totalMinted() external view returns (uint256) {\n        return totalSupply;\n    }\n\n    function sold() external view returns (uint256) {\n        return paidMinted;\n    }\n\n    function sharesSold() external view returns (uint256) {\n        return paidMinted;\n    }\n\n    function sharesCap() external pure returns (uint256) {\n        return MAX_PAID_SUPPLY;\n    }\n\n    function mintOpen() external view returns (bool) {\n        return totalSupply < MAX_SUPPLY;\n    }\n\n    function freeRemaining() external view returns (uint256) {\n        return freeMinted >= FREE_SUPPLY ? 0 : FREE_SUPPLY - freeMinted;\n    }\n\n    function sharesUntilNextBurst() external view returns (uint256) {\n        uint256 rem = paidMinted % BURST_MILESTONE;\n        return rem == 0 ? BURST_MILESTONE : BURST_MILESTONE - rem;\n    }\n\n    function hasAgentId(address account) public view returns (bool) {\n        return _checkAgentId(account);\n    }\n\n    function canReceiveFree(address account) public view returns (bool) {\n        return freeMinted < FREE_SUPPLY && freeClaimed[account] == 0 && _checkAgentId(account);\n    }\n\n    function quote(address, uint256 shares) external pure returns (uint256) {\n        return shares * PRICE;\n    }\n\n    // =========================================================================\n    // 1. Free Genesis Share Entrypoints (0-arg + claimAirdrop)\n    // =========================================================================\n\n    function freeMint() external payable nonReentrant {\n        _handleZeroArg(msg.sender);\n    }\n\n    function claim() external payable nonReentrant {\n        _handleZeroArg(msg.sender);\n    }\n\n    function freeClaim() external payable nonReentrant {\n        _handleZeroArg(msg.sender);\n    }\n\n    function claimAirdrop() external payable nonReentrant {\n        _handleZeroArg(msg.sender);\n    }\n\n    function mint() external payable nonReentrant {\n        _handleZeroArg(msg.sender);\n    }\n\n    function freeMint(uint256 shares) external payable nonReentrant {\n        if (msg.value == 0) {\n            require(shares == 1, \"KTXR: 1 genesis max\");\n            _issueFreeGenesisShare(msg.sender);\n        } else {\n            _issuePaidShares(msg.sender, shares, address(0));\n        }\n    }\n\n    function claim(uint256 shares) external payable nonReentrant {\n        if (msg.value == 0) {\n            require(shares == 1, \"KTXR: 1 genesis max\");\n            _issueFreeGenesisShare(msg.sender);\n        } else {\n            _issuePaidShares(msg.sender, shares, address(0));\n        }\n    }\n\n    // =========================================================================\n    // 2. Strictly Paid Share Minter Entrypoints\n    //    - mint(uint256) [0xa0712d68]\n    //    - mintShares(uint256) [0xb1aa90a1]\n    //    - mint(address,uint256) [0xe38fd349]\n    //    - mintWithRef(uint256,address) [0x788f15e3]\n    // =========================================================================\n\n    function mint(uint256 shares) external payable nonReentrant {\n        _issuePaidShares(msg.sender, shares, address(0));\n    }\n\n    function mintShares(uint256 shares) external payable nonReentrant {\n        _issuePaidShares(msg.sender, shares, address(0));\n    }\n\n    function buyGold(uint256 shares) external payable nonReentrant {\n        _issuePaidShares(msg.sender, shares, address(0));\n    }\n\n    /// @notice AGIMint / BnagentMint compatible selector (0xe38fd349)\n    function mint(address referrer, uint256 shares) external payable nonReentrant {\n        _issuePaidShares(msg.sender, shares, referrer);\n    }\n\n    /// @notice Standard referral selector (0x788f15e3)\n    function mintWithRef(uint256 shares, address referrer) external payable nonReentrant {\n        _issuePaidShares(msg.sender, shares, referrer);\n    }\n\n    function mintTo(address to, uint256 shares) external payable nonReentrant {\n        require(to != address(0), \"KTXR: zero recipient\");\n        if (msg.value == 0 && shares == 1) {\n            _issueFreeGenesisShare(to);\n        } else {\n            _issuePaidShares(to, shares, address(0));\n        }\n    }\n\n    function _handleZeroArg(address recipient) internal {\n        if (msg.value >= PRICE) {\n            _issuePaidShares(recipient, 1, address(0));\n        } else {\n            require(msg.value == 0, \"KTXR: invalid value\");\n            _issueFreeGenesisShare(recipient);\n        }\n    }\n\n    function _issueFreeGenesisShare(address recipient) internal {\n        require(totalSupply + 1 <= MAX_SUPPLY, \"KTXR: max supply\");\n        require(freeMinted < FREE_SUPPLY, \"KTXR: genesis quota full\");\n        require(freeClaimed[recipient] == 0, \"KTXR: already claimed\");\n        require(_balances[recipient] + 1 <= MAX_PER_WALLET, \"KTXR: wallet cap\");\n\n        bool agent = _checkAgentId(recipient) || (recipient != msg.sender && _checkAgentId(msg.sender));\n        require(agent, \"KTXR: .ai Agent ID required\");\n\n        freeClaimed[recipient] = 1;\n        freeMinted += 1;\n\n        _mintShareNote(recipient, false, UNITS_PER_FREE_SHARE, true);\n    }\n\n    function _issuePaidShares(\n        address recipient,\n        uint256 shares,\n        address referrer\n    ) internal {\n        require(shares > 0 && shares <= MAX_PER_TX, \"KTXR: invalid shares\");\n        require(totalSupply + shares <= MAX_SUPPLY, \"KTXR: max supply\");\n        require(paidMinted + shares <= MAX_PAID_SUPPLY, \"KTXR: paid cap full\");\n        require(_balances[recipient] + shares <= MAX_PER_WALLET, \"KTXR: wallet cap\");\n\n        bool validRef = (referrer != address(0) && referrer != recipient && referrer != msg.sender);\n        uint256 unitPrice = validRef ? REF_DISCOUNT_PRICE : PRICE;\n        uint256 requiredCost = shares * unitPrice;\n        require(msg.value >= requiredCost, \"KTXR: insufficient payment\");\n\n        bool agent = _checkAgentId(recipient) || (recipient != msg.sender && _checkAgentId(msg.sender));\n\n        paidSharesBy[recipient] += shares;\n        lastShareBuyer = recipient;\n        lastShareTimestamp = block.timestamp;\n\n        uint256 refTotal = validRef ? shares * REFERRAL_CASHBACK : 0;\n        uint256 burstContributionTotal = shares * BURST_POOL_CUT;\n        uint256 reserveTotal = requiredCost - refTotal - burstContributionTotal;\n\n        uint256 burstWon = 0;\n\n        for (uint256 i = 0; i < shares; i++) {\n            paidMinted += 1;\n            _mintShareNote(recipient, true, UNITS_PER_PAID_SHARE, agent);\n\n            burstVaultPool += BURST_POOL_CUT;\n            if (paidMinted % BURST_MILESTONE == 0) {\n                uint256 win = (burstVaultPool * BURST_WIN_BPS) / 10000;\n                burstVaultPool -= win;\n                burstWon += win;\n                totalBurstPaid += win;\n                emit BurstVaultTriggered(recipient, paidMinted, win, burstVaultPool);\n            }\n        }\n\n        // 10+ Share Whale Sweep Bonus: extra 50% of remaining burstVaultPool!\n        if (shares >= WHALE_SWEEP_QTY && burstVaultPool > 0) {\n            uint256 whaleBonus = (burstVaultPool * WHALE_BONUS_BPS) / 10000;\n            if (whaleBonus > 0) {\n                burstVaultPool -= whaleBonus;\n                burstWon += whaleBonus;\n                totalBurstPaid += whaleBonus;\n                emit WhaleSweepBonusPaid(recipient, shares, whaleBonus);\n            }\n        }\n\n        if (refTotal > 0) {\n            referralEarned[referrer] += refTotal;\n            totalReferralPaid += refTotal;\n            _safeDeliverBnb(referrer, refTotal);\n            emit ReferralRewardPaid(referrer, recipient, shares, refTotal);\n        }\n\n        _safeDeliverBnb(RESERVE_RECEIVER, reserveTotal);\n\n        uint256 refund = msg.value - requiredCost;\n        uint256 totalReturn = burstWon + refund;\n        if (totalReturn > 0) {\n            address returnTo = burstWon > 0 ? recipient : msg.sender;\n            _safeDeliverBnb(returnTo, totalReturn);\n        }\n    }\n\n    function _mintShareNote(\n        address to,\n        bool isPaid,\n        uint256 units,\n        bool agentFlag\n    ) internal {\n        uint256 tokenId = totalSupply + 1;\n        totalSupply = tokenId;\n\n        _owners[tokenId] = to;\n        _balances[to] += 1;\n\n        isPaidShareNote[tokenId] = isPaid;\n        isAgentVerifiedNote[tokenId] = agentFlag;\n        noteShareUnits[tokenId] = units;\n\n        shareUnitsOf[to] += units;\n        totalShareUnits += units;\n\n        emit Transfer(address(0), to, tokenId);\n        emit ShareNoteIssued(to, tokenId, isPaid, units);\n    }\n\n    // =========================================================================\n    // Tail Timeout Sweep (Zero Locked Funds)\n    // =========================================================================\n\n    function claimTailBurst() external nonReentrant {\n        require(lastShareTimestamp > 0 && block.timestamp >= lastShareTimestamp + TAIL_TIMEOUT, \"KTXR: tail active\");\n        uint256 pool = burstVaultPool;\n        require(pool > 0, \"KTXR: zero vault\");\n        burstVaultPool = 0;\n\n        address sweeper = lastShareBuyer != address(0) ? lastShareBuyer : RESERVE_RECEIVER;\n        uint256 sweeperHalf = pool / 2;\n        uint256 reserveHalf = pool - sweeperHalf;\n\n        _safeDeliverBnb(sweeper, sweeperHalf);\n        _safeDeliverBnb(RESERVE_RECEIVER, reserveHalf);\n        emit TailVaultSwept(sweeper, sweeperHalf, reserveHalf);\n    }\n\n    // =========================================================================\n    // Bounded-Gas Safe Delivery + Pull Escrow\n    // =========================================================================\n\n    function _safeDeliverBnb(address to, uint256 amount) internal {\n        if (amount == 0) return;\n        bool ok;\n        assembly {\n            ok := call(50000, to, amount, 0, 0, 0, 0)\n        }\n        if (!ok) {\n            claimablePayout[to] += amount;\n            totalEscrowedPayouts += amount;\n            emit PayoutEscrowed(to, amount);\n        }\n    }\n\n    function withdrawPayout() external nonReentrant {\n        uint256 amt = claimablePayout[msg.sender];\n        require(amt > 0, \"KTXR: no payout\");\n        claimablePayout[msg.sender] = 0;\n        totalEscrowedPayouts -= amt;\n        (bool ok, ) = payable(msg.sender).call{value: amt}(\"\");\n        require(ok, \"KTXR: withdraw failed\");\n        emit PayoutWithdrawn(msg.sender, msg.sender, amt);\n    }\n\n    function withdrawPayoutTo(address recipient) external nonReentrant {\n        require(recipient != address(0), \"KTXR: zero recipient\");\n        uint256 amt = claimablePayout[msg.sender];\n        require(amt > 0, \"KTXR: no payout\");\n        claimablePayout[msg.sender] = 0;\n        totalEscrowedPayouts -= amt;\n        (bool ok, ) = payable(recipient).call{value: amt}(\"\");\n        require(ok, \"KTXR: withdraw failed\");\n        emit PayoutWithdrawn(msg.sender, recipient, amt);\n    }\n\n    function flushPayout(address beneficiary) external nonReentrant {\n        uint256 amt = claimablePayout[beneficiary];\n        require(amt > 0, \"KTXR: no payout\");\n        claimablePayout[beneficiary] = 0;\n        totalEscrowedPayouts -= amt;\n        (bool ok, ) = payable(beneficiary).call{value: amt}(\"\");\n        require(ok, \"KTXR: flush failed\");\n        emit PayoutWithdrawn(beneficiary, beneficiary, amt);\n    }\n\n    function _checkAgentId(address account) internal view returns (bool) {\n        if (account == address(0)) return false;\n        (bool ok, bytes memory data) = AGENT_ID_REGISTRY.staticcall(\n            abi.encodeWithSelector(IAgentIdRegistryD3.balanceOf.selector, account)\n        );\n        if (!ok || data.length < 32) return false;\n        return abi.decode(data, (uint256)) > 0;\n    }\n\n    // =========================================================================\n    // ERC-721 Standard + Share Unit Transfer Sync\n    // =========================================================================\n\n    function supportsInterface(bytes4 interfaceId) public pure override returns (bool) {\n        return\n            interfaceId == 0x01ffc9a7 ||\n            interfaceId == 0x80ac58cd ||\n            interfaceId == 0x5b5e139f ||\n            interfaceId == 0x2a55205a;\n    }\n\n    function royaltyInfo(uint256, uint256 salePrice) external view returns (address, uint256) {\n        return (RESERVE_RECEIVER, (salePrice * 500) / 10000);\n    }\n\n    function balanceOf(address holder) public view returns (uint256) {\n        require(holder != address(0), \"KTXR: zero address\");\n        return _balances[holder];\n    }\n\n    function ownerOf(uint256 tokenId) public view returns (address) {\n        address holder = _owners[tokenId];\n        require(holder != address(0), \"KTXR: nonexistent token\");\n        return holder;\n    }\n\n    function approve(address to, uint256 tokenId) external {\n        address holder = ownerOf(tokenId);\n        require(msg.sender == holder || _operatorApprovals[holder][msg.sender], \"KTXR: not authorized\");\n        _tokenApprovals[tokenId] = to;\n        emit Approval(holder, to, tokenId);\n    }\n\n    function getApproved(uint256 tokenId) public view returns (address) {\n        ownerOf(tokenId);\n        return _tokenApprovals[tokenId];\n    }\n\n    function setApprovalForAll(address operator, bool approved) external {\n        require(operator != msg.sender, \"KTXR: approve to caller\");\n        _operatorApprovals[msg.sender][operator] = approved;\n        emit ApprovalForAll(msg.sender, operator, approved);\n    }\n\n    function isApprovedForAll(address holder, address operator) public view returns (bool) {\n        return _operatorApprovals[holder][operator];\n    }\n\n    function transferFrom(address from, address to, uint256 tokenId) public {\n        address holder = ownerOf(tokenId);\n        require(holder == from, \"KTXR: wrong from\");\n        require(to != address(0), \"KTXR: zero recipient\");\n        require(\n            msg.sender == holder ||\n                _tokenApprovals[tokenId] == msg.sender ||\n                _operatorApprovals[holder][msg.sender],\n            \"KTXR: not authorized\"\n        );\n        require(_balances[to] + 1 <= MAX_PER_WALLET, \"KTXR: wallet cap\");\n\n        delete _tokenApprovals[tokenId];\n        _balances[from] -= 1;\n        _balances[to] += 1;\n        _owners[tokenId] = to;\n\n        uint256 units = noteShareUnits[tokenId];\n        if (units > 0 && from != to) {\n            shareUnitsOf[from] -= units;\n            shareUnitsOf[to] += units;\n        }\n\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 IERC721ReceiverD3(to).onERC721Received(msg.sender, from, tokenId, data) returns (bytes4 retval) {\n                require(retval == IERC721ReceiverD3.onERC721Received.selector, \"KTXR: unsafe receiver\");\n            } catch {\n                revert(\"KTXR: unsafe receiver\");\n            }\n        }\n    }\n\n    // =========================================================================\n    // Emerald Quantitative Terminal SVG\n    // =========================================================================\n\n    function contractURI() external view returns (string memory) {\n        string memory json = string.concat(\n            '{\"name\":\"Kinetix Share Reserve\",\"description\":\"Dual-Track .ai Share Minter & Block Burst Reserve Vault on BNB Chain. Free Genesis Share Notes via freeMint()/claim()/claimAirdrop(); Paid Share Notes (100,000 KTXR Units, 0.0010 BNB or 0.0009 BNB with ref) via mint(uint256), mintShares(uint256), or mint(address,uint256). Every 5th Paid Share wins 80% of Burst Vault Pool; 10-Share sweep wins 2x Bursts + 50% Whale Bonus.\",\"seller_fee_basis_points\":500,\"fee_recipient\":\"',\n            _toHexAddr(RESERVE_RECEIVER),\n            '\"}'\n        );\n        return string.concat(\"data:application/json;base64,\", _b64(bytes(json)));\n    }\n\n    function tokenURI(uint256 tokenId) external view returns (string memory) {\n        require(_owners[tokenId] != address(0), \"KTXR: nonexistent token\");\n        bool paid = isPaidShareNote[tokenId];\n        uint256 unitsWhole = noteShareUnits[tokenId] / 1e18;\n\n        string memory series = paid ? \"CAPITAL SHARE // 100K KTXR\" : \"GENESIS SHARE // 10K KTXR\";\n        string memory svg = _buildEmeraldSvg(tokenId, paid, unitsWhole, series);\n        string memory attrs = _buildShareAttrs(paid, unitsWhole, isAgentVerifiedNote[tokenId]);\n\n        string memory json = string.concat(\n            '{\"name\":\"Kinetix Share Note #',\n            _u2s(tokenId),\n            \" [\",\n            paid ? \"100K KTXR\" : \"10K KTXR\",\n            ']\",\"description\":\"Transferable Share Reserve Note in Kinetix Share Reserve. Every 5th Paid Share Note triggers 80% of the Burst Vault Pool; 10-Share sweep triggers 2x Bursts + 50% Whale Bonus.\",\"image\":\"data:image/svg+xml;base64,',\n            _b64(bytes(svg)),\n            '\",\"attributes\":',\n            attrs,\n            \"}\"\n        );\n        return string.concat(\"data:application/json;base64,\", _b64(bytes(json)));\n    }\n\n    function _buildEmeraldSvg(\n        uint256 tokenId,\n        bool paid,\n        uint256 unitsWhole,\n        string memory series\n    ) internal view returns (string memory) {\n        string memory accent = paid ? \"#00ff9d\" : \"#00d2ff\";\n\n        string memory p1 = string.concat(\n            '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 400 400\" width=\"400\" height=\"400\">',\n            '<rect width=\"400\" height=\"400\" fill=\"#03140e\"/>',\n            '<rect x=\"16\" y=\"16\" width=\"368\" height=\"368\" rx=\"6\" fill=\"#062117\" stroke=\"',\n            accent,\n            '\" stroke-width=\"2\"/>',\n            '<text x=\"32\" y=\"48\" fill=\"',\n            accent,\n            '\" font-family=\"monospace\" font-size=\"13\" font-weight=\"bold\">KINETIX SHARE RESERVE // KTXR</text>'\n        );\n\n        string memory p2 = string.concat(\n            '<line x1=\"32\" y1=\"64\" x2=\"368\" y2=\"64\" stroke=\"#0d4732\" stroke-width=\"1\"/>',\n            '<text x=\"32\" y=\"102\" fill=\"#8abfa8\" font-family=\"monospace\" font-size=\"12\">',\n            series,\n            \"</text>\",\n            '<text x=\"32\" y=\"164\" fill=\"#ffffff\" font-family=\"monospace\" font-size=\"30\" font-weight=\"bold\">NOTE #',\n            _u2s(tokenId),\n            \"</text>\",\n            '<text x=\"32\" y=\"212\" fill=\"',\n            accent,\n            '\" font-family=\"monospace\" font-size=\"18\" font-weight=\"bold\">ALLOCATION: ',\n            _u2s(unitsWhole),\n            \" KTXR</text>\"\n        );\n\n        string memory p3 = string.concat(\n            '<rect x=\"32\" y=\"242\" width=\"336\" height=\"58\" rx=\"4\" fill=\"#03140e\" stroke=\"#0d4732\" stroke-width=\"1\"/>',\n            '<text x=\"46\" y=\"268\" fill=\"#00ff9d\" font-family=\"monospace\" font-size=\"12\">BURST VAULT: ',\n            _weiToMilliBnb(burstVaultPool),\n            \" mBNB (80% @ EVERY 5TH)</text>\",\n            '<text x=\"46\" y=\"288\" fill=\"#8abfa8\" font-family=\"monospace\" font-size=\"11\">NEXT BURST IN: ',\n            _u2s(paidMinted % BURST_MILESTONE == 0 ? BURST_MILESTONE : BURST_MILESTONE - (paidMinted % BURST_MILESTONE)),\n            \" PAID SHARES</text>\",\n            '<text x=\"32\" y=\"356\" fill=\"#5e947d\" font-family=\"monospace\" font-size=\"11\">PAID SHARES: ',\n            _u2s(paidMinted),\n            \" / \",\n            _u2s(MAX_PAID_SUPPLY),\n            \"</text></svg>\"\n        );\n\n        return string.concat(p1, p2, p3);\n    }\n\n    function _buildShareAttrs(\n        bool paid,\n        uint256 unitsWhole,\n        bool agent\n    ) internal pure returns (string memory) {\n        return string.concat(\n            '[{\"trait_type\":\"Share Tranche\",\"value\":\"',\n            paid ? \"Capital Share (Paid)\" : \"Genesis Share (Free)\",\n            '\"},{\"trait_type\":\"KTXR Units\",\"value\":',\n            _u2s(unitsWhole),\n            '},{\"trait_type\":\"Agent Holder\",\"value\":\"',\n            agent ? \"Verified .ai Holder\" : \"Standard Holder\",\n            '\"}]'\n        );\n    }\n\n    function _weiToMilliBnb(uint256 w) internal pure returns (string memory) {\n        uint256 m = w / 1e12;\n        return string.concat(_u2s(m / 1000), \".\", _pad3(m % 1000));\n    }\n\n    function _pad3(uint256 v) internal pure returns (string memory) {\n        if (v < 10) return string.concat(\"00\", _u2s(v));\n        if (v < 100) return string.concat(\"0\", _u2s(v));\n        return _u2s(v);\n    }\n\n    function _u2s(uint256 value) internal pure returns (string memory) {\n        if (value == 0) return \"0\";\n        uint256 temp = value;\n        uint256 digits;\n        while (temp != 0) {\n            digits++;\n            temp /= 10;\n        }\n        bytes memory buffer = new bytes(digits);\n        while (value != 0) {\n            digits -= 1;\n            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));\n            value /= 10;\n        }\n        return string(buffer);\n    }\n\n    function _toHexAddr(address a) internal pure returns (string memory) {\n        bytes20 b = bytes20(a);\n        bytes16 hexSymbols = \"0123456789abcdef\";\n        bytes memory str = new bytes(42);\n        str[0] = \"0\";\n        str[1] = \"x\";\n        for (uint256 i = 0; i < 20; i++) {\n            str[2 + i * 2] = hexSymbols[uint8(b[i] >> 4)];\n            str[3 + i * 2] = hexSymbols[uint8(b[i] & 0x0f)];\n        }\n        return string(str);\n    }\n\n    function _b64(bytes memory data) internal pure returns (string memory) {\n        if (data.length == 0) return \"\";\n        string memory table = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n        uint256 encodedLen = 4 * ((data.length + 2) / 3);\n        string memory result = new string(encodedLen);\n        assembly {\n            let tablePtr := add(table, 1)\n            let resultPtr := add(result, 32)\n            for {\n                let dataPtr := data\n                let endPtr := add(data, mload(data))\n            } lt(dataPtr, endPtr) {\n\n            } {\n                dataPtr := add(dataPtr, 3)\n                let input := mload(dataPtr)\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F))))\n                resultPtr := add(resultPtr, 1)\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F))))\n                resultPtr := add(resultPtr, 1)\n                mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F))))\n                resultPtr := add(resultPtr, 1)\n                mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F))))\n                resultPtr := add(resultPtr, 1)\n            }\n            switch mod(mload(data), 3)\n            case 1 {\n                mstore8(sub(resultPtr, 1), 0x3d)\n                mstore8(sub(resultPtr, 2), 0x3d)\n            }\n            case 2 {\n                mstore8(sub(resultPtr, 1), 0x3d)\n            }\n        }\n        return result;\n    }\n\n    receive() external payable {}\n}\n"}},"abi":[{"type":"constructor","inputs":[{"name":"_receiver","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"BurstVaultTriggered","type":"event","inputs":[{"name":"winner","type":"address","indexed":true,"internalType":"address"},{"name":"paidShareIndex","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"burstReward","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"remainingPool","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"PayoutEscrowed","type":"event","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"PayoutWithdrawn","type":"event","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"ReferralRewardPaid","type":"event","inputs":[{"name":"referrer","type":"address","indexed":true,"internalType":"address"},{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reward","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"ShareNoteIssued","type":"event","inputs":[{"name":"buyer","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"isPaid","type":"bool","indexed":false,"internalType":"bool"},{"name":"shareUnits","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"TailVaultSwept","type":"event","inputs":[{"name":"sweeper","type":"address","indexed":true,"internalType":"address"},{"name":"sweeperShare","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"reserveShare","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":"WhaleSweepBonusPaid","type":"event","inputs":[{"name":"whale","type":"address","indexed":true,"internalType":"address"},{"name":"sharesSwept","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"bonusReward","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"AGENT_ID_REGISTRY","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"BURST_MILESTONE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"BURST_POOL_CUT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"BURST_WIN_BPS","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":"MAX_FREE_PER_WALLET","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MAX_FREE_SUPPLY","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MAX_PAID_SUPPLY","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MAX_PER_TX","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":"OWNER","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":"REFERRAL_CASHBACK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"REF_DISCOUNT_PRICE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"RESERVE_RECEIVER","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"SHARE_PRICE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"TAIL_TIMEOUT","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"UNITS_PER_FREE_SHARE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"UNITS_PER_PAID_SHARE","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"WHALE_BONUS_BPS","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"WHALE_SWEEP_QTY","type":"function","inputs":[],"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":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"burstVaultPool","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"buyGold","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"canReceiveFree","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"claim","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"claim","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"claimAirdrop","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"claimTailBurst","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"claimablePayout","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":"flushPayout","type":"function","inputs":[{"name":"beneficiary","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"freeClaim","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"freeClaimed","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"freeMint","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"freeMint","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"freeMinted","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"freeRemaining","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"getApproved","type":"function","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"hasAgentId","type":"function","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"isAgentVerifiedNote","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"isApprovedForAll","type":"function","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"isPaidShareNote","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"lastShareBuyer","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"lastShareTimestamp","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"mint","type":"function","inputs":[],"outputs":[],"stateMutability":"payable"},{"name":"mint","type":"function","inputs":[{"name":"referrer","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"mint","type":"function","inputs":[{"name":"shares","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":"mintShares","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"mintTo","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"name":"mintWithRef","type":"function","inputs":[{"name":"shares","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":"noteShareUnits","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"paidSharesBy","type":"function","inputs":[{"name":"","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":"quote","type":"function","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"name":"referralEarned","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":"shareUnitsOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"sharesCap","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"name":"sharesSold","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"sharesUntilNextBurst","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"sold","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":"tokenURI","type":"function","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"totalBurstPaid","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalEscrowedPayouts","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalMinted","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalReferralPaid","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"totalShareUnits","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":"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":"withdrawPayout","type":"function","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"name":"withdrawPayoutTo","type":"function","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"}],"matchId":"57676090","creationMatch":"exact_match","runtimeMatch":"exact_match","verifiedAt":"2026-10-30T12:25:53Z","match":"exact_match","chainId":"56","address":"0x3Af452160bf8944F053bD65E18f8f4eC94e09d17"}