Solana Token Image Not Showing? (5 Causes + Fixes)
Token logo not appearing on Phantom, DexScreener, or Solscan? Here are the 5 specific causes — broken IPFS gateway, wrong format, missing metadata, CDN cache, or the JSON pointer is off.
A token without a visible logo loses ~80% of its credibility immediately. Buyers see "Unknown Token" or a broken image icon and assume scam. This guide walks through the 5 specific causes and how to fix each in under 10 minutes.
Step 1: Verify the metadata exists
Before debugging the image, confirm Metaplex metadata is set at all.
- Open Solscan → paste your token's mint address
- Look for the Metadata section
- Three things matter:
- Name — should match what you set
- Symbol — should match
- URI — points to off-chain JSON (typically
https://...oripfs://...)
If any of these are blank or missing, you minted without Metaplex Token Metadata. The fix: use Alchemii's update metadata tool to create the metadata account. Cost ~0.0144 SOL.
If everything's set but image isn't showing → continue to Step 2.
Step 2: Test the image URL directly
Copy the URI from Solscan and paste it into a fresh browser tab.
The URI typically points to a JSON file like:
{
"name": "BONK",
"symbol": "BONK",
"description": "...",
"image": "https://arweave.net/hQB7m...",
"extensions": {
"twitter": "https://twitter.com/bonk_inu"
}
}
Now copy the image field's URL and paste it into another browser tab. Three possible outcomes:
Outcome A: Image loads correctly
URL works. Issue is downstream — likely a cache (Cause 5).
Outcome B: Image fails to load
The URL is broken. This is Cause 1 (broken hosting).
Outcome C: JSON file fails to load
The URI itself is broken. Cause 4 (metadata pointer off).
This three-way test isolates the failure to a specific cause in 30 seconds.
Cause 1: Broken image hosting (most common)
If the image URL doesn't load directly in a browser, the hosting is the problem.
Sub-cause 1A: IPFS gateway timeout
Free public IPFS gateways (ipfs.io, cf-ipfs.com) sometimes timeout, especially for unpinned content. If your image was uploaded to a free gateway without pinning, it can disappear when the original uploader's node goes offline.
Fix: re-upload to a paid pinning service like Pinata (~$5/mo) or NFT.Storage. Then update metadata with the new URL.
Sub-cause 1B: Domain expired / DNS issue
If your image was hosted at https://yourdomain.com/logo.png and the domain expired or DNS broke, the URL no longer resolves.
Fix: re-host on a permanent solution. Best practices, in order:
- Arweave — pay once (~$0.10), permanent forever. Best.
- Pinata IPFS — reliable, monthly cost.
- GitHub raw content — free, surprisingly reliable:
https://raw.githubusercontent.com/yourorg/yourtoken/main/logo.png - Vercel / Netlify — works as long as you renew the domain.
- Direct shared hosting — works until the host changes URLs.
Sub-cause 1C: Image too large
Phantom and Solscan have size limits (~5MB typical). A 20MB high-res image fails to display.
Fix: compress to under 500KB. For a 512x512 PNG, use TinyPNG or similar. Update metadata.
Cause 2: Unsupported format
Most wallets/indexers prefer PNG with transparent background. Less reliably supported:
| Format | Support | |---|---| | PNG | ✅ Universal | | JPEG | ✅ Universal (but no transparency) | | GIF | ✅ Most (animated GIFs sometimes show first frame only) | | WebP | ⚠️ Good in modern wallets; older indexers may fail | | AVIF | ❌ Spotty support — avoid | | SVG | ❌ Most wallets reject for security; avoid | | HEIC | ❌ Apple-specific; reject |
Recommendation: 512x512 PNG with transparent background. ~50KB-200KB final size. Use Squoosh for compression.
Cause 3: Off-chain JSON has wrong image path
Sometimes the JSON file loads but its image field points to the wrong place.
Common mistakes:
- Relative path instead of absolute:
"image": "/logo.png"— won't resolve from a token aggregator's frontend - Missing protocol:
"image": "arweave.net/abc..."(missinghttps://) - Wrong extension:
"image": "https://...logo.PNG"when the actual file islogo.png(case-sensitive on some hosts) - Pointer to JSON, not image:
"image": "https://...metadata.json"(sometimes accidental)
Fix: open the JSON URI, fix the image field to a full HTTPS URL pointing to a real image, re-upload the JSON to a pinning service, and update Metaplex metadata to point to the new JSON URI.
Cause 4: Metaplex metadata account malformed
If the Solscan metadata page itself shows blank fields or weird strings, the metadata account is malformed.
Sub-causes:
- Mint failed mid-flow: the SPL Token Program created the mint but Metaplex creation failed
- Tool bug: some less-tested creator tools sometimes write bad metadata
- Manual update with malformed data: someone updated metadata via raw CLI with bad inputs
Fix: use Alchemii's update metadata tool to overwrite with clean data. Update authority must still be active. If you've revoked update authority, the bad metadata is permanent — your only recourse is launching a new token.
Cause 5: Indexer cache (most common false alarm)
If the URL works in a browser but Phantom / DexScreener / Solscan still shows the old or missing image, the indexer hasn't refreshed yet.
Cache duration by platform: | Platform | Typical refresh time | |---|---| | Phantom | 1-6 hours | | Solscan | 5-30 minutes | | DexScreener | 15-60 minutes | | Birdeye | 30 minutes - 4 hours | | Jupiter | 1-12 hours |
Fix: just wait. There's no manual "refresh image" button on most platforms. Some allow contacting support to force-refresh, but rarely worth the effort vs waiting.
If a platform NEVER updates after 24 hours: probably a different cause from the list above.
Diagnostic flowchart
Solscan shows metadata?
├── No → fix Cause 4 (re-create metadata)
└── Yes → continue
│
Image URL loads in browser?
├── No → fix Cause 1 (broken hosting) or 2 (format)
└── Yes → continue
│
JSON URI loads in browser?
├── No → fix Cause 3 (re-host JSON)
└── Yes → continue
│
Issue persists across multiple platforms?
├── No → Cause 5 (cache, just wait)
└── Yes → check format + size are mainstream
Hosting recommendations
For a serious launch, host once and forget:
Best: Arweave (permanent)
- Upload via ArDrive or Bundlr
- Costs ~$0.05-0.20 for a 200KB image
- Permanent — guaranteed by Arweave's economic model
- URL like
https://arweave.net/hQB7m...
Good: Pinata IPFS
- pinata.cloud — $5/month free tier
- Reliable, well-cached
- URL like
https://gateway.pinata.cloud/ipfs/Qm...
Acceptable: NFT.Storage
- nft.storage — free for Filecoin-stored content
- Slower CDN than Pinata
- URL like
https://nftstorage.link/ipfs/...
Avoid: free public IPFS gateways
ipfs.io,cf-ipfs.cometc.- Free but unpinned — your file may disappear
- Use only if you're also pinning via a service
Avoid: Discord CDN, Twitter image links
- Auto-expire or migrate periodically
- Will break in months/years
Document this for new launches
For a memecoin, the right answer is: spend $0.20 on Arweave, never think about hosting again.
Specific platform troubleshooting
"Image works on Solscan but not Phantom"
- Likely Cause 5 (Phantom cache lag). Wait 1-6 hours.
- If still broken: Phantom may have flagged the token via Blowfish — image gets hidden along with the warning. Check our Phantom listing guide.
"Image works on Phantom but not DexScreener"
- DexScreener uses its own cache + format check. Try smaller PNG.
- Verify project on DexScreener's claim flow — verified projects get faster image refresh.
"Image works in browser but never in any wallet"
- Likely format issue. Convert to standard PNG, re-upload, update metadata, wait 6 hours.
Frequently asked questions
Can I update my image without changing the URL? Sort of. If you control the hosting, you can replace the file at the same URL. But CDN caches will keep serving the old image for up to a day. Easier: upload to a new URL and update metadata.
Will my image transfer to a wrapped version on Wormhole or Allbridge? Bridges typically copy the metadata (including image URL) when wrapping. So if your Solana image URL works, the wrapped version on Ethereum (or wherever) inherits it.
Can I use animated GIFs as my token logo? Yes, but most wallets show only the first frame. PNG > GIF for memecoin logos.
What dimensions does Phantom prefer? 512x512 px. Square. Larger gets downsampled (which can look bad). Smaller (under 200x200) appears blurry on retina displays.
Should I add a transparent background? Yes for square logos that may overlay on different backgrounds (Phantom uses dark and light themes). Solid backgrounds also work but can look out of place.
Can I use my project's main website domain to host the image? Yes, but pin to a permanent CDN if possible. Domain expiration breaks token logos forever (if update authority is revoked).
How do I verify the image is what the off-chain JSON points to?
Open the JSON URI in a browser, find the image field, copy that URL, paste into another tab. The image you see is what wallets see.
Launching a token and want to never deal with this issue? Use Alchemii's Solana Token Creator — automatically pins to IPFS via Pinata and bundles the URI into Metaplex metadata in one signed transaction. Or for a memecoin, pre-configured meme coin creator does the same with memecoin-friendly defaults. For full launch context, see our memecoin launch checklist.
References
- Metaplex Token Metadata Program — authoritative spec for metadata accounts
- Solana SPL Token Program — protocol-level docs
- Solscan — for verifying on-chain metadata
- Pinata IPFS — recommended pinning service
- Arweave + Bundlr — for permanent hosting
- NFT.Storage — free Filecoin-backed alternative
- Squoosh — image compression for the right size
- DexScreener support — verification claim flow
- Phantom Help — wallet-specific troubleshooting
Related guides
Alchemii vs Pump.fun — Which Should You Use?
Side-by-side: Alchemii (full-control Solana token creator + Raydium LP) vs Pump.fun (fair-launch bonding curve). Which suits your launch better, and why.
Best Solana Token Creator in 2026 — Honest Comparison
Reviewed: leading no-code Solana token creators in 2026. Pricing, features, and control compared — with full-disclosure caveats from a biased author.
Burned LP Tokens But Liquidity Still Shows? (Yes, That's Normal)
Confused why your liquidity still shows on DexScreener after burning LP tokens? It's supposed to. Here's what burning LP actually does and why the pool stays funded.