/ changelog

Upgrades

Every implementation that's ever been wired into the proxy at 0x8aD4E547d4d23eA64a7887896467236f1ce6DF23. The proxy address never changes. Only what it delegates to.

V1.1

LIVE2026-05-21 (block 25,147,504)
implementation
0xc508509Ad3a77704734CECAeF1794911AAaEE6b4
deploy tx0x8604f89f8f2fd9b0e795block 25,147,444
activate tx0xa1af329e98d68102df06block 25,147,504

V1 was leaking the TTT FeeSplitter 30% holder share. The proxy had no code path to claim it, so accrued rewards transferred to NFT buyers on every sale. V1.1 captures it. Plus six smaller operational fixes.

Initial design, Option B pivot after re-reading TTT whitepaper §8, inventory audit, post-deploy verification. Final verdict: bytecode matches reviewed source, all V1 state preserved across upgrade, inventory storage coherent, no surprise drains.

what shipped

  • claimHolderRewards(): permissionless FeeSplitter claim
    Anyone can call claimHolderRewards(tokenIds). Caller gets min(received × 1%, syncReward) as a bounty; the remainder routes to ethToTwap (the buyback bucket). Fixes V1's active reward leak.
  • pendingHolderRewards(): total pending across held NFTs
    Free RPC read. Iterates every TTT NFT the proxy holds and sums FeeSplitter.pending(tokenId). Surfaces the leak that V1 made invisible.
  • Held-inventory tracking
    Contract maintains its own held-tokenIds array since TTT collection doesn't implement ERC721Enumerable. New view: heldTokenIds(), heldTokenCount(). Owner-only addHeldInventory() reconciles in case anyone donates an NFT via plain transferFrom (bypasses onERC721Received).
  • buyTargetNFT + createSeaportListing restricted
    Both now require owner/manager. Closes the PNKSTR-class griefing vector where a random caller could drain currentFees into a predatorily-priced or compromised marketplace. Optional bounded keeperRefund (≤ 0.0005 ETH per call) self-funds the keeper.
  • renounceOwnership disabled
    Overridden to revert. Removes the irreversible-footgun ability to permanently lose owner control. Multisig + freezeUpgrades remains the path to immutability.
  • Tighter burn invariants
    setBurnConfig + setBurnReward + buyAndBurn now enforce minBurnThreshold > burnReward AND minBurnThreshold ≤ burnIncrement AND burnAmount > 0. Prevents zero-amount no-op forwards.
  • setEnsName(string): proxy ENS reverse-resolution
    Owner-only call to ENS reverse registrar. Lets the proxy reverse-resolve to a human-readable name (e.g. burntoken.eth) on Etherscan and wallet UIs.

V1

ARCHIVED2026-05-20 (block 25,140,159)
implementation
0xF4D1BC4607a7B640b1Fb0C61E1c5E3c8dDd96005

Initial launch. Strategy contract burned TTT NFT #9099, became the launcher of $BURN, started receiving 50% of $BURN swap fees as ETH. Buy-and-burn flywheel proven end-to-end same day.

what shipped

  • Burn-to-launch
    burnTTTAndLaunch() burned the seed TTT NFT and activated $BURN. The proxy is recorded as the launcher in $BURN's bytecode permanently.
  • buyTargetNFT: acquire TTT NFTs from marketplaces
    Was permissionless in V1 (later restricted in V1.1). Buys whitelisted-marketplace TTT NFTs using currentFees ETH, lists them on Seaport at a markup.
  • buyAndBurn: TTT-native lock-as-burn (whitepaper §8)
    Permissionless. Forwards ETH to the $BURN contract's buyback reservoir. The TTT-native $BURN.buyback() then handles the V4 swap and locks the purchased $BURN at the $BURN contract address. 'Structurally inert, never distributed, never released' per whitepaper §8.
  • syncOrderStatus + createSeaportListing: Seaport plumbing
    Permissionless settlement detection (paid syncReward bounty on success). Auto-list on Seaport when an NFT is acquired.
  • Upgrade governance
    UUPS proxy. 90-day upgrade window, owner-only _authorizeUpgrade, freezeUpgrades() one-way switch, extendUpgradeDeadline() bounded extension. Designed so the operator can ship fixes early but the door closes hard.

Upgrade governance: 90-day window after each deploy, owner can freeze permanently at any time via freezeUpgrades(). Rollback is always available within the window if a newly-activated implementation misbehaves.

Don't trust this page. Every claim above is verifiable on chain via the proxy address.