Development Update — 2026-09-12

by Jamie

Development Update — 2026-09-12

Share

Overview: Where Development Is Heading

The backend repo is currently focused on bug fixes. Several fixes are landing to stabilize the existing flows. Recent commit subjects include: fix binUpload; fix: skip Joi validation on /binupload multipart route; Fix ipfs.io rate limiting: serialize requests, detect 504 lockout, cache duplicate CID fetches; Add chainWatch backfill mode (-u/-u-dry/-full): rewrite inline base64 + ipfs/http images to CDN, normalize CID URLs, per-chain + ipfs.io rate limits, per-minute stats; remove unused routes from server.js and update imports. The work is tightening the foundation before more blockchain-facing features ship.

Overview: Where Development Is Heading

The frontend repo is currently focused on bug fixes, new features, style cleanup, maintenance tasks. Several fixes are landing to stabilize the existing flows. New feature work is progressing in parallel. Recent commit subjects include: feat: add Pixel Editor link to Explore dropdown; chore: update generated sitemaps (540 URLs); fix: avatar upload to use /api/v1/binupload (uploadFile); fix: initialize upload metadata fields up front; fix: use configured API base for profile uploads. The work is converging on a more stable and maintainable user experience.

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

5ddf977 2026-09-11 07:59:31
fix binUpload

ab23cec 2026-09-11 06:49:59
fix:
skip Joi validation on /binupload multipart route

e4ccc9b 2026-08-26 02:53:59
Fix ipfs.io rate limiting: serialize requests, detect 504 lockout, cache duplicate CID fetches

eaba5d4 2026-08-26 00:30:07
Add chainWatch backfill mode (-u/-u-dry/-full): rewrite inline base64 + ipfs/http images to CDN, normalize CID URLs, per-chain + ipfs.io rate limits, per-minute stats

63692a2 2026-08-25 03:55:20
remove unused routes from server.js and update imports

f149a44 2026-08-25 03:54:09
Merge remote-tracking branch 'origin/refactor2026' into refactor2026

601a398 2026-08-25 02:04:42
fix:
use = instead of LIKE for numeric for_coll_id in nftMetaById

02ce78b 2026-08-25 02:03:42
fix:
use = instead of LIKE for numeric for_coll_id in nftMetaById

e2fe3de 2026-08-25 01:24:33
remove unused routes from server.js and update imports

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

Frontend Commits

3bc903dbc 2026-09-11 15:56:26
feat:
add Pixel Editor link to Explore dropdown

81d66c9fd 2026-09-11 07:55:18
chore:
update generated sitemaps (540 URLs)

2843a4fd4 2026-09-11 07:52:08
fix:
avatar upload to use /api/v1/binupload (uploadFile)

978738d7a 2026-09-11 06:36:24
fix:
initialize upload metadata fields up front

f74d48c41 2026-09-11 06:29:47
fix:
use configured API base for profile uploads

eee6621ab 2026-09-11 06:09:46
fix:
revert upload to JSON for /api/v1/upload contract

6397e8659 2026-09-11 05:30:47
fix:
upload payload empty — send FormData directly and defer queue processing

1e821c98a 2026-09-11 05:09:46
fix:
avoid parsing already parsed session token

31549c017 2026-09-11 04:56:41
fix:
banner upload now branches on itype; guard hdrRef null; build passes

d8fcf6e73 2026-09-11 03:19:12
fix:
profile loop - guard navbar onError, profile useEffect, SecAvatar undefined-id

f99a202e8 2026-09-11 02:48:39
fix:
profile image endless load loop

afe8856f1 2026-09-11 02:33:30
fix:
profile LiveStream t is not defined

92c1719e9 2026-09-11 02:33:16
feat:
redesign collection page layout (hero, tabs, 2-column, collapsed filters)

6ef729084 2026-09-10 03:21:02
fix:
keep contact form inputs dark/transparent

0d5bae355 2026-09-10 03:16:11
style:
apply design language to contact page

26fa4df98 2026-09-10 02:13:49
feat:
collections page SSR search from ?q= parameter

cba3ca732 2026-09-10 01:49:26
fix:
update collection detail paths from /collection/ to /collections/ in sitemap and components

75b2fbe63 2026-09-10 00:59:14
fix:
open Modal2 when clicking NFT in collection detail grid

a181996b2 2026-09-10 00:26:38
fix:
/collections// now renders CollectionContainer (detail view); add layout route with Outlet

fc452a973 2026-09-10 00:06:33
feat:
collection paths at /collections//; update resolveCollectionPath; add route

9eed12e6e 2026-09-09 23:54:04
fix:
include page in useEffect deps so pagination works client-side

fc073741e 2026-09-09 23:50:23
fix:
include pagination in SSR loader data so pagination renders on direct pageload

a6fab8219 2026-09-09 23:35:05
fix:
zero client /api/v1/collections on SSR pageload — serialize loader data, return cached on hydration (staleTime Number.MAX_SAFE_INTEGER; Infinity serialized to null)

f148be49e 2026-09-09 21:39:33
fix:
base loader and client send sparam='' so /collections gets data; only supply net when slug present

b3cb0437f 2026-09-09 21:32:17
fix:
client /api/v1/collections only refetches on searchParam change; zero client calls on SSR pageload