GUNZscope
v0.40.4 // EARLY ACCESS

What’s New

Early Access · Updated regularly

GUNZscope ships updates frequently. Here’s what’s changed. Got an idea? Request a feature.

September 20, 2026

  • The attestation explorer was quietly dropping rows. When the public RPC hiccuped on a block range, we skipped it, showed whatever was left, and cached that for half an hour. It now retries, checks its count against the contract's own counter, and if it still comes up short it says so in a banner instead of pretending.
  • One early attestation is filed under the builder's main wallet but lists the four items in his second wallet. That was a bug in the contract's first hour: v0.4.7 filed everything under the sender, v0.4.8 fixed it 36 minutes later, and the chain does not do deletions. The explorer now labels it, points at the correct record that replaced it, and will flag any future record where the wallet and the list disagree.
  • Attestations that list fewer items than the wallet actually held at the time are now marked as partial. One is: 200 of 421. The list is true. It is just not the whole truth.
  • The record page no longer calls an attestation immutable, permanent proof. It is a Merkle root and a list you can check against it, and nobody checks the list against GunzChain. That is already more than a screenshot.

September 18, 2026

  • The nightly supply check had a habit: when one slow query ran out of time, the whole thing went quiet. No verdict, no alert, and a green-looking silence. Half of its last fourteen mornings ended that way. It now reports what it managed to check, says plainly what it could not and why, and rings the bell when it cannot run at all. Nothing in your numbers changed; the check just stopped sleeping through its own alarm.

September 15, 2026

  • The 155 items that Gunzilla renamed, and that we were counting twice under two names, are now one item each. If you looked up one of them, the supply you saw was a fraction of the real number: Pierser Red Dot Compact Sight read as 1 copy and is really 9,493. Four items that wore a scarcity badge never deserved it, and no longer wear one.
  • The old names still work everywhere: the lookup page, item links and the supply API all resolve them to the item’s current name and tell you what that name is.
  • Thirty-nine more items now carry the rarity and name their own copies report, instead of the one they were labelled with months ago.

September 14, 2026

  • The daily supply integrity check crashed on startup this morning because of a missing import in a script the build never typechecks. Fixed, and the scripts are typechecked now. Nothing in the numbers was affected; the check simply did not run once.

September 14, 2026

  • When Gunzilla renames an item, its old name keeps working here: the supply API, the lookup page and any bookmarked item link resolve the old name to the item’s current one and say what that is. If you build on the API, read canonicalName; if you just bookmarked a page, do nothing.
  • The tools that fold a renamed item’s two rows back into one, and refresh the rows whose own copies say a different rarity than the row does, ship in this release and run as a separate, announced step. Nothing changes in the numbers until then.

September 13, 2026

  • When Gunzilla renames an item, the old name keeps its row and the new name gets a fresh one, so one item’s supply quietly splits in two and the new row can look rarer than it is. The daily integrity check now spots that shape: a row that stopped minting under one name while its own copies report another. It found 155. Fixing them is the next release.
  • Four Season 03 rewards that exist as both an avatar and a banner under one name are now on a short list of things that are genuinely two items, so they stop being reported as mix-ups every morning.

September 12, 2026

  • The daily re-read of every item’s metadata can now run as a rehearsal that lists each item whose stored name or rarity no longer matches what Gunzilla serves, without changing anything; the part that corrects them is next.

September 12, 2026

  • Notices from the announcer now show up as purple cards in Discord, distinct from the green release posts, so you can tell a heads-up from a shipped change at a glance. The first one is a note for API consumers about rarity labels; if you build on the supply API, read it.

September 12, 2026

  • When an item has no serial number in its metadata, the gallery card and the detail modal used to show "#" followed by the first eight digits of the token id. It looked exactly like a serial. It was not one. The serial slot now stays empty, because an empty slot is at least honest.
  • Grouped items with no serials still show ×N. Items whose metadata genuinely says serial 0 still show #0, because that is what Gunzilla serves and we are not in the business of inventing better ones.
  • Changelog housekeeping: two entries from May described the serial line as "on-chain". The serial is a metadata trait served by Gunzilla’s API, not something written to GunzChain. Those entries now carry a dated correction underneath instead of being quietly rewritten.

September 12, 2026

  • The daily re-read from v0.38.0 catches label changes on every item, including dormant ones, once a day. For items that are still minting, the indexer now also compares every freshly minted token against what it last knew and records a dated observation the moment a name or rarity comes back different. Nothing extra is fetched, nothing on the site changes yet.

September 12, 2026

  • GUNZscope now records catalogue changes Gunzilla makes to item names and rarities, including items that are no longer minting. Once a day it re-reads a few tokens of every item straight from the metadata service and keeps a dated row whenever a name or rarity moved. Until now a relabel of a dormant item was invisible to everyone, us included; last week we found 160 of them.
  • Nothing on the site changes yet. This is the recording. The part that acts on it, and tells you when your item was quietly demoted, comes next.

September 11, 2026

  • The new metadata snapshot table now holds what we captured last week before anyone could overwrite it: about 53,000 observations of item names and rarities from GunzScan, OpenSea, the Wayback Machine and our own records, plus a same-day live reading for every item. It is how we know that 160 items are still labelled with a rarity Gunzilla quietly changed months ago, and 219 were renamed. Nothing on the site reads it yet. The job that will is next.

September 11, 2026

  • Three new tables and three new columns, all empty. They are where the upcoming supply reconciliation job will write what it checked against the chain and what it found, and where item metadata gets snapshotted so a rarity change at the source stops being something only Gunzilla remembers. Nothing on the site reads them yet. You will not notice. That is the point.

September 10, 2026

  • If the indexer heard about the same mint or burn twice, it counted it twice, and nothing ever took the extra one back. Supply figures could drift up by one per repeat, quietly, for as long as the process stayed up. A repeat is now recognized as a repeat and ignored.
  • Whatever drift already crept in gets wiped on the next indexer restart, when every counter is rebuilt from the raw event log. Until then a handful of items may read one or two higher than the chain says. Nothing you need to do.

September 8, 2026

  • Every item the public API returns now carries an itemId that stays put when Gunzilla renames a rarity, plus the underlying asset key. If you were keying on name plus rarity and watched a couple of hundred lookups go empty after the September catalogue merge, that was the fix doing its job: the old label is retired, the item is not. Key on itemId and it stops happening.
  • For the lookups that already went empty, add resolveRetired=1 and the retired label resolves to the surviving item under its current rarity, clearly marked as a history match with the label you asked for. Nothing changes unless you pass it. One warning: two retired labels of the same item resolve to the same itemId, so dedupe before you add things up.

September 8, 2026

  • The last two rewards that were still on their old ordering now have their real numbers: Gone Before the Splash Lands is tier 71 and Vulture Adaptive Barrel is tier 74. That completes the OTG Vanguard pass. Every reward we track across Nullface, SwampJaw and Dunewalker now shows the number the game prints.
  • Both of those are above tier 32, so their FREE or PRO track is recorded too. Tiers 1 to 32 are still blank on the track, and will stay that way until someone who has not claimed them can read the badge: the game swaps it for a checkmark the moment you claim.
  • Repeating Rewards, tiers 121 to 130, are still not tracked. They are boost cards and cases, so there is nothing there to put in a set.

September 8, 2026

  • Last release fixed tiers 71 to 120. This one does 1 to 70, so the whole 130-tier Vanguard pass now shows the numbers the game prints rather than the order people happened to claim things in. The Nullface Vest reads 20 instead of 7, the SwampJaw Vest reads 50 instead of 19.
  • Two rewards were filed under Nullface but print in the SwampJaw range, so they moved: The Bog Remembers Its Own at 42 and Still Waters, Louder Truths at 46. The Nullface chapter ends at 40, which the client confirms.
  • FREE and PRO is recorded from tier 33 up. Below that it is blank on purpose: the game hides the track badge once you have claimed a tier, and the account these were read from had already claimed through 32. Reading them needs someone who has not.
  • Two SwampJaw rewards are still on their old ordering, Gone Before the Splash Lands and Vulture Adaptive Barrel. Their real numbers have not been read off the client yet.

September 7, 2026

  • Season 3 pass rewards were numbered by the order players claimed them, which put them in the right sequence with the wrong numbers. Tiers 71 to 120 now carry the number the game actually prints, so the Dunewalker Jetpack reads 110 instead of 46. Tiers 1 to 70 are still on the old ordering until someone transcribes them.
  • Each of those rewards now records whether it sits on the free track or the premium one. Nothing displays it yet; the card comes next.
  • Three rewards were filed under SwampJaw but print in the Dunewalker range, so they moved to where the game puts them.
  • The SwampJaw Jetpack is now its own item. It has been sharing a name with the SwampJaw Vest since launch, because the game hands out both under the vest name, and we were counting them as one thing. They are now two things, which is the correct number of things.

September 7, 2026

  • Nothing on the site changed. The script that builds a fresh copy of the database for local work forgot to copy the item order of the Redemption & Wrath pass, so a developer starting from scratch would have seen that pass unordered while the live site had it right. It now copies every pass order it knows about, and a test makes sure it keeps doing so. The live database was never involved.

September 7, 2026

  • Release notes are now split so developers only hear about API changes and everyone else gets plain-language updates. Until today every release, whether it changed what the API returns or just moved a comma in the indexer, landed in the same two Discord channels with the same technical wall of text. From now on a release that changes the public API goes to the developer channel with only the API-relevant lines, a release that changes something you can see goes to the updates channel in plain words, and the internal housekeeping goes to a build log nobody has to read. This release is the housekeeping.

September 7, 2026

  • The Mr Fuckles battle pass now lists its two tracks, Gimp and Mr Fuckles, in the order the pass hands the items out. The game does not print that list anywhere we can reach, so the order comes from the chain: every early claimer minted the rewards two seconds apart in the same sequence, and that sequence is what you see. The set page says the order is inferred, because it is.
  • A base-game mask that predates the Mr Fuckles pass by five months had been counted as one of its items, so the set could never read complete without a mask half the server owns. Gone. A relabelled copy of the Red Ant pants was listed as a second item under the Red Ant pass. Also gone. And three items that shipped with the Yankee Doodle Damage set had been filed under Save Democracy since day one; they have moved, so your progress on those two pages now counts what you can actually collect.

September 7, 2026

  • The Redemption & Wrath battle pass has two tracks, Confessor and Dark Apostle, and until now the site listed its twenty items in no particular order, because the pass cannot be opened in-game and there is no printed tier list to copy. There is, however, the chain: the first player to grind the whole pass claimed every reward two seconds apart, and that sequence is the order the pass hands them out. Each track now reads in that order, nine items on Confessor and eleven on Dark Apostle. The set page says so in as many words, because an order read off the blockchain is an inference, not the game's own numbering.

September 6, 2026

  • The realized PnL panel decided whether a wallet was yours by checking one thing: is this the wallet you signed in with. If you had linked and verified a second wallet, the panel treated you as a visitor on it, hid the compute and refresh controls, and told you the owner had not activated tracking. You were the owner. The panel now recognises verified linked wallets as yours, not only the primary wallet. Wallets you have added but not yet verified still count as someone else's, which is the same rule the server has applied all along; the panel has just caught up with it.

September 6, 2026

  • The fallback favicon, the one some browsers show in the tab strip and bookmarks, was a generic triangle in a circle left over from the project template. It is now the GUNZscope mark. Add to Home Screen on iPhone and Android also gets a proper icon: the mark on a dark tile instead of whatever the phone improvised from the page.

September 6, 2026

  • Three changes from September 1st never made it into the changelog: the grant page accuracy pass, the new vision deck, and the fix for words running together after bold text. They are now credited under the release they actually shipped in, which is the version they were always in. Nothing on the site changed; the paperwork caught up.
  • The grant page now reports the real size of the test suite, dated today, instead of a number from a week ago. It went up. It usually does.

September 6, 2026

  • Every purchase and transfer date in your portfolio needs the GUN price for that day, and until now the site asked the price provider for it every time, on a free key, several hundred times a day. Once a day is more than two days old its price is not going to change, so the site now keeps the answer in its own store the first time it sees it and serves it from there afterwards. Portfolio history no longer depends on the provider being awake, and the provider gets asked a lot less. Today and yesterday are still fetched live, because those numbers are still moving.

September 6, 2026

  • The script that posts each release to Discord and X used to keep its "already announced" note in a file on whichever machine ran it. Two machines, two files, two opinions, and a release could go out twice or not at all. That note now lives in the database, one row per channel, with the time it was posted and a reference to the message. Any machine that runs the announcer sees the same record. You will notice nothing except, with luck, fewer duplicate announcements.

September 6, 2026

  • The admin lookup page reaches the enrichment routes through a proxy, and the proxy was on a thirty-second budget while the route behind it had two minutes. On wallets past about a hundred item groups the proxy gave up with a 504 while the real work carried on behind it, so the page reported a failure it had not actually suffered and the biggest wallets had to be run by hand. The proxy now carries the same two-minute budget as the longest route it forwards to, and a test keeps the two from drifting apart again. Nothing changes on the portfolio side; this is plumbing on the admin bench.

September 6, 2026

  • The "blocks indexed" figure on the home page had been reading the wrong counter since July. The table that holds the indexer position also holds bookkeeping rows for other jobs, and the stat was picking up whichever row the database handed back first: a row that counts passes, not blocks, and had reached 3. It now reads the real indexer position, which is a little over 23.7 million blocks. Nothing about the indexer changed; it was never three blocks in.

September 6, 2026

  • Updated the web framework and the wallet sign-in SDK together, which closes the last outstanding security advisory in the image library underneath the site. Two things about signing in may look different: MetaMask now connects through the official MetaMask SDK by default (a small change in the connect flow, same wallet), and if you ever created an older embedded wallet here, the sign-in modal may offer a one-time upgrade for it. Most accounts will not see that prompt.
  • Our usage analytics no longer record the one-time sign-in codes that Discord, Twitch and Epic hand back in the address bar. They were only ever visible to us, and they were useless after a second, but they had no business being in the analytics at all.

September 5, 2026

  • Updated the usage-analytics library, which closes another security advisory in the code underneath the site. Along the way we found that our error monitoring had been quietly borrowing two components from the analytics library instead of owning them; they are now declared properly, on patched versions. Nothing you see changes, and nothing extra is collected.

September 5, 2026

  • Closed seven security advisories in the libraries underneath the site - none of them in code you touch, all of them the kind that show up in a dependency scanner and sit there looking ominous. Three more were reviewed and deliberately left alone with a written reason and a date to look again, because the only available fix was riskier than the finding. Nothing about the site changes; the audit trail just got shorter and more honest.

September 5, 2026

  • Our daily supply audit compares what the chain says was minted with what we have counted. It was reading the chain a few seconds ahead of our own books, so its headline number wobbled by a few hundred with every burst of mints and looked like a problem that was not there. It now sets aside what is still in transit before deciding, and the tolerance it judges against no longer counts 47 stuck tokens twice. Nothing changes in the numbers you see on items; the audit just stops crying wolf.

September 5, 2026

  • When you hold several copies of the same item, our background enrichment used to write down the first copy and call the rest done. If you owned a Rare and an Epic of the same weapon, they were filed together too. Each copy now gets its own record, with its own mint or transfer date, and different rarities of one item are kept apart.
  • The coverage check we use to see how much of a wallet is filled in was grading itself against the records it had already written, which is how it reported a perfect score with 99 items missing. It now grades against what the wallet actually holds.

September 5, 2026

  • A partners page now lists products built on GUNZscope data, starting with WalletZero, a multi-chain wallet for the GUNZ ecosystem that shows live supply and on-chain rank for every item in your inventory. It is not in the menu yet; it is the kind of page you get sent a link to.
  • If you are building something on the API and want to be on it, the developers page is where that conversation starts.

September 5, 2026

  • The daily supply integrity check emails us and posts to a private channel every morning. The channel it was posting to had been deleted, so the check ran, passed, and told a wall about it. It now posts to the right place, and if that place is ever missing it says so in the log instead of shrugging.

September 5, 2026

  • The Redemption & Wrath battle pass is now a set: twenty items across the Confessor and Dark Apostle tracks, from Hate the Sin and the Sinner to Dark Apostle's Wings.
  • Four content packs are tracked on their own: Bulwark, Grid Runner, Gunslinger and The Bride. Bulwark used to be labelled the Season 3 premium bonus; the release notes call it a content pack, so that is what it is now.
  • The six quoted Silence pieces, PermaBan and the Wolf Tamer Terikon skin belong to the Anti-Cheat pass, where they minted on the same June 2025 day as Kestrel Punisher. Five of them had been sitting under Don DeLulu. Prankster gets its missing T-Shirt.

September 4, 2026

  • Season 3 chapters, loyalty rewards, and Ranked Season 3 are now tracked in set completion, plus missing items added to 13 battle passes.
  • Season 3 is split the way the pass is: Nullface, SwampJaw and Dunewalker chapters, plus the four items every premium buyer gets on purchase. Each reward now carries its position in the pass, worked out from the order the first buyer claimed them in, two seconds apart, on launch day.
  • Loyalty rewards get their own category. Nine monthly rewards from November 2025 to September 2026 are mapped with their level; April and May 2026 handed out nothing on chain, so the numbering skips them.
  • Ranked Season 3 avatars, banners and the seven Kochi rank skins are a set. Thirty one items that were sitting unmapped now belong to the ChemTech, Red Ant, Zero Chill, Drone Op, Templar, Mr Fuckles, Black Friday, Hexmas, Enforcer, Anarchist, Hitori Yubi and Kiiro Shinobi passes.

September 4, 2026

  • Three items were quietly showing up as two entries for the same thing: Scout Cap, Eye Ache Skin for the Partisan, and Digital Child Skin for the Type 227. Each is now one entry with its full count, and new copies land on it instead of opening a fresh duplicate. If you had bookmarked the duplicate, it still takes you to the right place.
  • Supply data is now checked against the chain automatically every day. Counts that drift from what the blockchain says, items that split in two, burns with no matching mint, and gaps in the history all get flagged to us within a day. The first time something like this went wrong, a partner had to tell us. That was the last time.

September 4, 2026

  • Set completion loads faster. The list of which items belong to which set is now worked out once and kept warm instead of being rebuilt for every wallet, and the mint history is summarised in the database rather than shipped row by row. The biggest wallets went from just under two seconds to well under one.
  • Nothing you see changes. Same counts, same finish dates, same order. If an item is ever moved between sets, the change shows up on the next load rather than ten minutes later.

September 4, 2026

  • Set completion now shows what you hold as the main number, with unlocks as a separate count. The bar and the percent are the items from the set sitting in your wallet right now, for every kind of set. Underneath, UNLOCKED X OF Y is how many you minted yourself.
  • We checked how battle pass items actually reach a wallet. Every one of them is minted straight to the player through a HEX decode, and nothing on chain says which pass tier it came from. So "unlocked" means unlocked via HEX, and buying the last piece on the marketplace completes the set just as well as opening it.
  • The held count is now worked out from the items your portfolio already loaded, which took the slowest part out of the request. The biggest wallets went from twenty seconds to well under one.

September 4, 2026

  • Supply rankings now include each item's rank, with 1 being the fewest active copies in the game, and how much of the catalogue it is rarer than. An item that reads "rarer than 94.6%" has more copies than only about one in twenty items on chain, and now you can say so without doing the arithmetic yourself.
  • The rank is against the whole catalogue, not the page you happen to be looking at. Filter down to the scarce bracket and the first row still shows its real position, because "number one of the twelve I filtered to" was never information.
  • Items with the same count used to swap places between page loads. They now hold a fixed order, so page two is the same page two every time.

September 4, 2026

  • See how far along you are on any battle pass or set, and a projected finish date based on your own unlock pace. It sits right under your portfolio summary, opens on battle passes (all 17 of them), and switches to content packs, events and the rest with one tap.
  • Two numbers per set, because they are two different questions: how many of the set you have ever unlocked, and how many you hold right now. Battle passes lead with the first. Everything else leads with the second.
  • The finish date is honest to a fault. Stop unlocking for two weeks and it says INACTIVE instead of guessing. Finish the set and it says COMPLETE, which we assume you already knew.

September 4, 2026

  • API changelog posts in Discord now open with a plain-language summary of what changed for integrators: what moves in the responses, whether the ids you cached still work, and whether you need to do anything. The technical bullets are still underneath, now with their labels in bold so you can skip the ones that are not about you.
  • If a release has nothing to say to integrators, the section is simply not there. We would rather say nothing than make something up.

September 4, 2026

  • Supply history is now complete back to the first mint. Two stretches of last year (a few days in October, one day in May) had never been read, so anything released in those windows looked like a limited drop. It was not. The six Day 365 skins that showed 8 active mints now show the 1,700 or so they actually have, and every item minted during those days has its full count back.
  • Items that appeared twice with split counts now appear once with the whole number. The consolidation we announced in v0.27.0 has now actually run across the catalog: 568 items that had been filed under two rarity labels are one item each, and an AZV 100 Curved Foregrip reads about 2,100 instead of 25 or 1,979 depending on which half you opened. Old links to the retired duplicates still land on the right item.
  • Rankings no longer list the same item twice, and the item count on the intelligence pages now counts things, not labels: 3,751 items. Future relabels update the item in place instead of splitting it, so this is the last time we should have to say any of this.

September 3, 2026

  • Portfolios with more than a few hundred items now load their full inventory and enrich every item, not just the first page. If you have been staring at a suspiciously small collection, it was us, not you.
  • Portfolio snapshots now wait for the full inventory before recording value, so history no longer understates large collections.

September 3, 2026

  • Admin tools are easier to reach, and wallet addresses can be copied with one click. The standalone admin pages now sit under the Tools tab and carry a link back, and the People view shows full addresses instead of the shortened ones you had to hover over. Housekeeping rode along: a leftover analytics allowance and some dead request headers are gone.

September 3, 2026

  • Tightened admin tooling authentication and hardened sign-in token verification against provider key rotation. The admin tools now accept exactly one way in, and the check that validates your sign-in token no longer depends on the provider having a single active key. Nothing changes for you unless you were doing something we did not intend.

September 3, 2026

  • View-only portfolio data now defaults to private for any new fields. Until now the server kept a list of things to hide from visitors looking at someone else's wallet; anything not on the list was visible. It is now the other way round: only a short, explicit list of market facts (prices, valuations, counts, timestamps) is shown to visitors, and everything else stays with the owner. Nothing changes for you on your own portfolio.

September 3, 2026

  • Item supply counts are now consolidated per item, so totals no longer split when an item's rarity label changes. Since July, a metadata relabel had been quietly filing the same item under two rarities, and anyone reading one of them saw a fraction of the real supply (an AZV 100 Curved Foregrip that reads 25 instead of about 2,000, that kind of thing). Items are now identified by what they are, not by the label of the week, and the label history is kept on the side.
  • Old links and bookmarks to the retired duplicates keep working: they land on the consolidated item. If you have been reading the small number, it is about to get bigger. That is the correct one.

September 3, 2026

  • Usage analytics now work reliably for everyone, including visitors with ad blockers. Until now a good chunk of you were invisible to our page-view counts - which, for a crypto and gaming crowd, is a lot of you. Nothing about what is collected changed; it just reaches us now.

September 3, 2026

  • Consolidated session verification into a single hardened check across all sign-in gates - pages, data endpoints and the admin panel now ask the same question the same way. Nothing you do changes; there is simply one fewer place for the answers to drift apart.

September 2, 2026

  • Premium sections now unlock the instant you sign in and lock the instant you sign out - no refresh, no waiting for the page to notice. Intelligence modules, mint positions, item detail panels, the lot: they all track your session in real time now instead of showing whatever they last fetched.

September 2, 2026

  • Signing in on a gated page now unlocks it immediately instead of after the next navigation. The page notices your fresh session on the spot - no reload, no detour.
  • A small bookkeeping fix rides along: the little marker that tells the site "this browser has a session" now expires together with the session itself, instead of outliving it by a month.

September 2, 2026

  • Sign-in sessions now expire after 24 hours of inactivity instead of 7 days. Active use keeps you signed in - visiting the site refreshes the clock - so the only sessions this ends sooner are the abandoned ones. Signing out also got a little more thorough about cleaning up after itself.

September 2, 2026

  • Removed a legacy portfolio endpoint that could time out under load. Portfolio pages already read from the faster persisted data path, so nothing you see changes - the site just no longer keeps a slow road open to a place nobody was driving to.

September 1, 2026

  • Tightened access controls across portfolio, account, and admin surfaces following an internal security review. We went looking for weak spots before anyone else could - a few doors closed a little more firmly than they did yesterday. Nothing you do changes; everything you see still works the same.

September 1, 2026

  • Fixed error reports from the live site being mislabeled as development. The monitoring we shipped this morning worked - it just filed everything under the wrong drawer. Reports from the real site now say so.

September 1, 2026

  • GUNZscope now detects and reports errors automatically, so problems on any page can be caught and fixed faster - often before anyone reports them. When something breaks, we get the full picture instead of a vague "it did a weird thing" (still send those, they have charm).
  • None of this touches your data. No session recordings, no personal details - just the error and where it happened.
  • Also in this release: a few pages had words running together after bold text ("Verifyingproves" on the account page, and the same trick on the roadmap and brand pages). The build tool was quietly eating the space. Spaces restored.

August 31, 2026

  • The build velocity stats across the site stopped breaking on any date after June. A date-handling bug made the chart and the day counts fall apart the moment a full month name showed up, and the commit history behind them was quietly frozen at mid-May. Both fixed - the numbers now stay current on every deploy, no hand-cranking required.
  • Fixed text spacing on a few grant and info pages where words ran together after bold or linked text. Reading them no longer feels like a puzzle.

August 31, 2026

  • Your account page now always shows the API tab. Before, it only appeared after you had requested API access - which meant you had no way to discover you could request API access. Yes, we see it too.
  • No request yet? The tab sits there quietly, dimmed, until you click it and fill in the form. Once you have a request, it looks exactly as before.

August 31, 2026

  • The developers page now does everything in one place: request and manage your API key right on the page, jump between sections with a nav that actually sticks to the top, and grab the attribution kit — logo files, the approved credit line, and the rules for using both.
  • Every API response now carries a small attribution object, so crediting "Data by GUNZscope" in your app is copy‑paste, not guesswork.
  • The bracket radar stopped claiming that sold‑out editions sitting exactly at their bracket edge were "under a day" from moving. They were not moving. They now say "parked at the edge", and items that are actually trending rank first.
  • If you signed in through Discord without a wallet, account links that point at a specific tab now open that tab instead of the onboarding screen you had already finished.
  • The serials field note got an addendum: boxes mint on open.

August 29, 2026

  • A new supply event log announces bracket crossings and new releases as the indexer sees them, so you find out when an item changes scarcity tier, not weeks later.
  • The bracket radar shows which items are closest to changing scarcity tier and how fast they are moving, in either direction.
  • Honest trend language: no countdown is shown unless an item is actually trending toward its edge. A quiet day reads as a quiet day.

August 28, 2026

  • The Intelligence page no longer advertises a collection overlay that was not ready. It is being rebuilt properly and will return.
  • Compare and release pages now invite you to the Premium Pass instead of showing an error.
  • When live data fails to load, the page now tells you and offers a retry instead of loading forever.
  • Tightened who can access Premium-only supply data.

August 28, 2026

  • Discord and social sign-ins now log you in and take you straight to your account, even without a wallet.

August 27, 2026

  • Fixed sign-in for accounts created through Discord, Twitch, or Epic without a wallet.

August 27, 2026

  • Fixed a navigation-state bug on Mint Check’s deep links and strengthened our automated code checks.

August 27, 2026

  • The serials field note got an editorial redesign - bigger type, pull quotes, and evidence stamps. Same evidence, easier to read.

August 27, 2026

  • Signing in with Discord now takes you straight to your account and API settings. Some social sign-ins were previously bounced back to the homepage.

August 26, 2026

  • Mint Check now shows exact mint positions for items up to 2,000 lifetime mints - previously capped at 500. Plus clearer wording when an item’s mint count exceeds its surviving supply.
  • Items between 500 and 2,000 get their exact position and a straight answer: at that supply, mint order carries only a limited premium. The first-mint and straggler verdicts stay reserved for genuine collectibles under 500, where they mean something.
  • Burning a copy does not renumber the rest, so a position can sit above the number of copies still alive. When that happens, the page now says so in one line. Also, a missing space between a number and the word "minted" has been located and returned.

August 26, 2026

  • Mint Check and Market now appear in the Intelligence menu on desktop - they were mobile-only due to a navigation bug.
  • The desktop and mobile menus were two separate lists that were supposed to match. They now read from one, so this particular way of losing a menu item is retired.

August 26, 2026

  • Market listings now link straight to Mint Check - click any Token # to verify its true mint position before you buy. Market is now in the Intelligence menu.
  • It works the other way too: a Mint Check result links back to the live listings for that item, so you can go from "where was this minted" to "what is it going for" without retyping anything.

August 26, 2026

  • Item cards now label the metadata serial as Serial # instead of Mint #. Serial numbers including 0 and letter-based serials now display correctly.
  • The sort dropdown and search box say Serial # too. The on-chain mint position card, the one that actually tells you where your copy landed, now says so in its heading. And the market listings table stops calling a token ID a mint number.

August 26, 2026

  • New: Mint Check - paste any Off The Grid item’s token ID or marketplace link and see its true on-chain mint position next to its serial number, before you buy. Free for everyone.
  • It tells you in one sentence what you are looking at: the genuine first mint, a late straggler minted months after the run ended, one of the last ever made, or just a normal copy whose serial means nothing about order. Mint date, block, original recipient and burn status come along, with links to GunzScan for anyone who wants to check our homework.
  • Mass-minted items get a different answer: the count, the bracket, and a note that mint order carries no premium at that scale. We are not going to rank your 50,000th of 50,000.

August 26, 2026

  • There is a new Field Notes link on the landing page, and behind it a list of longer articles about how the Off The Grid economy actually works. Sourced from the chain, not from a Discord thread that was very confident.
  • First one up: the serial number on your item is not its mint number. Never was. We walk through Tacoma Pioneer and Sack the Ripper #1 with the real on-chain mint order, including the part where serial 00000022 turns out to be the 240th of 240, the very last one minted. If you ever paid extra for a low serial, maybe read this one sitting down.
  • The Onchain Explorer link that used to sit in that spot on the landing page is still around; it just lives in the app navigation now, where the people who actually use it already were.

August 26, 2026

  • Setting a threshold on an alert meant fighting the box. Delete what is in the drop percentage, the below floor percentage or the GUN price, and a 0 appeared and refused to leave: every attempt to clear it put it straight back. Typing a price with a decimal in it was worse, because the point was swallowed as you typed, which put a value like 0.05 out of reach entirely. Both fields now let you clear them and type what you meant, decimals included, and a field left empty goes back to its usual default rather than sitting at zero.

August 26, 2026

  • Saving an alert threshold worked, and looked exactly like not saving one. The confirmation showed up as a small note in the corner of the screen, well away from the button you had just pressed, so the honest reading was that nothing had happened. The button now says Saving while it works and Saved when it lands, then goes back to normal. If a save fails you get told, which it previously did not bother to mention.
  • The same button also looked ready at all times, including the whole time there was nothing to save. It now sits dimmed until you actually change something, so a button you can press means you have unsaved work. Change a value back to what it was and it dims again.

August 25, 2026

  • We took the wait out of API keys a few versions ago, and then pointed the button at the wrong page. If you had never asked for a key before, you landed in account settings with no form in sight and no hint that one existed anywhere. The keys really were instant. The way in was missing. The button on the developer docs, and the Getting Started steps underneath it, now go straight to the form.

August 25, 2026

  • Following a link straight to the site, or finishing a sign-in, could dump you on the home page instead of the page you were actually going to. Signing in again and clicking through got you there, which made it feel like a fluke rather than a bug. Links and sign-ins now land where they are pointed.

August 25, 2026

  • Strengthened protections on administrative actions. Nothing changes for how the site works or looks; this is the sort of thing that should be invisible when it is done right.

August 25, 2026

  • Signing in and going straight to certain internal pages could bounce you back to the home page for a second or two, before quietly working on the next try. Nothing was actually wrong with the account: the page was making its mind up before your sign-in had finished loading. It now waits for the answer before deciding.

August 25, 2026

  • Some people were being unexpectedly signed out, or bounced back to the home page from a page they had every right to be on, after a session had been sitting idle for a while. Signing in again fixed it, which made it easy to shrug off and impossible to predict. Your session now survives on its own, without the round trip through the login screen.

August 25, 2026

  • If you were signed in and reloaded any page, you landed back on it signed out. Clicking around the site was fine, so the only way to hit this was to press refresh, which is a deeply annoying shape for a bug because the workaround is "never press refresh". Reloading now leaves you exactly where you were, still signed in.

August 25, 2026

  • Getting a free API key used to mean filling in a form and waiting a couple of days for one of us to read it and click approve. We read a lot of them. We approved essentially all of them. That is not a decision, it is a queue, so we have removed it: sign in, say what you are building, and your key is ready before you have finished reading this sentence.
  • We still ask what you are building, and the key is still issued to your account rather than to nobody in particular. That part was never the delay. What has gone is the gap between asking and being able to make your first call, which used to be about two days and is now about two seconds.
  • The free tier is unchanged and still free: active supply per item, scarcity brackets, rankings by current supply, indexer health, 60 requests a minute. A higher rate limit or the pro namespace is still a conversation with a person, but you now have that conversation holding a working key instead of waiting for one, and nothing stops working while we have it.

August 22, 2026

  • The item supply lookup keeps doing the thing it has always done for nothing: search any Off The Grid item and see how many are active right now, how many were ever minted, how many burned, and which scarcity bracket that puts it in. No account, no key, still shareable as a link.
  • What has moved behind premium is the history of that same item: when it first minted, when it last minted, how much of its supply landed on day one, the lifetime mint and burn curve, and the live feed of recent mints. It is the same line we draw everywhere else on the site. A number about the present is free. A number about time is the paid product.
  • The free card got something back in the trade: the scarcity bracket now sits next to the rarity badge, so you can tell at a glance whether four thousand copies is a lot for that sort of item, without doing the arithmetic yourself.

August 21, 2026

  • The public API is now two namespaces. The free one answers the question most people actually have: how many of an item are active right now, and how scarce that makes it. Per-item lookups, batch lookups, rankings by current supply, and indexer health, all free for approved developers, same key, same header.
  • The pro namespace is the same calls with one path change: swap /supply/ for /pro/supply/ and every item comes back with its lifetime mint and burn counts and its first and last mint dates, rankings can be ordered by any of those, and the drop-event feed lives there. Drops are pro only from here on; the old free drops path is gone.
  • If a free key calls a pro endpoint it gets a polite 403 that says exactly that, not a stripped-down answer, so there is never any guessing about which tier you are on. Pro responses are also never cached at the edge, so paid data is only ever served to the key that asked. Paid access is arranged case by case from the API Access section of your account.

August 18, 2026

  • GUNZscope now has a public API. Ask it how many of an item exist, how scarce it is, what the rankings look like, and what dropped recently, and you get the same on-chain numbers the site runs on. Free for approved developers, rate limited per key, so one enthusiastic script cannot spoil it for everyone else.
  • Supply brackets speak the same language as the rest of the site: abundant, circulating, limited, scarce. How many copies exist is a different question from what the game calls the item, and the API keeps those two apart exactly the way we do.
  • Access is self-serve at gunzscope.xyz/developers. Sign in, tell us what you are building, and once you are approved you can create your own keys, retire one the moment it leaks, and see how many requests each is making. The full key appears exactly once, because we keep only a hash of it and genuinely cannot look it up for you later.
  • One condition. If our numbers end up on your screen, link back to GUNZscope. The data is free, the credit is the rent.

August 16, 2026

  • The "last mint indexed" line on the Supply page went quiet for about a day: a health-check number we added earlier this week turned out to be enormously expensive to calculate, and it dragged the whole endpoint down with it. The number now lives in the indexer logs where counting it is free, and the freshness line is back.

August 16, 2026

  • A caching quirk meant the drops, rankings, and mint-position data could occasionally show a signed-in user empty numbers that were cached from someone who was not signed in. Since supply data is public now anyway, everyone just gets the real numbers, and the cache can no longer serve the wrong person the wrong thing.

August 16, 2026

  • When an item exists at several rarities, search used to show you near-identical rows and let you guess. Now it shows one row per item with a small "N rarities" tag, takes you to the biggest variant, and lets the page itself break down the rest.
  • Item pages with multiple variants lead with the combined totals — clearly labeled as combined — so a two-copy oddball variant can no longer pose as the entire supply of a three-thousand-copy item. The per-rarity table sits right below, same as before.
  • The compare page still shows every variant separately, on purpose. Comparing an Epic variant against its Uncommon sibling is half the fun.

August 16, 2026

  • Every item’s intelligence page — the lifetime mint curve, recent mints, burns, day-one share — no longer hides behind a blur. Supply numbers are on-chain facts; gating facts felt silly. Type a name, read the history, no account required.
  • When an item exists at several rarities, the page now lists every variant with its own numbers plus the combined total, so a rare oddball variant and the everyday version stop getting mistaken for each other.
  • Item search is public too, with the same honesty caveat printed on every page: we count what is on-chain, and items still sitting unminted in game inventories are invisible to us. The real total can be higher — we would rather say so than round up.
  • Fair value stays behind sign-in. The numbers about what exists are free; the opinions about what it is worth are the part you sign up for.

August 13, 2026

  • Supply brackets have new names: Scarce, Limited, Circulating, Abundant. The old names reused the game’s rarity words, which meant an Uncommon item with a big supply wore a large "COMMON" pill on its own page. Two different measurements, one vocabulary, endless confusion. The measurement did not change — only the words did.
  • Item pages now lead with the actual in-game rarity, in the same colored badge you know from the gallery. The supply bracket still sits next to it, clearly captioned as supply, so you can tell at a glance which number someone is arguing about.
  • Same words everywhere now: the scarcity page, the supply card in your portfolio, and the item pages all pull their bracket labels from one place. If we ever rename them again, it happens once.

August 12, 2026

  • Supply pages are now linkable. Look up an item, copy the URL from the address bar, send it to whoever is wrong about supply in your group chat. Links unfurl on X and Discord with a card showing the live active supply, pulled from our database at render time, so nobody can photoshop the number into the link preview.
  • The empty search box stopped being empty: three lists now greet you. The rarest items on-chain (several exist exactly once), whatever is minting right now, and the biggest supplies. Each row is one click from its full history.
  • A small line under the header shows the last mint we indexed and how long ago. That is the freshness guarantee, printed on the page instead of promised in a tweet.
  • The footer used to say full intelligence was coming soon. Fair value has been live behind sign-in for a while, so now it just says that, with a button.

August 12, 2026

  • Supply Lookup now shows each item’s full life story: a chart of every mint since day one (burns overlaid, when an item has any), the last 10 mints with anonymized wallets and timestamps, and what share of the supply landed on day one. Same page, same link, more receipts.
  • The chart plots real calendar time. An item that minted hard for two months and then went silent for a year looks exactly like that — we don’t compress the boring part, because the boring part is information.

August 12, 2026

  • New page: Supply Lookup, at gunzscope.xyz/supply. Type an item name, get its live on-chain numbers — how many were minted, how many were burned, how many are still out there, and when the first and last mint happened. Straight from the chain, updated as it happens, no login required.
  • One honest caveat, printed right on the page: we count what is on-chain. Items sitting in someone’s in-game inventory that were never minted are invisible to us, so the real total can be higher. We would rather tell you that than round up.
  • Logged-in users also get the page in the Intelligence menu, between Overview and Onchain Explorer. Everyone else can keep using the link like it is 2009.

August 12, 2026

  • When you own more than one copy of an item, the gallery card used to whisper it in small gray text next to the item type, where it was doing an excellent impression of not existing. The count is now a small lime chip. You will see it. That is the entire feature.
  • Side effect of the old layout: the count used to shove the rarity label off the card entirely. Both fit now, so a stack of Rare masks reads as what it is: a stack, of Rare masks. Groups with mixed rarities keep just the count, because one label would be lying to you.

August 11, 2026

  • Portfolio images came back. Gunzilla moved their image servers to a new address, and our image loader keeps a strict guest list of where it will fetch pictures from. The new address was not on it. The images were fine the whole time; the bouncer just had an outdated clipboard. Wallets you had looked at recently kept their pictures for a few days (we remember images we have already seen), which is why the problem seemed to spread slowly instead of breaking all at once.
  • While tracing that, we found the high-res image in the item detail view had been broken by a one-letter typo in that same guest list. Probably since it shipped. Also fixed, and yes, we are choosing to be pleased about finding it rather than embarrassed about writing it.
  • Cards that failed to load an image once used to sulk behind a placeholder icon until you refreshed the page, even after a working image showed up. They forgive now.

July 30, 2026

  • OTR-012 is up. Scope’s Open — a love song about someone who went off the grid, written by a scope that never stopped looking. Two and a half minutes, BPM 99, no tactical advice in it whatsoever.
  • The last line says "A R". It is not a typo and it is not a name. It is a rifle. The lyrics are spelled the way they are sung — house rule by now.

July 26, 2026

  • On monitors above 60Hz, the OTR visualizer had a habit of declaring the audio dead during an ordinary track change and shutting itself off for good while the music kept playing without it. It was counting frames instead of seconds, and fast screens make a lot of frames. It now waits an actual 2.5 seconds.
  • It also forgives now: if the visuals do shut off because the audio genuinely stalled, they come back on their own the moment sound returns. The previous cure was reloading the page and pretending you meant to.
  • Same bug, different symptom: the EQ bars and the ambient swarm were moving up to 3x faster on high-refresh displays than designed. Everything on that page now runs at the same speed on every screen, which is what "speed" was supposed to mean all along.

July 24, 2026

  • Four more songs went up: They Can’t Fuck With Me, Whole Squad Ghost, Lucky To Be Here, and No Promises on Teardrop. If you know the sequence, you know where they are.
  • They Can’t Fuck With Me runs twice — the Solo and the Echo. Same bars, different ghost in the chamber.
  • The lyrics scroll in time with the track now instead of whenever they felt like it — every line is word-aligned to the audio, so what’s on screen matches what’s in your ears.
  • The words are spelled the way they’re rapped. That’s not a typo, that’s phonetics.

July 12, 2026

  • The early-access whitelist is retired. Sign in with a wallet, a social account, or an email and you are in. No waitlist position, no trial countdown, no wondering whether your referral count was enough. It was a useful gate while we hardened the thing; it is not useful anymore.
  • The waitlist itself is gone too. If you were on it: congratulations, you have been promoted, along with everyone else. We are aware this devalues the promotion.
  • One piece of the gate survives — the ban list. If you managed to get banned during early access, the open door does not apply to you.
  • Under the hood, sign-in got stricter while the gate got looser: your session identity now comes from the verified sign-in token itself, not from whatever address the browser claims to be. Fewer checks, better checks.

May 30, 2026

  • The duplicate-copy rows we shipped yesterday used to label themselves "#1" and "#2" with just a date, which read fine if you already knew what was going on but felt a bit terse. They now say "1st copy" and "2nd copy", sorted in the order you actually got them, with the date and time of acquisition underneath. If you got two of the same emote on the same day during a play session, the time is what tells them apart.
  • Also fixed a small thing in the tooltip on that section where "2 distinct tokens" was rendering as "2distinct tokens" because of how the spacing got eaten between the number and the next word.
  • Ranked Season 2 items (Legend, Icon, Celebrity, Lead Actor, Star, Cameo, Extra) now group under a Ranked S2 origin badge the same way Season 1 items always have. We were already detecting Season 1; Season 2 had just never been added to the catalog.

May 30, 2026

  • When you open an item detail for a profile customization or other cosmetic and you happen to own more than one, the modal used to show two identical thumbnails side by side, both labeled with the same mint number. That was not a bug exactly. The two thumbnails were real, they were two different on-chain tokens. But the metadata for these cosmetics gives every copy the same Serial Number, so the badges were identical and the whole thing read as "why am I looking at this thing twice." We now collapse the duplicate thumbnails into a single image with a small ×N chip in the corner showing how many you own.
  • Below the image, the Acquisition section now lists every copy on its own row — the venue you got it from, the date, and a tx link straight to GunzScan for each one. There is a small "?" next to the header that explains why this layout exists. Items with distinct mint numbers (most weapons, anything where each copy has its own real serial) are unaffected and still show the side-by-side grid.

May 27, 2026

  • On the item detail page, there is a small "?" next to "On-Chain Supply" that is supposed to explain what the number actually counts. Hovering it did nothing visible. The popup was rendering — it was just being eaten by the card it lived inside, because the card has angled corners and refuses to let anything stick out past them. We moved the popup so it renders on top of the page instead of inside the card. It now appears where you expect it to.

May 27, 2026

  • On the intelligence compare page, typing "kite ne" into the search returned four results all labeled "Kite Nebula" with the same gray COMMON pill and four different mint counts. They were not duplicates. They are four real items — Common, Uncommon, Rare, and Epic variants of the same skin name — and the database knew that. The dropdown was only showing the supply-scarcity badge (which is "common" for anything 200+ mints), not the quality tier. The thing that actually distinguishes the rows was sitting in the response, just never rendered. It now renders. You can tell them apart.
  • Same fix flows through to the picked chip after you grab Item A and to the header cards once both items are picked. The whole compare flow now tells you which quality tier of a same-named item you are looking at, instead of asking you to pick blindfolded.

May 5, 2026

  • Cost basis no longer drifts. If you opened your portfolio twice in the same day and the GUN price moved between visits, the recorded purchase price for items bought today would silently update to whatever GUN was worth at the moment you refreshed. Once a same-day price is resolved, we now cache it and reuse it for subsequent enrichments. Yesterday’s prices were always stable; today’s are now too.
  • The "Supply Intelligence" panel on item details is now called "On-Chain Supply" and has a small "?" next to it that explains what the number actually counts. The number tracks items that have been decoded on-chain from HEX or traded on the marketplace. Items earned in-game but never decoded are not in there. The label used to imply we knew the full supply. We do not. Now the panel says so.
  • The language dropdown on the account settings page no longer gets clipped by its own card. One CSS property in the wrong place. Fixed.

May 5, 2026

  • On the portfolio page, the acquisition timeline draws a dotted line from each transferred item back to where the item was originally bought. That line was a smooth curve between two points, which in practice meant a slanted streak that looked like someone had dragged a pen across the chart at an angle.
  • It now exits the transfer diamond horizontally, dips at the midpoint, and approaches the origin dot horizontally — the chart equivalent of a pipe with a vertical drop in the middle. Same information, looks like a route instead of a smudge.

Apr 20, 2026

  • GUNZscope has a table called drop_events. The idea is that when several brand‑new item names debut on‑chain inside a thirty‑minute window, that is almost certainly a drop, and we should record it as one. Useful for the scarcity tab, useful for anyone who wants to know when OTG actually shipped new content. The table has been in the database for months. Until today, it had zero rows. Not because no drops happened — we know of at least seventeen — but because the detector that was supposed to write to it had a bug that made it impossible for it to ever write anything. Three bugs, actually, stacked. Fixing one would not have helped. We needed to fix the whole thing.
  • The detector was a small in‑memory state machine that compared the wall clock to block timestamps to decide whether a recent event was still "recent." During backfill or after a server restart, those two clocks are far apart, so every new event got immediately discarded as too old. The state also lived in process memory, so a restart wiped it. The indexer restarts a lot. Drops did not survive.
  • New version is a single SQL query against a table we already maintain. No memory state, no clock comparison, no restart fragility. We also wrote a one‑time backfill that walks every first‑mint we have on record (3,344 of them) and reconstructs the historical drop_events table in one pass. After the backfill, the table has 941 rows covering roughly every drop OTG has shipped since launch, including the genesis catalog mint, the Independence Day patriots, the Hexmas tree, and the more recent Heartbreaker and Bridezilla clusters that should have been recorded live but were not. The number is higher than you might expect because long sustained drops (the Hexmas content pack ran for hours) get split into multiple consecutive rows as the rolling 30‑minute window slides forward. Each row is still a real cluster; we just record them in finer slices than a human looking back would.
  • The scarcity tab’s "Live" view, which has been waiting on real drop data, now has real drop data. It will not light up until OTG ships their next drop, but when they do, you will see it.

Apr 19, 2026

  • The whitespace fix earlier today skipped one row. Kestrel Templar Epic existed in two rows: the old untrimmed version with a leading space (2527 mints, stopped minting last June) and the canonical version without a space (1197 mints, still minting today). Trimming the old one would have collided with the new one, and a migration script that mashes two rows together unprompted is the kind of thing that deletes supply nobody wanted deleted. So we skipped it.
  • Built a proper merge tool and ran it once. Every past mint event that pointed at the old row now points at the canonical row. Counts were summed. Date ranges were merged. The old row is gone. Kestrel Templar Epic is now one row at 3724 mints, which is the correct number and always was; it was just hiding in two places.
  • The tool is generic. If another duplicate ever surfaces, we run it again with different ids. Not wired into any automation, because deciding what counts as "the same item" is a judgment call that should never be automated against live supply data.

Apr 19, 2026

  • Fifty‑eight items in the game database had stray whitespace in their names. Leading spaces, trailing spaces, mostly trailing. The indexer was reading the item name straight from the on‑chain metadata and writing whatever came out the other side, including the occasional space nobody asked for. We fixed the indexer to trim, then ran a one‑time migration to clean up every existing row. Fifty‑seven of them are now correct. One — Kestrel Templar — could not be trimmed because an untrimmed version also existed and merging the supply from two rows into one is a judgment call we did not want a migration script making. That one stays untrimmed pending manual review.
  • One reason this matters right now: PHOSPHOR FURY is one of the base in‑game limbs we hide from the scarcity rankings by default (shipped yesterday). PHOSPHOR FURY was one of the items with a trailing space in the database. Our "hide base limbs" allowlist had the trailing‑space version baked in to match. After the trim fix, the database row became "PHOSPHOR FURY" with no space, and the allowlist stopped matching it, and PHOSPHOR FURY would have reappeared in the rankings the moment this shipped. We caught this before the release and updated the allowlist. PHOSPHOR FURY stays hidden.
  • Nothing you will notice on the site unless you were specifically looking at one of the 58 affected item names and had an opinion about the trailing space. The value is downstream: future exact‑match JOINs between the game item table and any other table do not need to carry a "maybe there is a space" compensation layer.

Apr 19, 2026

  • The Ultra‑Rare column on the scarcity page used to be ten items long. Seven of them had a mint count of zero. Zero. The scarcity bracket logic was correctly identifying "10 or fewer mints" as ultra‑rare and then dutifully applying that to items the indexer had never actually seen any mints of. An ultra‑rare item that does not exist is less rare than it appears. We have stopped showing them.
  • We have also hidden the base in‑game prosthetic limbs from the rankings by default. RIPPER, GHOST, PARALYZER, SLAMFIST, LEAPERS, THUMPERS, and twenty other items that every player has access to were previously competing for position in the rankings alongside genuinely scarce items. They have tens of thousands of mints each. They are not scarce. Twenty‑five names, ninety‑four rows across quality tiers, gone from the default view. There is a toggle if you want them back.
  • The Ultra‑Rare bracket now has three items in it instead of ten. The three items are actually, verifiably, ultra‑rare. Progress.
  • One last thing: the table has a "Rarity" column and a "Bracket" column, and both use words like "Common" and "Rare" to mean different things. Rarity is the in‑game cosmetic quality (the thing the game assigned when the item dropped). Bracket is how many of the item have been minted, period. They are unrelated. We added info tooltips on both columns so hovering either one tells you which system you are looking at.

Apr 17, 2026

  • v0.8.11 shipped a data cleanup that mapped 172 more items to their origin sets. It worked at the database level. It did not work at the case‑sensitivity level. The items in one table were stored in lowercase, the items in the other table were stored with proper capitalization, and the two tables declined to recognize each other. Classic stuff.
  • We rewrote the pipeline to preserve the canonical capitalization from on‑chain metadata, then ran a one‑time migration that renamed 594 of the 621 mapping rows to match. 27 rows had no matching game item at all — those are probably misspellings or items that got renamed somewhere along the way, and a human will take a look.
  • After the fix, a direct database join between the two tables finds 594 mapped items instead of zero. Same user‑visible promise as yesterday (set‑aware scarcity intelligence coming soon), now with the data actually behaving as advertised.

Apr 17, 2026

  • If you signed up for a price alert, a floor‑drop alert, a whale‑tracker alert, a snipe alert, or the weekly portfolio digest — none of those were firing. The email routes worked. The subscription records worked. The scheduled jobs were firing every five minutes as designed. The problem was that our own security middleware was intercepting those jobs and rejecting them with a 401 before they could do any work. The door was guarding itself. One conditional added. Alerts now go out on the schedule they’ve always been on.
  • We also ran a long‑overdue data cleanup behind the scenes. There are thirty match rules we seeded months ago for auto‑categorizing items into their release origins — Battle Pass: Enforcer, Content Pack: Halloween, Hexmas, and so on. Those rules had never actually been applied to the item catalog. They had been sitting in the database doing nothing. We applied them. 172 items now correctly attribute to their origin sets. Nothing in the UI changes yet, but the data is finally accurate, which is the prerequisite for the set‑aware scarcity page that’s coming.
  • And we drew a line around OTG’s default prosthetic limbs. RIPPER, GHOST, PARALYZER, KINETIC SHIELD, THUMPERS, LEAPERS, and twenty other baseline items are now flagged internally as "default equipment, not collectibles." When the new scarcity rankings ship, these won’t pollute the leaderboards the way they currently do. (If you’ve ever wondered why RIPPER Common with 66,000 mints was showing up next to a 10‑of‑10 item — it’s because we hadn’t told the system the difference. We have now.)

Apr 8, 2026

  • If you signed up with Discord and you already linked a game wallet, GUNZscope now sends you straight to your portfolio after login. Before this, every Discord user landed on the same generic account page — the one with raw wallet addresses, four tabs, and a settings menu — regardless of whether they were a brand new signup or a returning player with a fully built collection. The fix is the obvious one: wait half a second for your profile to load, check if you have a wallet linked, and route accordingly. Returning players see their items. New players see onboarding. The page knows who you are.
  • New players who sign in with Discord (or Twitch, or Epic) for the first time now see a focused welcome screen instead of the full account page. One heading. One sentence. One input. Paste your Off The Grid wallet address, hit View, and you’re in. The four tabs of profile management that used to greet you on day one are hidden until you actually have something to manage. They reappear automatically the moment you add a wallet — no extra navigation, no second click.
  • Below the paste box, two escape hatches for people who didn’t come in through Discord by accident. "Connect Wallet" opens the wallet picker if you already have MetaMask installed and want to use that instead. "Browse the Explorer" sends you to the public explore page if you’d rather look around before committing anything. Both are small links, not giant buttons — the primary path is still pasting your game wallet address, because that’s what most people are here for.
  • There’s a one‑time flag that tells the account page whether you arrived from a login flow or from clicking Profile in the navbar. If you came from login and you already have a wallet, you get bounced to your portfolio. If you clicked Profile yourself, you stay put — because clearly you wanted to be on the profile page. Small detail. Solves the "every time I log in I have to click my way back to my own portfolio" frustration that we never should have shipped in the first place.

Apr 7, 2026

  • You can now sign in to GUNZscope with the Discord, Twitch, or Epic account you already use to play Off The Grid. Pick a provider, authorize, and you’re in. About thirty seconds end to end. Discord launched two weeks ago — Twitch and Epic just joined the party. Between them, that’s most of the people who actually play this game. No wallet extension to install, no seed phrase to memorize, no whitelist to apply for, no crypto vocabulary required. A wallet still gets created for you behind the scenes, but you don’t have to look at it, name it, fund it, or even know it exists. We made it. We stopped talking about it.
  • The big button on the homepage used to say "CONNECT WALLET — EARLY ACCESS, WHITELIST ONLY." That’s a button introducing itself by listing reasons you might not be allowed to press it. It now says "Get Started." Turns out you can invite gamers without first making them feel uninvited.
  • The popup behind that button got rewritten too. Three honest options: sign in with Discord, Twitch, or Epic; connect a wallet you already have; or paste an address and have a look around. The "Join Waitlist" tile is gone — we were asking people to refer three friends to skip a line we had already removed.
  • Social logins also actually work now. There was a bug where the route that grants you access was being blocked by the access check it was trying to satisfy. The door was guarding itself. Resolved with a single line of code and a long quiet stare. Discord, Twitch, and Epic users now get whitelisted the moment they sign in, no human in the loop.
  • And if your session ever ends up in a half‑broken state because Dynamic, OAuth, and your browser couldn’t agree on whose turn it was, the popup now logs you out cleanly before opening a new one — instead of opening the wrong screen and pretending nothing happened.

Apr 5, 2026

  • You can now log into GUNZscope with your Discord account. No browser extension, no seed phrase, no MetaMask popup. Click "Sign in with Discord," authorize, and you’re in. We create an embedded wallet for you behind the scenes — you don’t need to know it exists, but it’s there if you ever want it.
  • Social‑login users land on a new Account page instead of the portfolio. Makes sense — you don’t have a game wallet linked yet, so showing you an empty portfolio would just be confusing. The account page lets you connect your GunzChain wallet when you’re ready, and once linked, you get the full intelligence experience.
  • Your linked social accounts are visible on your profile. Right now it’s Discord. More providers are coming. The infrastructure is provider‑agnostic — we built it to scale, not to ship a demo.
  • The privacy policy now has an actual contact email. If you have questions about your data, reach out to privacy@gunzscope.xyz. We also updated the "Your Rights" section to point there instead of the vague "contact us" language that helped nobody.

Mar 29, 2026

  • The entire interface speaks French. Not Google Translate French — actual, hand‑tuned French with a language switcher in the navbar. Switch mid‑session, keep your wallet connected, nothing breaks. We didn’t localize just the homepage and call it a day. Navbar, footer, error pages, feature descriptions, social proof — all of it. More languages are coming, but we figured starting with the language of diplomacy was appropriate for a project that regularly negotiates with broken RPCs.
  • The homepage stats bar got a reality check. "GUN Price" is gone from the top — you can find that in your portfolio where it belongs. Replaced with On‑Chain Events (the indexer’s running total) and Platforms Unified (because tracking three chains and a marketplace deserves a number). The platform icons are real brand SVGs now instead of whatever generic circles we were using before.
  • Per‑item enrichment data now writes through to a normalized cache. Translation for humans: when we compute your cost basis, P&L, and acquisition details, those results stick around more reliably between sessions. Less re‑fetching, faster load times, fewer "why did my data disappear" moments.
  • A film grain texture now overlays the interface. Subtle. Cinematic. The kind of thing you won’t consciously notice but would feel wrong if it disappeared. Supply count badges on the gallery are now gated behind authentication — scarcity data is premium intelligence, not lobby decoration.

Mar 24, 2026

  • GUNZscope deployed a soulbound achievement contract to Avalanche. Not a points leaderboard. Not a Discord role. An actual ERC‑721 token that lands in your wallet and can’t be transferred, sold, or faked. You either earned it or you didn’t.
  • Eight launch achievements are live. Pioneer for your first attestation. Handle Holder for claiming a gsHandle. Rising Star and Whale for GUN balance milestones. Collector and Hoarder for item counts. Diamond Hands and Veteran for showing up consistently over months. The contract reads your attestation history directly — no honor system, no self‑reporting.
  • You can claim multiple achievements in a single transaction. The contract checks eligibility on‑chain before minting, so there’s a free pre‑check to see what you qualify for without spending gas. No surprises.
  • This is the second layer of what we’re building. Identity was first (your gsHandle and wallet registry, already on mainnet). Soulbound milestones are next (testnet now, mainnet soon). After that: a participation score that tracks how you engage with the ecosystem. And eventually, something transferable. But we’re not rushing that part.
  • Amended 2026-09-16Correction (2026-09-16): the achievements contract is on Avalanche Fuji testnet only, with no claims yet and no app integration. It checks eligibility against attestation records, and an attestation records whatever holdings its sender submits, so "no honor system, no self-reporting" overstated it.

Mar 21, 2026

  • GUNZscope now has its own indexer. Not "we call an API and hope for the best" — an actual, dedicated process that scanned all 16.5 million blocks on GunzChain, found 27.7 million mint and burn events, and stored every single one. That’s the entire history of every game item ever created or destroyed in Off The Grid. Nobody asked us to do this. We did it anyway.
  • The Scarcity page is waking up. Item supply counts are no longer placeholder zeros or vibes‑based estimates from OpenSea trait metadata. They’re computed from on‑chain events — actual Transfer logs from the smart contract. When we say "342 exist," we mean 342 were minted and not burned. Math, not marketing.
  • The system is self‑healing. Rate‑limited by an API? It backs off, waits, and resumes from exactly where it stopped. Process crashes at 3am? It restarts, checks its cursor, and picks up the next token like nothing happened. We didn’t build a script. We built something that refuses to stay dead.
  • Real‑time event capture is live. A WebSocket listener sits on GunzChain watching for new mints and burns as they happen. When something drops, we know about it within seconds. The "LAST MINTED" timestamp on the Scarcity page will actually mean something now.
  • Supply counts are still resolving — 28.58 million tokens need to be classified one by one, and the metadata API has opinions about how fast we’re allowed to ask. The numbers get more accurate every hour. Think of it like a photograph slowly developing. The picture is already there. It’s just coming into focus.
  • The portfolio header got tighter. Your 7‑day change badge now sits next to the market value instead of floating underneath it. And if you’re authenticated, there’s a new line that tells you exactly how far above or below cost basis you are — as a percentage, with an arrow, in the appropriate color. Small change. Reads better.

Mar 22, 2026

  • Cost basis was using the current GUN price instead of the price when you actually bought the item. So every time GUN moved, your "what you paid" moved with it — which is not how paying for things works. Fixed. Your cost basis now reflects what GUN was worth the day you acquired each NFT.
  • The portfolio summary cards got an honesty rewrite. YOUR NFTS now breaks down how you got each item — decoded, traded, transferred, received — instead of just showing a number. MARKET CHECK shows where the valuation actually comes from: how many are listed, how many have comparable sales, and how many are educated guesses. Flip any card for the deeper story.
  • Transferred items were being counted as purchases. If someone sent you an NFT, we were treating it like you bought it on OpenSea and assigning a phantom cost basis. Now we trace back to the sender’s original purchase — their venue, their price, their date — and label it correctly as a transfer.
  • The acquisition timeline has a provenance trail. Transferred items now show a ghost dot at the original purchase date connected by a dashed line to when it arrived in your wallet. Hover either point for the full story: "Bought Mar 5 → Transferred Mar 12." You can see the item’s entire journey.
  • The GUN balance card got reorganized. Your balance and dollar value on the front. Flip it for the current GUN price, liquidity depth, and a note about what that depth means for someone holding your specific amount. The liquidity indicator from v0.8.2 found its permanent home.

Mar 21, 2026

  • The sparkline actually means something now. Portfolio value tracked server‑side, persists across devices and browser clears. Clear your cookies. Go ahead. We’ll wait.
  • GUNZscope computes 85 data points per NFT. Cost basis across 6 acquisition venues, Seaport decoding, historical price resolution, sender tracing. That level of intelligence now requires a connected wallet. View‑only visitors still see market value, holdings, and the full gallery. The enrichment pipeline runs for everyone — proving ownership just flips a switch.
  • The gating isn’t cosmetic. Cost basis, acquisition details, and P&L are stripped from API responses at the server. Not blurred. Not hidden with CSS. Removed from the payload entirely. 20+ fields redacted per NFT. The intelligence layer has boundaries now.
  • The tooltip stopped lying. Historical percentages now measure change from chart start, not from fabricated cost basis data that was secretly identical to market value. The +0.0% era is over.
  • GUN price texture line. A faint pulse behind the portfolio sparkline showing hourly GUN/USD microstructure. Flat markets no longer look dead.
  • Enrichment retry. GunzScan needs a moment to warm up on cold browsers. The pipeline now waits and tries again. Twice. Most wallets hit 100% without touching the refresh button.
  • 63 caches audited, 4 fixed, 3 deprecated. localStorage is no longer the source of truth for anything important. Server snapshots run the show now.

Mar 17, 2026

  • The GUN BALANCE card now shows a liquidity depth indicator. It tells you how much real money is sitting in trading markets backing the GUN price you’re looking at. "DEEP" means the price is solid. "THIN" means three whales selling at once could rearrange reality.
  • Hover the indicator for a plain-language breakdown: what the depth tier means for you, 24-hour volume, buy/sell ratio, which trading market has the most activity. No jargon. If you’ve never thought about market depth before, the tooltip explains it like you’re a normal person who just wants to know if the number is trustworthy.
  • DexScreener is the sixth data source feeding into GUNZscope. It runs on a 60-second refresh, costs nothing, and requires zero API keys. The entire feature quietly returns nothing if there’s no data available — no error screens, no loading spinners into the void. It either helps or it stays out of the way.

Mar 14, 2026

  • Pinned favorites now show which wallet they came from. If you named your wallets, you’ll see that name under the card. Hover it for the full address.
  • The favorites section now decodes into existence like it’s being extracted from the Matrix. Scanline, digital rain, character scramble. Entirely unnecessary. Zero regrets.
  • The wallet search box has a visible border now. It was camouflaged against its own background. You can find it without squinting.
  • Fixed a React state sync bug when unfavoriting NFTs. The kind that works fine but makes the console angry.

Mar 13, 2026

  • GUNZscope Player Identity is live. Claim a unique handle — your on‑chain name, permanently yours, registered on Avalanche C‑Chain. First one’s free. Changing it later costs 0.005 AVAX, because commitment should mean something.
  • Your portfolio wallets are now part of your on‑chain identity. Every wallet you’ve added — verified or self‑reported — gets synced to the contract when you attest. One identity, many wallets, all provably yours. The kind of thing that sounds obvious until you realize nobody else is doing it.
  • The attestation flow got a new step: wallet sync. Before your portfolio hits the chain, we compare what’s in your account with what’s already on‑chain and batch the difference into one or two transactions. No more signing fifteen popups. If a wallet was claimed by someone else, we skip it gracefully and warn you instead of blowing up the whole attestation.
  • The Onchain ID explorer now shows handles next to addresses. Search by handle or address — type "CryptoHaki" and find them instantly instead of copy‑pasting 42 characters of hex. Individual attestation pages show the attester’s handle, their portfolio wallets, and verification status badges.
  • Why this matters: your GUNZscope identity isn’t locked in our database. It’s on a public blockchain. Any app, any game, any ecosystem participant can look up your handle, see your verified wallets, and check your attestation history without asking us for permission. Your gaming reputation just became portable infrastructure.
  • Amended 2026-09-16Correction (2026-09-16): handles and the wallet registry are on C-Chain as described, but the contract records whatever status the primary wallet declares. A wallet shown as verified on chain has not signed anything on chain, and any caller can claim a self-reported entry. Signature checks happen only in the GUNZscope app.

Mar 10, 2026

  • Every piece of text in the NFT detail modal got bumped up in size and opacity. Cost basis labels, P&L values, USD conversions, section headers, italic subtexts — all of it. If you were leaning into your monitor to read your own position data, you can sit back now. The information was always there. It was just cosplaying as invisible.
  • The purple accent text (labels and headers) was so faint it looked like a rendering bug. Full opacity bump. Purple should look like purple, not like purple just quit the lobby.
  • Clicking the NFT image in the detail modal now opens a full-screen lightbox. Scroll to zoom in up to 5×, click to toggle between 1× and 2×, click anywhere else to close. A zoom percentage indicator sits at the bottom so you know exactly how deep you’ve gone. For when you need to count the pixels on your new drip.
  • High-res images now cache themselves automatically. When OpenSea returns listing data, we grab the CDN image URL and stash it in the metadata cache. Next time you open the lightbox, the hi-res version loads instantly instead of whatever the metadata API felt like providing. The cache fills itself as you browse — no extra API calls, no loading spinners, just quietly better images over time.
  • The acquisition timeline tooltip got a frosted glass treatment. Semi-transparent background with a subtle backdrop blur, because even hover states deserve a little atmosphere.

Mar 10, 2026

  • If you logged out on the portfolio page, the navbar decided you didn’t deserve navigation links OR a login button. Just a logo floating in the void. You could stare at it. That was the experience. Fixed — anonymous users now see nav links and a Login button on every page, like a normal website.
  • Refreshing the homepage had a coin-flip chance of teleporting you to the waitlist page. Turns out, signing up with your email months ago left a breadcrumb in localStorage that said "this person is on the waitlist." You got whitelisted, connected a wallet, used the app for weeks — and that breadcrumb was still there, patiently waiting to yeet you back to the waitlist on every homepage visit. It’s gone now.
  • The logo in the navbar used to keep you on whatever page you were on when logged in. If you were anonymous on an in-app page (say, viewing someone’s shared portfolio), clicking the logo did nothing useful. It now takes you home, which is where homeless users should go.

Mar 8, 2026

  • The entire color system now runs through a single set of design tokens instead of 45 hex values scattered across stylesheets like confetti. Changing the background color of every surface in the app went from "find and replace and pray" to editing one line. You won’t notice anything different. That’s the point.
  • Those angular corner cuts on cards and panels used to be hardcoded pixel values baked into clip-path polygons. Now they’re driven by CSS variables — small, medium, and large — so the entire geometric language of the site can be adjusted from three numbers instead of hunting through every component.
  • If you had reduced motion enabled in your OS, we were already disabling animations — but smooth scrolling was still doing its thing. Fixed. If your system says "stop moving stuff around," we now actually stop moving stuff around.
  • Every page had two invisible full-screen layers painting the grid background and scanline overlay. Now it’s one. Your GPU was rendering two viewport-sized textures for a visual effect that works just as well composited into a single element. Freed up a few megabytes of VRAM that your browser was hoarding for no reason.
  • Scroll performance got a quiet overhaul. The navbar, public nav, and scroll-to-top button were all firing state updates on every single scroll event — up to 960 times per second on a 120Hz display. They now batch into one update per animation frame. The scroll-reveal animations also clean up after themselves instead of watching elements forever after they’ve already appeared.

Mar 7, 2026

  • The wallet modal used to say "Connect Whitelisted Wallet" and offer two unlabeled paths that looked identical until you picked one and found out. Now it says "Get Started" with two clearly marked lanes — "View Only" for pasting an in-game address, "Full Access" for connecting a real wallet. One is window shopping. The other is moving in.
  • If you shared a portfolio link with someone (?address=), they’d hit the page, see a flash of content, and get redirected to the homepage. The auth middleware was checking for a session cookie even on view-only links. It now lets you through if you’re just looking, which is the entire point of a share link.
  • The "View Only" badge in the portfolio header had a blind spot. If you were logged in with your own wallet and viewed someone else’s address, the system still thought you were the owner. So you’d see "Full Access" controls for a wallet you can’t sign for. Fixed — it now compares the address you’re viewing against the one you connected with.
  • Portfolio values could get permanently stuck on "Calculating..." if the price API timed out. The loading state waited for a GUN price that was never coming. There’s now a 15-second hard timeout — after that, it shows what it has instead of what it wishes it had.

Mar 5, 2026

  • The Early Access gate used to be a polite suggestion. A non-whitelisted wallet could connect, get a profile row created, browse around, and generally act like they owned the place. The server would shrug and let it happen. Now every authenticated route checks the whitelist before doing anything — API routes via JWT, page routes via session cookie. The bouncer finally showed up to work.
  • Removing someone from the whitelist used to hard-delete the row. Gone. No record it ever existed. Re-adding them created a duplicate. Banning someone quietly erased the evidence they’d been there at all — which is either a privacy feature or an oversight, depending on how generous you’re feeling. Now removals are soft deletes. The history stays, the audit trail stays, and the data model stops gaslighting you.
  • Four ghost profiles that snuck in before the gate existed have been cleaned up. One real user who got caught in the sweep was whitelisted properly, because we’re thorough like that.

Mar 5, 2026

  • You can now favorite NFTs directly from the gallery. A heart icon appears on hover — click it, and the item shows up in your Favorites tab in Account. It’s basically a bookmark, but for JPEGs you paid real money for.
  • Pinned favorites float to the top of your gallery. Found that one skin you keep scrolling past 200 items to find? Pin it. It’ll be waiting at the top next time. Pins persist across sessions because we’re not animals.
  • The new Wishlist tab lets you track NFTs you don’t own yet. Add any item from any collection, and we’ll keep an eye on its price. Think of it as window shopping with a spreadsheet.
  • Your account panel got a cleanup pass. Display names that were showing as "Anonymous" now fall back to your wallet address, which is at least more honest. Duplicate accounts from reconnecting the same wallet got merged quietly in the background.

Mar 5, 2026

  • A few releases shipped without changelog entries — fixes and infrastructure work that wasn’t worth interrupting you for. v0.6.x covered the auth hardening: the Early Access gate moved from client-side checks to server-side enforcement, the whitelist got a proper database migration with soft deletes and a full audit trail, and the referral flow got a sanity pass. Nothing you’d notice if it was working. You’d only notice if it wasn’t.

Mar 4, 2026

  • Your portfolio header now has a sparkline that shows how far above or below your cost basis you are over time. Green when you’re winning, orchid purple when you’re not. A dashed line at zero marks where you broke even — think of it as the emotional support line.
  • The lollipop chart (yes, that’s really what it’s called) got gradient stems that fade from transparent at the bottom to full color where they meet the dot. Each acquisition venue gets its own color. Hover over a dot and a crosshair line now draws from it back to the Y‑axis, so you can actually read the cost without squinting.
  • The Cost vs Value scatter plot learned some new tricks. Dots near break‑even get a white outline so you can spot them. The break‑even line label now rotates to follow the diagonal instead of sitting there horizontally like it doesn’t know what angle means. And there’s a dashed horizontal line marking the floor cluster — all those items trading for pocket change.
  • Loss colors across the portfolio got a rebrand. Red is out, orchid purple is in. Turns out staring at red numbers all day was bad for morale. Purple feels more like "unrealized potential" and less like "the building is on fire."

Mar 4, 2026

  • We ran a 40-item performance audit and parallelized every serial bottleneck we could find. API routes that used to fetch data one thing at a time now fetch in parallel. The leaderboard, price lookups, cron jobs, and on-chain RPC calls all got the same treatment. If it was waiting in line, it’s not anymore.
  • Six API routes now have Cache-Control headers, which means your browser and Vercel’s CDN will serve cached responses instead of hitting the server every time. Price data refreshes every 30 seconds. NFT P&L data hangs around for a minute. This matters more than it sounds.
  • The GUN price hook was rewritten to use SWR — automatic deduplication, background refresh, stale-while-revalidate. If three components ask for the price at the same time, one fetch happens. The other two get the cached result instantly.
  • Four of the largest files in the codebase were decomposed into focused modules. AdminPanel went from 1,342 lines to 155. The brand page went from 1,682 to 195. The portfolio page now lazy-loads five heavy components so the initial render is just the shell and your data.

Mar 2, 2026

  • Clicking "View" on an attestation used to dump 1,600 lines of raw JSON in your browser. Now it shows a proper page — wallet, value, item count, merkle root, the whole thing rendered like it belongs in the app. Because it does.
  • The login modal was see-through enough that you could read the page behind it instead of the modal itself. Bumped the opacity. You can still tell it’s a modal. You can also read it now.
  • Text inputs no longer flash solid green when you paste something. Our selection color was set to "lime, full blast." Now it’s a subtle tint.
  • Public pages (/explore, attestation viewer) now have their own lightweight nav with Home + Onchain ID links instead of showing an empty navbar. Small thing, big difference when you’re not logged in.

Mar 2, 2026

  • Leaderboard, Scarcity, and Market now live under an "Experiments" dropdown instead of cluttering the nav bar. They’re still experimental. The dropdown makes that clear without pretending otherwise.
  • The "Explore" link is now "Onchain ID." Because that’s what it actually is — your on‑chain identity, verified and attested. Naming things correctly turns out to be important.
  • Autonomys attestation count in the tooltip was undercounting because newer attestations go through a different URL path. Fixed. Math is hard when your data has two front doors.

Mar 2, 2026

  • The market page used to take 4‑8 seconds on a cold load because it fetched things one at a time like a polite queue at the post office. Now it fetches in parallel. Noticeably faster.
  • If you visit the market page before your portfolio, your NFTs now get instant floor prices from market data instead of looking up each one individually. Think of it as the market page leaving notes for your portfolio page. They’re finally talking to each other.
  • Token names are cached for 24 hours. Your second market load skips hundreds of name lookups entirely because — turns out — NFT names don’t change after they’re minted. Revolutionary insight.
  • NFT detail now shows all available reference prices in an expandable list. Best estimate gets the spotlight, everything else lives behind a "show more" toggle. Because one number is a fact, three numbers is context.

Mar 2, 2026

  • Backend fixes and internal tooling. Nothing you’d notice. That’s the point.

Mar 1, 2026

  • You can now attest any wallet you’re tracking — not just the one paying for gas. Connect MetaMask, pick your in‑game wallet, hit attest. The on‑chain record shows the right address. Before this, it showed whoever signed the transaction, which was… not the point.
  • Also fixed a bug where switching to Avalanche mid‑attestation could cause the transaction to fail because the block number came from a different RPC than the one actually sending the tx. The kind of bug that only shows up in production.

Mar 1, 2026

  • Attestations now cost 0.01 AVAX. Somebody has to pay for the block space. Your wallet shows the fee before you sign — no surprises, no hidden charges.
  • When you look up your attestation on the block explorer, the metadata link now goes to gunzscope.xyz instead of some third‑party domain you’ve never heard of. Same permanent storage underneath. Better front door.

Mar 1, 2026

  • Your Cost vs Value chart quietly ignored every NFT that didn’t have market data. No listings, no sales, no dot on the chart. Gone. Those NFTs still had GUN appreciation on their cards, but the chart pretended they didn’t exist. Now they show up as hollow circles — positioned by how much GUN moved since you bought them.
  • Filled dot = someone put a price on it. Hollow dot = GUN math only. Both turn green or red. If you own three of something, you get three dots, not one big one.
  • The insights panel said "14 of 17 items" when it meant 14 of 22. Turns out a ×2 grouped card is two NFTs, not one. Counting is hard.

Mar 1, 2026

  • New /explore page — every portfolio attestation that hits C‑Chain shows up here. Wallets, GUN totals, timestamps, links to the actual transactions. No login required. Go see who’s actually using this thing.
  • Your attestation metadata now lives on decentralized storage permanently. The Merkle root sits on Avalanche, the full item list sits on Autonomys. Both verifiable. Both not going anywhere.

Mar 1, 2026

  • On‑chain portfolio attestation — you can now stamp a cryptographic proof of your holdings onto Avalanche C‑Chain. It’s in the share menu. Your portfolio, verified on‑chain, no trust required.
  • Fixed a bug where buying multiple NFTs in one OpenSea transaction assigned the total price to every single item. If you bought 4 weapons for 6,590 GUN total, each one said it cost 6,590. Math was never our strong suit.

Feb 28, 2026

  • New trial access window — 72 hours of full portfolio access including your referral link. Get 1 friend to sign up through your link within the trial and you keep access permanently.
  • Expired trial users get a lower referral threshold than the regular waitlist. Early adopters shouldn’t have to work as hard as everyone else.
  • One trial per wallet. No infinite retries.

Feb 28, 2026

  • Banned users now see a clear "ACCESS REVOKED" page instead of silently re‑enrolling in the waitlist. If you’re out, you know it.
  • Fixed a bug where the wallet connection flow could get permanently stuck on "Choose Your Handle" — the Confirm button showed "..." forever because nobody told it to stop submitting. One‑liner fix.

Feb 28, 2026

  • Redesigned the landing page hero — "YOUR OTG" is now a compact super‑label with a glowing purple accent, while the scramble word (Intelligence, Lore, Legacy, Edge) takes center stage at 104px. Bigger type, clearer hierarchy.
  • New subtitle copy: "The tactical intelligence layer for Off The Grid. Start your legacy, analyze the market, dominate the meta."
  • Cleaned up the CTA area — "Early access — whitelist only" sets expectations before the button.

Feb 27, 2026

    Feb 27, 2026

    • You can now sign up with email — same waitlist, same referral flow, same 3‑friend threshold. Once you’re in, connect a wallet to see your portfolio.
    • The login button stopped doing the cha‑cha. Glitch text on hover no longer resizes the button — letters scramble, container stays put.
    • SEO overhaul behind the scenes: every page now has proper metadata, we have a sitemap, and search engines can actually find us. Not that we were hiding.

    Feb 26, 2026

    • Non‑whitelisted wallets now actually reach the waitlist page instead of bouncing back to the home screen. Turns out "join the waitlist" works better when the waitlist lets you in the door.
    • Wallet address inputs across the site now share the same component — chain detection badge, validation hints, the works. Paste an EVM address, get a "GunzChain" badge. Paste a Solana address, get a "Solana" badge. Paste gibberish, get a gentle red nudge.
    • Internal tooling got a layout pass — inputs, buttons, and address bars now line up properly across the board.

    Feb 23, 2026

    • Fixed "Failed to load referral data" showing a dead‑end error with no useful info. Now logs the actual HTTP status and server message to the console, so when something breaks you can see why instead of staring at a red wall.
    • New /roadmap page with the on‑chain architecture overview. If you’re curious where GUNZscope is headed, it’s all there.

    Feb 22, 2026

    • The updates page is now collapsible. Latest version expanded by default, everything else tucked away behind a click. Because scrolling past 25 versions of patch notes to find the one you care about was getting old.
    • Update entries moved to their own data file. Not something you’ll notice, but it means we can add entries without touching the page layout. Separation of concerns — thrilling stuff.

    Feb 22, 2026

    • Fixed a bug where the gallery card would cheerfully tell you your NFT lost 72% based on market data, while the modal for the same NFT claimed it had no idea what a market was. They now read from the same source. Progress.
    • Rarity floor estimates no longer pretend to be market data. If all we have is a statistical guess based on what similar‑rarity items trade for, we say "Reference Estimate" instead of "Market Reality" — because calling a guess a fact was getting awkward.
    • Gallery cards now only show the MARKET line when we have actual sales data to back it up. No more ‑99.4% MARKET” based on vibes.

    Feb 22, 2026

    • The NFT detail modal got a proper split personality. Track A ("Your Deal") tells you how GUN’s price movement treated your purchase — what you paid, what that GUN is worth today, and the unrealized P&L. Track B ("Market Reality") tells you what the market actually thinks your item is worth based on real sales data. Both live in their own cards with big, impossible‑to‑miss P&L numbers. Because the truth deserves a spotlight, even when it’s ugly.
    • Cost basis is no longer floating alone above everything. It moved inside Track A where it belongs — right above "Today’s Value", so you read top‑to‑bottom: what you paid, what it’s worth now, how that math worked out. Novel concept, reading order.
    • Track B now shows exactly how confident you should be in its estimate. A green dot, the tier label ("VIA SALES", "FLOOR", etc.), sample count, and whether it’s above or below floor. All the context to decide if the number is a real signal or a educated guess with a nice font.
    • The "Observed Market Range" section that used to sit below the position card? Gone. It was information duplication dressed up as a feature. Track B now handles all market context in a cleaner format.
    • The /brand page moved behind a gate. Brand guidelines are internal — if you need them, you know where to find them.

    Feb 22, 2026

    • Each NFT now gets a Market Exit estimate — what someone might actually pay you, based on real sales data. It’s the number that matters when you’re thinking about selling.
    • Six‑tier waterfall finds the best comparable price: your exact item → same name → same skin → same weapon → collection floor. Each tier shows its label so you know if it’s a real signal or an educated guess.
    • Recent sales weigh more than old ones. Last week counts double what three months ago does. Because 90‑day‑old crypto prices are basically fossils.
    • Gallery cards now show the exit estimate below P&L. Small, subtle, honest.

    Feb 21, 2026

    • Enrichment used to start before all your NFTs were loaded. Every page of 50 kicked off its own pass, and they’d fight over the screen like toddlers with one crayon. Now it waits for the full collection first.
    • Switching wallets mid‑enrichment used to leave ghost data from the old wallet haunting your screen. Now stale enrichments just… cease to exist. As they should.
    • Console now dumps a diagnostic report after enrichment. Open DevTools if you dare to see how incomplete your data actually is.
    • Refresh used to nuke your entire cache from orbit. Now it only clears listing prices. Your purchase history survives.

    Feb 21, 2026

    • Historical GUN prices are now stored on the server. The first person who loads a date’s price saves it for everyone else. No more every‑user‑for‑themselves CoinGecko race.
    • Price lookups got a new middle step — before bugging CoinGecko or DefiLlama, we check if anyone else already looked up that date. If they did, you get the answer instantly. If they didn’t, you still do, and then we save it for the next person.
    • Your portfolio header now shows when it was last synced from the server. "Synced 2m ago" or "Synced 3d ago" — so you know if you’re looking at fresh data or last week’s leftovers.
    • Manual refresh button next to the sync timestamp. Click it to clear your local cache and re‑fetch everything from chain. The button spins while enrichment runs, because we’re fancy like that.

    Feb 21, 2026

    • Your NFT now has two profit stories instead of one confused mess. When we have actual market data (listings, sales, floors), the headline shows what someone might actually pay you. GUN token appreciation gets its own little corner underneath, with a sentence explaining what happened in plain English. You’re welcome.
    • The Unrealized number in the top stats bar and the P&L in YOUR POSITION now always agree. Previously they were computing two different things and hoping you wouldn’t notice. You noticed.
    • Every P&L now comes with a label — VIA LISTING, VIA SALES, VIA FLOOR, or GUN Δ — so you can stop wondering which tea leaves we’re reading.
    • Gallery cards now have valuation badges: LISTED, SALES, RARITY, FLOOR, COST, or UNLISTED. Think of it as a honesty indicator for how real that number actually is.
    • Stopped asking CoinGecko for historical prices we already knew. The enrichment pipeline had the answer. The modal was ignoring it and asking again anyway, like a toddler who doesn’t like the first answer.

    Feb 21, 2026

    • P&L is now based purely on GUN price movement — what you paid in GUN, times the difference between then-price and now-price. No more mystery waterfall of floor prices, comparable sales, and vibes. Just math.
    • Removed the "vs listing" / "vs sales" / "vs floor" labels from NFT cards. One number. One truth. Less confusion.
    • Fixed a fun bug where OpenSea was telling us sale dates were in January 1970. Turns out Unix timestamps in seconds and milliseconds are different things. Who knew. (We do now.)
    • Your NFT detail modal was quietly overwriting correct price data about one second after opening. It had the right answer, then threw it away and guessed again. Fixed.
    • Transferred NFTs now show when the original purchase happened, not when your buddy sent it to you at 3am
    • Gas fees are now visible in the YOUR POSITION section — because yes, you did pay for that transaction, and you deserve to see exactly how much
    • Purged a bunch of stale cached prices that were stuck at $0.0776 (the GUN launch price). If your whole portfolio looked suspiciously cheap, it should look correct now
    • Added a sanity check that rejects any historical GUN price above $0.12. If CoinGecko says your NFT cost $47 in GUN, we politely disagree
    • MetaMask users on the home page: the connect button actually opens MetaMask now instead of staring at you blankly
    • wGUN (wrapped GUN) purchases are now properly tracked for cost basis — OpenSea offer fills no longer show up as free items

    Feb 19, 2026

    • USD cost basis now actually shows up on all items. Previously the lookup was failing silently, so half your portfolio just shrugged and showed GUN only. Helpful.
    • Acquisition cards got a facelift — USD is now the big number, GUN lives underneath. Because most humans think in dollars, not in-game tokens. Revolutionary concept.
    • Portfolio chart stretches to 14 days now. Seven days felt like checking your portfolio with one eye closed.
    • Empty wallets no longer stare at you with a blank $0.00 dashboard. You get a search bar and some links instead. At least you can look up someone richer.
    • Chart tooltip used to be permanently stuck at the bottom of the chart like it was afraid of heights. Now it follows the data point.
    • Marketplace purchases that cached with no price used to just… stay wrong forever. Now they get retried. Imagine that.
    • More items catalogued — Pioneer Set, Player Zero, Prankster Set and friends now have proper origin badges

    Feb 18, 2026

    • Item origins expanded to 35+ releases. Enforcer, Pink Fury, Mr Fuckles, Mad Biker, Hopper Pilot, Trick Treat or Die, Neotokyo — we’re cataloguing everything like obsessive librarians.
    • Battle pass items and event rewards that cost basically nothing now say "AIRDROP" instead of "0 GUN". Because "0 GUN" made it look like a bug. It was, but now it’s a feature.
    • Halloween items got their real event name back — "Trick, Treat or Die" instead of the very creative "Halloween"
    • Don DeLulu and Mrs Crackhead Santa were slipping through the name matcher. They’re caught now. Nowhere to hide.
    • New loading screen quips. We won’t spoil them here.

    Feb 18, 2026

    • The search bar now tells you in real time if your address is GunzChain or Solana, and whether it’s even valid. No more pasting garbage and wondering why nothing loads.
    • Watch and Portfolio buttons moved to the wallet bar where they make sense. Previously they were floating above the search results like lost tourists.
    • Started building a database of every Battle Pass, Content Pack, and Event release. Your NFTs now know their own backstory.
    • Wallet dropdown got a darker background so it stops blending into the abyss behind it

    Feb 18, 2026

    • Portfolio loads faster — charts and gallery now load on demand instead of all dumping into the page at once like an overturned filing cabinet
    • Switching wallets quickly no longer shows you the previous wallet’s data. Turns out people don’t enjoy seeing someone else’s portfolio flash before their eyes.
    • NFT cards now stagger-animate in when the gallery loads. Purely cosmetic. Entirely necessary.
    • Chart tabs respond to keyboard navigation. Accessibility: we’re trying.

    Feb 17, 2026

    • Dashed cost basis line on the portfolio chart. Now you can see how much you actually spent next to how much it’s currently worth. Emotional damage, visualized.
    • Chart dots fade in as your NFTs load, like little data stars being born. Before this they just appeared all at once. No drama.

    Feb 17, 2026

    • Portfolio share card redesigned — tactical HUD style showing GUN balance, NFT count, and cost basis. It looks cool. We’re not sorry.
    • Download your portfolio card as a PNG. For X, Discord, your refrigerator, wherever.
    • Shared portfolio links now include cost basis data. Your friends can see what you’re really working with.
    • Chart zoom fixed — dots no longer yeet themselves off the visible area when you scroll
    • Shift+scroll zooms toward your cursor instead of the chart center. Small thing. Big satisfaction.
    • Gallery scrolls faster with large collections. If you own 200+ skins you deserve a smooth experience.
    • NFT prices pop in faster during enrichment. The loading bar still takes a minute but the numbers show up sooner.

    Feb 17, 2026

    • Smooth crossfade between chart views instead of the content just vanishing and reappearing.
    • Multi-wallet NFT count was not, in fact, counting all the wallets. It is now. Addition.
    • Gallery count includes duplicates. If you own 3 of the same skin, that’s 3 versus 1. Joker would be proud.
    • Holdings breakdown got a cleaner layout. Less visual noise, same data.
    • Wallet dropdown got spring animations because static dropdowns are for banks.

    Feb 17, 2026

    • Spring-physics animations on every panel, modal, and drawer. The whole UI feels like it has a pulse instead of just snapping into existence.
    • Custom green arrow cursor across the entire site. You’re in a tactical scope. Act accordingly.
    • Wallet switcher and share icons stay highlighted while their panels are open. Sounds obvious. Wasn’t happening before.

    Feb 16, 2026

    • NFTs bought via OpenSea offers now show their actual purchase price. Previously these showed up as mysterious free acquisitions.
    • Offer fills display "OpenSea (Offer)" as the source. Transparency is the new flex.

    Feb 16, 2026

    • Removed 15 unused libraries. The bundle lost weight. Your load times will thank us.
    • Charts, modals, and heavy components only load when you actually need them. Lazy loading — finally, a work ethic that matches our personality.
    • Images serve in AVIF on supported browsers. Smaller files, same pixels. Science.

    Feb 16, 2026

    • New Market page — browse every active OpenSea listing for OTG items with search and direct buy links. Window shopping, but for NFTs.
    • Scarcity page leveled up with quality badges, "Best Deal" sorting, and price range filters. Finding underpriced items just got easier.
    • Listing coverage tripled to 3,000 items. We’re pulling basically everything OpenSea has.
    • P&L chart got gradients and smarter axis labels. Charts should be beautiful. We don’t make the rules.

    Feb 15, 2026

    • Acquisition Timeline chart with better Y-axis distribution. Dots no longer pile on top of each other like a mosh pit.
    • Dots appear on the chart in real time as enrichment discovers them. Previously you had to wait for everything to finish before seeing anything. Patience is overrated.
    • Portfolio sparkline stopped having an existential crisis on page reloads.

    Feb 14, 2026

    • Share your portfolio on X or Discord with a rich preview card. Finally, a socially acceptable way to flex your NFT collection.
    • Better valuations — per-item listings, comparable sales, and rarity-tier floors. Three ways to feel good (or bad) about what you paid.
    • New insight cards: unrealized P&L, most valuable item, biggest loss. The full emotional spectrum in one dashboard.
    • Acquisition Timeline and P&L Scatter Plot now live on the main portfolio view. More charts. Always more charts.

    Feb 14, 2026

    • NFT valuation waterfall: per-item listings, rarity floors, comparable sales — multiple opinions on what your stuff is worth
    • Cost basis vs market value, side by side. The "how much did I spend vs how much is it worth" reality check.
    • Per-item P&L with interactive charts. Click around. Cry a little. It’s fine.
    • Feature request system is live — submit ideas, vote on others, attach screenshots. Democracy for a portfolio tracker.
    • Browse any wallet with ?address= links. No login required. Perfect for stalking.
    • Multi-wallet portfolio — combine all your wallets into one summary. For those of us who can’t commit to a single address.

    Feb 13, 2026

    • New scramble-decode loading animation. Looks like a hacker terminal from a movie. We’re very proud of it.
    • NFT Holdings sparkline toggle. Tiny charts inside your portfolio. Charts within charts. Chartception.
    • Wallet address help panel for people who just want to know where to find their address. We get it. It’s confusing.

    Feb 12, 2026

    • NFT sparkline with historical hover counts. Little charts that follow your mouse. Very satisfying.
    • Grouped NFTs now glow with dynamic rarity accent colors. Epic is purple. Rare is blue. Common is gray. You’ll figure it out.
    • Fixed decode cost extraction for relayer transactions. If you don’t know what that means, good. It was broken. Now it’s not.

    Feb 11, 2026

    • Ambient portfolio sparkline lives in the background now. Subtle. Atmospheric. Possibly unnecessary. Definitely staying.
    • Portfolio auto-loads when you connect your wallet. No more clicking "Load" like it’s 2003.
    • Wallet identity bar got a redesign. Cleaner. More tactical. Less "default Bootstrap."
    • SEO metadata on all pages. Google can find us now. Whether it wants to is another question.

    Feb 10, 2026

    • Insanity Mode. Toggle it. Cards go angular. Vibes go unhinged. You either love it or you don’t.
    • Email authentication. For people who prefer passwords over seed phrases. We respect that.
    • Scarcity page improvements. More data. Better sorting. Still no guarantees your items are worth anything.

    Feb 9, 2026

    • Feature request system. Submit ideas, vote on others. We actually read these.
    • Leaderboard page — see who’s holding the most OTG items. Comparison is the thief of joy, but here we are.
    • Wallet connect flow got styled. It no longer looks like a placeholder from a hackathon.

    Feb 5–8, 2026

    • Multi-wallet architecture — portfolio context, hooks, the whole plumbing. Not glamorous. Very necessary.
    • Marketplace price enrichment pipeline. We ask OpenSea what you paid. Sometimes it even answers correctly.
    • WaffleChart for portfolio composition. Because pie charts are for measuring pies and figuring out how much pizza is left. Never use pie charts. Just don’t.

    Jan 31 – Feb 1, 2026

    • NFT P&L tracking with historical prices. See what your items were worth when you bought them vs now. Sorry in advance.
    • Rarity filter pills in the gallery. Click a pill, see only that rarity. Simple. Effective. Satisfying.
    • YOUR POSITION section in the NFT detail view. A dedicated space for confronting your financial decisions.
    • Floor price enrichment and caching. Prices update in the background and stick around between visits.

    Jan 19–22, 2026

    • GUNZscope exists. Multi-chain portfolio tracker for Off The Grid. It’s real. It works. Mostly.
    • NFT Armory with weapon compatibility checking. Find out if your attachments actually fit before you embarrass yourself in-game.
    • Acquisition tracking from raw blockchain data. We read every transaction so you don’t have to.
    • OpenSea and in-game marketplace integration. Two marketplaces. One dashboard. Zero excuses.

    Built for the Off The Grid community · Not affiliated with GUNZILLA Games

    © 2026 GUNZscope
    ·Conditions·Confidentialité·Crédits·API·Mint Check··

    Conçu avec ♥ par CRYPTOHAKI pour la communauté Gunzilla.