feat: resolve MST (Mibera Shadow) metadata via sovereign storage-api#9
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
shadow-mint announcements ship image-less because
getNftMetadataonly knows the mibera-main codex. this teaches it the mibera shadow (MST) contract → image + traits from the sovereign storage-api.what
getNftMetadatabranches on a checksum-keyed registry: mibera-main → codex (unchanged), MST0x0483…c008→ sovereign route.src/sovereign-metadata.ts:GET metadata.0xhoneyjar.xyz/mibera/mst/{id}→ plainMetadataDocument.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 lookupSovereignManifestlocally (that pkg is workspace-only + pullseffect) → zero new deps, globalfetchonly.safe
.well-known/beacon.jsonuntouched, no BeaconV3 bump.npm run typecheckclean ·npm test95 passed, fully offline (mocked fetch + real token-234 fixture).verified live:
GET /mibera/mst/234→200+ 19 traits +image/webp.Closes #8
🤖 dispatched + reviewed via
/coord(events-pillar image workstream). unblocks freeside-characters #139.