Skip to content

feat: resolve MST (Mibera Shadow) metadata via sovereign storage-api#9

Merged
zkSoju merged 1 commit into
mainfrom
feat/img-1-mst-sovereign-metadata
May 30, 2026
Merged

feat: resolve MST (Mibera Shadow) metadata via sovereign storage-api#9
zkSoju merged 1 commit into
mainfrom
feat/img-1-mst-sovereign-metadata

Conversation

@zkSoju
Copy link
Copy Markdown
Contributor

@zkSoju zkSoju commented May 30, 2026

shadow-mint announcements ship image-less because getNftMetadata only knows the mibera-main codex. this teaches it the mibera shadow (MST) contract → image + traits from the sovereign storage-api.

what

  • getNftMetadata branches on a checksum-keyed registry: mibera-main → codex (unchanged), MST 0x0483…c008 → sovereign route.
  • new src/sovereign-metadata.ts: GET metadata.0xhoneyjar.xyz/mibera/mst/{id} → plain MetadataDocument. 4xx → NotFoundError, 5xx/network → throw (caller fail-softs), 200 → defensive map.

source = sovereign storage-api only — no chain rpc, no tokenURI, no sonar graphql, no honeyroad. route governed by the storage-api url-contract (mst-sovereign-cutover, 2026-05-01). mirrors @freeside-storage/client lookupSovereignManifest locally (that pkg is workspace-only + pulls effect) → zero new deps, global fetch only.

safe

  • public api shape unchanged → .well-known/beacon.json untouched, no BeaconV3 bump.
  • mibera-main codex path byte-for-byte unchanged.
  • npm run typecheck clean · npm test 95 passed, fully offline (mocked fetch + real token-234 fixture).

verified live: GET /mibera/mst/234200 + 19 traits + image/webp.

Closes #8

🤖 dispatched + reviewed via /coord (events-pillar image workstream). unblocks freeside-characters #139.

getNftMetadata only knew the Mibera-main codex, so Shadow (MST) tokens
threw NotFoundError and shadow-mint announcements shipped image-less.

Teach it the MST contract via a checksum-keyed resolution registry:
- Mibera-main -> codex (unchanged, byte-for-byte)
- MST 0x048327a187b944ddac61c6e202bfccd20d17c008 -> sovereign storage-api

New src/sovereign-metadata.ts: GET metadata.0xhoneyjar.xyz/mibera/mst/{id}
-> plain MetadataDocument. 4xx -> NotFoundError; 5xx/network -> throw
(caller fail-softs); 200 -> defensive map. Mirrors @freeside-storage/client
lookupSovereignManifest (workspace-only + pulls effect) locally -> zero new deps.

Source is the sovereign route ONLY: no chain RPC, no tokenURI, no sonar
GraphQL, no honeyroad. Public API shape unchanged -> .well-known/beacon.json
untouched, no BeaconV3 bump.

Tests: hermetic (mocked fetch + real token-234 fixture). typecheck clean,
full suite green offline (95 passed).

Closes #8

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@zkSoju zkSoju merged commit 831123c into main May 30, 2026
3 checks passed
@zkSoju zkSoju deleted the feat/img-1-mst-sovereign-metadata branch May 30, 2026 05:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

getNftMetadata: support Mibera Shadow contract + live mode

1 participant