Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/concepts/persistence.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ Some of the pinning services listed below are operated by third party companies.
- [4EVERLAND Bucket](https://www.4everland.org/bucket/)
- [Filebase](https://filebase.com/)
- [Pinata](https://pinata.cloud/)
- [Pinion Build](https://pinion.build/)
- [Storacha (formerly web3.storage)](https://storacha.network/)

See how to [work with remote pinning services](../how-to/work-with-pinning-services.md).
Expand Down
6 changes: 3 additions & 3 deletions docs/how-to/best-practices-for-nft-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ date: 2021-04-02

IPFS is a great fit for storing and addressing data for NFTs, or non-fungible tokens. This guide is all about how to store the data for NFTs on IPFS so that NFT creators and owners have a great experience that can stand the test of time.

Since an NFT can't be easily changed after it's been created, it's a good idea to think about how the data for your NFTs is stored, addressed, and made persistent over time. That's why we'll be getting into the specifics of [how to prepare your NFT metadata](#metadata), and we'll also look at [the different kinds of links to IPFS content](#types-of-ipfs-links-and-when-to-use-them) and when you should use each one. Finally, we'll see why [making a plan for your data's persistence](#persistence-and-availability) is important for a good user experience. By following these recommendations, you can help ensure a long and healthy future for your NFT data.
Since an NFT can't be easily changed after it's been created, it's a good idea to think about how the data for your NFTs is stored, addressed, and made persistent over time. That's why we'll be getting into the specifics of [how to prepare your NFT metadata](#metadata), and we'll also look at [the different kinds of links to IPFS content](#types-of-ipfs-links-and-when-to-use-them) and when you should use each one. Finally, we'll see why [making a plan for the persistence of your data](#persistence-and-availability) is important for a good user experience. By following these recommendations, you can help ensure a long and healthy future for your NFT data.

This guide is aimed at developers building NFT platforms and other tools, and it's focused on how to format your data and link to it for the best long-term results.

Expand Down Expand Up @@ -112,7 +112,7 @@ To link to images, videos and other media, simply use an [IPFS URI](#ipfs-uri).
::: tip
Using IPFS URIs inside your metadata to link to images and other media helps preserve the integrity of your NFT data! IPFS links can't be tampered with or altered to point to different data after they've been created.

Even if you're not storing your data with IPFS today, generating an IPFS URI for your media and including it in your metadata will allow anyone to validate the data's integrity once they download it from another source. If you (or anyone else) later adds the data to IPFS, the URI will start working!
Even if you're not storing your data with IPFS today, generating an IPFS URI for your media and including it in your metadata will allow anyone to validate integrity of your data once they download it from another source. If you (or anyone else) later adds the data to IPFS, the URI will start working!
:::

Because you need to know the CID of images and other media that you want to reference in your metadata, it's simplest to create the metadata after you've added your media assets to IPFS.
Expand All @@ -139,7 +139,7 @@ When your data is stored on IPFS, users can fetch it from any IPFS node that has

If you're building a platform using IPFS for storage, it's important to pin your data to IPFS nodes that are robust and highly available, meaning that they can operate without significant downtime and with good performance. See our [server infrastructure documentation][docs-server-infra] to learn how [IPFS Cluster][ipfs-cluster] can help you manage your own cloud of IPFS nodes that coordinate to pin your platform's data and provide it to your users.

Alternatively, you can delegate the infrastructure responsibility to a remote pinning service. Remote pinning services like [Pinata](https://pinata.cloud), [Storacha](https://storacha.network/), and [Filebase](https://filebase.com/) provide redundant, highly-available storage for your IPFS data, without any _vendor lock-in_. Because IPFS-based content is addressed by CID instead of location, you can switch between pinning services or migrate to your private infrastructure seamlessly as your platform grows.
Alternatively, you can delegate the infrastructure responsibility to a remote pinning service. Remote pinning services like [Pinata](https://pinata.cloud), [Pinion Build](https://pinion.build), [Storacha](https://storacha.network/), and [Filebase](https://filebase.com/) provide redundant, highly-available storage for your IPFS data, without any _vendor lock-in_. Because IPFS-based content is addressed by CID instead of location, you can switch between pinning services or migrate to your private infrastructure seamlessly as your platform grows.

To learn more about persistence and pinning, including how to work with remote pinning services, see our [overview of persistence, permanence, and pinning][docs-persistence].

Expand Down
2 changes: 1 addition & 1 deletion docs/how-to/privacy-best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ If you're a developer building on IPFS, it's worth noting that the global IPFS c

Private IPFS networks provide full protection from public monitoring but can lack the scale benefits provided by the public IPFS network. A private network operates identically to the public one, but with one critical difference: it can only be accessed by nodes that have been given access, and it will only ever scale to those nodes. This means that the benefits of the public IPFS network's massive scale, such as geographic resiliency and speedy retrieval of high-demand content, won't be realized unless the private network is explicitly designed and scaled with this in mind.

Running a private network can be a great option for corporate implementations of IPFS — for one example, see [this case study on Morpheus.Network](../case-studies/morpheus.md) — because the network's topology can be specified and built exactly as desired.
Running a private network can be a great option for corporate implementations of IPFS — for one example, see [this case study on Morpheus.Network](../case-studies/morpheus.md) — because the network's topology can be specified and built exactly as desired.
1 change: 1 addition & 0 deletions docs/how-to/work-with-pinning-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ If you've decided that creating your own pinning service is right for you, learn
Third-party pinning services allow you to purchase pinning capacity for important data. Each service has its own approach to pinning data and managing pins, so users should do their research to ensure that the service meets their particular needs. Service providers include, but are not limited to:

- [Pinata](https://pinata.cloud/)
- [Pinion Build](https://pinion.build/)
- [Filebase](https://filebase.com/)
- [Storacha (formerly web3.storage)](https://storacha.network/)

Expand Down
43 changes: 42 additions & 1 deletion docs/quickstart/pin-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ Running your own node gives you complete control over your data while participat
- **Option B**: An account with at least one pinning service (free tier is sufficient):
- [Storacha](https://storacha.network) - Requires Node.js for their CLI
- [Pinata](https://pinata.cloud/) - Uses REST API with curl
- [Pinion build](https://pinion.build) - Uses REST API
- [Filebase](https://filebase.com) - S3-compatible, works with AWS CLI

- A sample file to upload, such as the [following image](../quickstart/images/welcome-to-IPFS.jpg):
Expand Down Expand Up @@ -105,7 +106,47 @@ curl -X POST https://api.pinata.cloud/pinning/pinFileToIPFS \
-F "file=@welcome-to-IPFS.jpg"
```

### Option 3: Filebase S3-Compatible API and Kubo RPC
### Option 3: Pinion build upload API

Pinion build provides a writable gateway you can use to upload files or car files.
Files added this way are immediately viewable through the gateway and broadcast to the IPFS network, and manageable through the standard pinning service API
or the web dashboard. Additional information can be found in their [API documentation](https://pinion.build/docs/)

Basic file upload with curl:
```shell
curl -X POST https://<environment>.pinion.build/upload/api/v1/?name=my-file \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @./myfile.txt
```


Their API also supports uploading multi-root CAR files. When done this way, each root CID in the CAR is pinned and managed individually.

Car file upload with curl:
```shell
curl -X POST https://<environment>.pinion.build/upload/api/v1/?name=my-dag \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/vnd.ipld.car" \
--data-binary @./content.car
```

The response of this API will include relevant information about the upload that (conveniently, perhaps) matches the PinStatus schema used by the pinning service API.
The pin will be available immediately through the pinion gateway, but the status will be "pinning" until the content is fully processed by the pinion bitswap providers and available on the IPFS network.

```json
{
"requestid": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"status": "pinning",
"created": "2025-01-15T12:00:00Z",
"pin": {
"cid": "Qm...",
"name": "my-file"
}
}
```

### Option 4: Filebase S3-Compatible API and Kubo RPC

Filebase offers an S3-compatible API, making it easy to use with AWS CLI or any S3 SDK. See their [S3-compatible API documentation](https://docs.filebase.com/api-documentation/s3-compatible-api) and [developer quick start guide](https://docs.filebase.com/getting-started/getting-started-guides/developer-quick-start-guide). They also offer a subset of Kubo RPC API - see their [IPFS RPC API documentation](https://docs.filebase.com/api-documentation/ipfs-rpc-api).

Expand Down
5 changes: 4 additions & 1 deletion docs/quickstart/pin.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ To follow along with this guide, you'll need:

- **Option B**: An account with at least one pinning service (free tier is sufficient):
- [Pinata](https://pinata.cloud/) - Popular IPFS pinning service with simple web interface
- [Pinion Build](https://pinion.build/) - Pinning service with a simple writable gateway, web dashboard, and integrations.
- [Filebase](https://filebase.com) - S3-compatible pinning service with web dashboard
- [Storacha](https://storacha.network) - Decentralized storage network

Expand All @@ -76,6 +77,7 @@ You can also configure remote pinning services in IPFS Desktop. See [working wit
Choose one of the following pinning services and use their web interface:

- **Pinata**: Use the [Pinata App](https://app.pinata.cloud) for a simple drag-and-drop upload experience - see their [quickstart tutorial](https://docs.pinata.cloud/quickstart)
- **Pinion Build**: Use their [Dashboard](https://pinion.build/dashboard) to upload files and manage pins.
- **Filebase**: Access their web dashboard and follow their [pin your first file guide](https://docs.filebase.com/getting-started/getting-started-guides/pin-your-first-file-to-ipfs)
- **Storacha**: Requires some technical skills, but their [browser upload guide](https://docs.storacha.network/how-to/upload/) may be a useful option if you are developing a web application. You can also visit [console.storacha.network](https://console.storacha.network) for web-based uploads

Expand Down Expand Up @@ -150,5 +152,6 @@ Possible next steps include:
- Learn how to [pin files using the command line](./pin-cli.md)
- Explore service-specific documentation:
- [Pinata documentation](https://docs.pinata.cloud/)
- [Pinion Build documentation](https://pinion.build/docs)
- [Filebase documentation](https://docs.filebase.com/)
- [Storacha documentation](https://docs.storacha.network)
- [Storacha documentation](https://docs.storacha.network)
Loading