ipfs gateway
ipfs.io stopped serving your app? Use a gateway built for it.
On September 21, 2026 the public ipfs.io and dweb.link gateways stopped answering requests from apps, servers and scripts. They now only work inside a browser. If your NFT images, metadata or dapp assets suddenly fail to load, this page is for you.
What changed
- Browsers: still work. ipfs.io now loads a service worker that fetches content directly in the page.
- Everything else: backends, bots, mobile apps, indexers and server-side rendering get rejected. That includes code that calls
https://ipfs.io/ipfs/<CID>withfetchorcurl. - w3s.link: Storacha's old gateway now redirects to dweb.link, so it is affected too.
The public gateways were free infrastructure run for the whole ecosystem. The IPFS project now expects teams to run or choose their own gateway. That is what a pinning service gateway is for.
The fix in three steps
- Pin your content on Octopin. Upload the original files or folder (same files, same CIDs), or on paid plans import existing CIDs or a CAR file. Developers can also pin from Kubo with the Pinning Service API.
- Swap the host. Replace
https://ipfs.io/ipfs/withhttps://gateway.octopin.app/ipfs/in your app. Paths stay the same. - Keep ipfs:// on-chain. Contracts should store
ipfs://<CID>, never a gateway hostname, including ours. Then you can switch gateways again without touching the contract.
# before (rejected for apps since Sept 21, 2026)
https://ipfs.io/ipfs/<CID>/1.json
# after
https://gateway.octopin.app/ipfs/<CID>/1.jsonWhat you get
- Unlimited bandwidth on every plan, including the free 1 GB plan. No per-GB fees.
- Works for apps: plain HTTPS, no service worker and no browser required.
- Fast: responses are cached on Cloudflare's CDN for a year, because IPFS content never changes.
- Trustless retrieval: raw blocks and CAR files (
?format=raw,?format=car) for clients that verify content themselves. - Still on the public network: pins are announced to cid.contact, so other IPFS nodes and gateways can find them too.
The honest limit
gateway.octopin.app serves content pinned on Octopin. It is not an open proxy for any CID on the network. If you need to load content you don't control, you need a gateway that fetches from the network, such as one you run yourself with Kubo or Rainbow.
Coming from another service?
- Storacha / web3.storage: the service is closed. Re-pin your CIDs here.
- Fleek: hosting shut down on January 31, 2026.
- Pinata: free plan bandwidth is capped at 10 GB; ours is unlimited.
FAQ
Why did my app stop loading images from ipfs.io?
Since September 21, 2026 the ipfs.io and dweb.link gateways only work inside browsers, through a service worker that runs a small IPFS node in the page. Requests from servers, scripts, mobile apps and backends are rejected. If your app fetched NFT images or metadata from those hosts, it needs another gateway.
Can I load any CID through gateway.octopin.app?
No. Like other pinning services, Octopin serves content that is pinned on Octopin. An open gateway that fetches anything from the network becomes a free proxy for abuse, which is part of why the public gateways changed. Pin your CIDs with us first, then load them from our gateway.
Do I need to change my smart contract?
No, as long as your tokenURI uses ipfs:// URIs. CIDs are content addressed, so pinning the same content on Octopin keeps the same CID. Only off-chain code that hardcoded https://ipfs.io/ipfs/ links needs the new host.
Is the bandwidth really unlimited?
Yes, on every plan including the free one. Gateway responses are served through Cloudflare's CDN and cached, because IPFS content never changes. A busy mint day does not turn into a bandwidth bill.
What about w3s.link links from Storacha?
Storacha's gateway now redirects to dweb.link, which no longer serves apps either. Re-pin that content on Octopin (same CIDs) and switch the host to gateway.octopin.app.
Try Octopin for free
1 GB free. Unlimited bandwidth. No credit card.