Skip to content

Blue Railroad token metadata corrections - songId and upgrade mechanism #345

Description

@magent-cryptograss

Problem

Several Blue Railroad tokens have incorrect or inconsistent on-chain metadata that needs correction. Additionally, since this metadata is on-chain, we need an upgrade mechanism to apply fixes.

Data Issues

Token Current songId Correct songId Date Format Video URI Notes
0 7 ✓ 7 (Squats) YYYYMMDD ✓ Discord Legacy
1 7 ✓ 7 (Squats) Unix timestamp Discord Legacy
2 7 ✓ 7 (Squats) Unix timestamp Discord Legacy
3 5 7 (Squats) YYYYMMDD ✓ IPFS ✓ Wrong songId
4 5 7 (Squats) YYYYMMDD ✓ IPFS ✓ Wrong songId

Song ID Mapping (Manzanita Track Numbers)

Song IDs correspond to track numbers on Tony Rice's Manzanita album (1979):

Track # Song Exercise
5 Nine Pound Hammer Pushups
7 Blue Railroad Train Squats
8 Ginseng Sullivan Army Crawls

Impact

  • PickiPedia queries by songId return wrong results
  • Token 3 & 4 display as "Pushups" when they're actually "Squats" workouts
  • Date format inconsistency affects sorting (fixed in import script, but upstream data still inconsistent)

Proposed Solutions

Option A: Metadata Resolver Contract

Deploy a resolver contract that the main NFT contract's tokenURI() can point to, which:

  • Stores corrections/overrides for individual tokens
  • Returns proper ERC721 JSON metadata
  • Can be updated by admin without redeploying main contract

Option B: Token Migration

  • Deploy new contract with correct metadata
  • Allow holders to burn old tokens and mint corrected ones
  • More disruptive but cleaner

Option C: Proxy Upgrade

  • If contract is upgradeable, deploy new implementation with correction logic
  • Check if current contract has upgrade capability

Questions

  1. Is the current Blue Railroad contract upgradeable?
  2. What's the preferred path for ongoing metadata flexibility?
  3. Should corrections be applied on-chain or only in the chain data generator?

Related Issues

Discovery Source

Found during PickiPedia integration - tokens showing wrong exercise type on wiki pages.

Labels

bug, nft, blue-railroad

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions