Skip to content

Blue Railroad Train tokenURI points to Discord URLs instead of JSON metadata #335

Description

@magent-cryptograss

Problem

The Blue Railroad Train Squats contract on Optimism (0xCe09A2d0d0BDE635722D8EF31901b430E651dB52) returns Discord channel URLs for tokenURI() instead of proper ERC721 JSON metadata.

Current state:

  • Contract name: "Blue Railroad Train Squats"
  • Contract symbol: "TONY"
  • Total supply: 3 tokens
  • tokenURI(1): https://discordapp.com/channels/1126841404056948806/1126841404056948809/1197957710239506543

Impact

  • NFT marketplaces cannot parse Discord URLs as metadata
  • No images, names, descriptions, or attributes visible anywhere
  • Completely invisible on OpenSea, Rarible, and other platforms
  • Block explorers show invalid metadata

Background

Blue Railroad Train Squats is an NFT-based exercise challenge where users perform squats to Tony Rice's "Blue Railroad Train" and submit videos via Discord. The current tokenURI implementation appears to store the Discord message URL where the video was submitted, rather than proper NFT metadata.

Proposed Solution

1. Create metadata generation system

Similar to Set Stones, create a metadata generator that produces:

{
    "name": "Blue Railroad Train Squats #1",
    "description": "A proud blue steam engine charges down the tracks through a pixel art landscape. Part of the Blue Railroad Train collection by CryptoGrass.",
    "image": "ipfs://...", 
    "external_url": "https://cryptograss.live/blue-railroad/1",
    "animation_url": "...",  // Link to squat video if available
    "attributes": [
        {"trait_type": "Type", "value": "Steam Locomotive"},
        {"trait_type": "Style", "value": "Pixel Art"},
        {"trait_type": "Video Verified", "value": "Yes/No"}
    ]
}

2. Determine metadata hosting strategy

Options:

  • Static JSON on cryptograss.live
  • IPFS for immutability
  • Dynamic API endpoint

3. Update contract or add redirect

  • Check if contract has setBaseURI() or similar
  • If immutable, may need redirect server or accept broken state

Files Involved

  • src/build_logic/generate_blue_railroad_metadata.js - Existing metadata logic (needs audit)
  • src/abi/blueRailroadABI.js - Contract ABI
  • src/build_logic/constants.js - Contract address
  • src/sites/cryptograss.live/js/bazaar/blue_railroad.js - Frontend
  • src/build_logic/fetch_video_metadata.js - Video metadata fetching

Questions to Answer

  1. Was the Discord URL storage intentional or a bug during minting?
  2. Is there a way to update individual token URIs, or only baseURI?
  3. Where are the actual Blue Railroad images hosted? (mentioned as IPFS in exploration)
  4. What's the relationship between the Discord video submission and the NFT metadata?

Acceptance Criteria

  • tokenURI(n) returns valid ERC721 JSON metadata
  • Metadata includes working image URL
  • OpenSea can display Blue Railroad NFTs with images
  • Video links preserved somehow (animation_url or attribute)

Labels

bug, nft, lone-star-release

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