Development Update — 2026-08-24

by Jamie

Share

Overview: Where Development Is Heading

The backend repo is currently focused on bug fixes, new features. Several fixes are landing to stabilize the existing flows. New feature work is progressing in parallel. Recent commit subjects include: Separate blockscout cache by chainId in newmeta and gitignore newmeta; test(nft): drop unsupported 'order' field from nftMetaById validation tests; fix(nft): correct slug resolution in nftMetaById; feat(nft): accept canonicalName + chainName (slug) in nftMetaById; fix(getCollections): apply net filter — number has no .length. The work is tightening the foundation before more blockchain-facing features ship.

Overview: Where Development Is Heading

Recent frontend development is centered on enhancing collection page performance and search engine optimization, with parallelized data loading, chain-aware link and slug handling, and expanded structured metadata including JSON-LD breadcrumbs to boost crawlability and user experience. The team is also prioritizing SSR and hydration reliability, fixing edge cases around locale URL handling and eliminating redundant client-side data refetches by properly hydrating server-fetched responses, while simplifying and segmenting sitemap generation by chain to retain locale variants for more efficient search indexing.

Project Direction — Both repos are converging on a stable, production-ready NFT marketplace. The backend is hardening core systems while the frontend improves architecture and user experience.

Backend Commits

fcb4dbe 2026-08-24 01:52:41
Separate blockscout cache by chainId in newmeta and gitignore newmeta

0cb9b26 2026-08-24 01:10:51
test(nft): drop unsupported 'order' field from nftMetaById validation tests

d198115 2026-08-24 01:10:21
fix(nft): correct slug resolution in nftMetaById

6519a0a 2026-08-24 00:59:48
feat(nft): accept canonicalName + chainName (slug) in nftMetaById

1776276 2026-08-23 18:51:26
fix(getCollections): apply net filter — number has no .length

9fa19e6 2026-08-23 18:15:03
feat(collInfo): accept canonicalName+chainName or contractAddress+chainName

5bb7844 2026-08-23 18:14:54
feat:
add canonicalName column and backfill helper

f538183 2026-08-23 00:37:26
fix:
preserve null query params, store contract names, remove 1000 cap, normalize new input format, pass db/tokenType into ingestContracts, update existing collections rows, fetch metadata fallback, use null-preserving token pagination serializer

61dac6c 2026-08-22 20:25:30
feat(chainWatch): show canonical signature names on stdout NFT lines

9364571 2026-08-22 20:13:02
feat(db): add signatures table for chainWatch learned selectors

c2e7e43 2026-08-22 20:12:37
feat(chainWatch): persist learned signatures to MySQL signatures table

b6c58c8 2026-08-22 18:36:17
fix(db): widen collections.totalSupply to BIGINT UNSIGNED

b1148e0 2026-08-22 18:36:08
fix(chainWatch): make DB writes non-fatal; log full SQL + values on failure

6f55254 2026-08-22 18:27:28
feat(chainWatch): gate imports on known NFT func selectors + event topics

96fd0fb 2026-08-22 18:14:22
fix(chainWatch): snapshot loop index in subscribe goroutine (nil-pointer panic on startup)

19f9bfa 2026-08-22 18:05:23
feat(chainWatch): add crash handling + retry totalSupply + ipfs.io gateway

78cd2a1 2026-08-22 17:40:52
docs(chainWatch): track clean crash-handling as an open task in AGENTS.md

4f49917 2026-08-22 17:39:58
docs(chainWatch): add AGENTS.md capturing current watcher state

e017176 2026-08-22 17:36:28
feat(chainWatch): add db.log audit trail for collection writes

e645ebf 2026-08-22 03:10:44
feat(chainWatch): import ERC-721/1155/404/6909 + record standard

3009349 2026-08-22 02:56:02
feat(chainWatch): track TX/collection stats and print on SIGINT

db831df 2026-08-22 02:49:37
perf(chainWatch): reuse per-chain client in importToken instead of re-dialing

216aec0 2026-08-22 02:35:52
fix(chainWatch): consume new-heads for ALL registered chains, not just 0-4

a9dcd18 2026-08-22 02:27:42
feat:
add popScore column to collections

26318e9 2026-08-22 02:24:30
fix(chainWatch): drop non-existent 'activity' column from collections UPDATE

Frontend Commits

2c2c511d0 2026-08-24 04:14:50
fix(client): rewrite non-locale URL on hydration to prevent redirect refetch

f6ecdb7e2 2026-08-24 03:48:57
fix(sitemap): keep locale variants in static sitemap, simplify renderer

ce51cd942 2026-08-24 03:45:45
feat(sitemap): split collection sitemaps per chain, use JSON chainData

981f0b103 2026-08-24 00:59:57
perf(collection): parallelize loader fetches for all slug types via backend slug resolution

1dfaae4c5 2026-08-24 00:53:15
perf(collection): parallelize loader fetches for numeric collection slugs

9bb215065 2026-08-24 00:46:54
fix(collection): trust loader-provided NFTs to avoid redundant initial refetch

7d7a7021d 2026-08-24 00:41:33
fix(collection): pass resolved numeric collection id, not slug, to searchNFTs

0a3616a76 2026-08-23 22:15:53
fix(collection): improve breadcrumb chain label and valid JSON-LD SEO data

8fddb0e10 2026-08-23 22:11:48
fix:
restore breadcrumb JSON-LD on collection pages

6a64c4c45 2026-08-23 21:49:53
chore:
update sitemaps, style.css, and add favicon

259b07185 2026-08-23 21:48:04
feat(ssr): hydrate loader and API responses from SSR into client

bc29dffcf 2026-08-23 21:36:19
fix(metadata): include chain segment in collection breadcrumb JSON-LD

a6e692ec6 2026-08-23 21:26:26
fix(metadata): add collection breadcrumb JSON-LD and fix SSR metadata emission

f784722ad 2026-08-23 21:11:21
fix(metadata): emit dynamic page metadata in SSR and add collection breadcrumb JSON-LD

d25af4ecc 2026-08-23 18:41:09
feat:
branch collInfo lookup by slug type in collection// route

a10ea3fd4 2026-08-23 18:36:24
feat:
align getCollectionInfo API with backend collInfo contract

33fc1046d 2026-08-23 18:20:55
fix:
slugify chain segment in collection card links

ae92bc1c5 2026-08-23 18:16:07
fix:
use chain + canonicalName collection links in SecCollectionList

be4888fb2 2026-08-23 16:44:23
chore:
set collections page size to 24 and rebuild sitemaps

e1d10faba 2026-08-23 16:42:25
chore:
increase collections page size to 26

a21629d11 2026-08-23 16:40:44
fix:
pass chainId to search backend and update pagination UI

7e482eb7d 2026-08-23 16:23:08
chore:
add TODO.md and wire it into AGENTS.md conventions

3ca396c80 2026-08-20 17:09:39
chore:
update Monad testnet/mainnet chain data from official docs/RPC

09a7de22e 2026-08-20 01:18:56
feat:
expose mariadb on 0.0.0.0 with firewall allowlist for tailscale0 and lo

61d452d8a 2026-08-18 15:43:00
feat:
add minimal MCP JSON-RPC server at /mcp with site.search and sitemap.urls tools