Where NFTs appear
The app does not sort NFTs or collections client-side, display order comes directly from the wallet’s NFT API response.
A newly received NFT can show a gray placeholder tile if its collection name hasn’t finished backend enrichment yet. The app polls for updated data every 15 seconds for up to 60 seconds, then stops. If a tile is still incomplete after that window, treat it as a metadata issue rather than an enrichment delay.
Metadata structure
Two layers of metadata feed the Collectibles UI, and they serve different purposes.Token-level metadata (required)
Every NFT needs standard token metadata:tokenURI() for ERC-721, uri() for ERC-1155. The response must be JSON with an image field pointing to an actual image resource (a URL or ipfs:// CID that resolves to image/* content). This is what renders in the NFT detail view, and what the app falls back to as a collection cover when collection-level metadata is missing or invalid.
Collection-level metadata (optional)
contractURI() is optional. If you implement it, the Startale App uses its image field as the cover shown on collection tiles, instead of picking a token image. This gives you control over the tile’s appearance, but only if the field is correct.
You have two valid options:
- Skip
contractURI()entirely. The app falls back to a held token’s image as the collection cover. Simplest option if you don’t need a distinct collection-level cover. - Implement
contractURI()correctly. Pointimageat a real image file.
The Startale App falls back to a token image when collection-level metadata is missing or unusable, picking one token’s image and keeping it stable unless that specific token leaves the wallet. This exists to limit damage from bad data, not as a substitute for correct metadata: relying on it means your collection never gets a distinct cover, only whatever token image the app happens to pick.