The web3.storage team is proud to offer a preview of our web scale IPFS cloud. We are releasing a new upload API (in beta right now), and we think you’ll appreciate early access. We’ll be leading a workshop on Tuesday October 4th at NodeConf covering these APIs, so take a look and then sign up to work alongside the experts. [Edit: you can see refined versions the workshops recorded at IPFS Camp here – start with UCAN Build Apps with IPFS for the beta API content.]
We’ve architected web3.storage to be the fastest, easiest way to get data onto the distributed web. Here are a few features we think every distributed storage solution should offer:
Global CDN — content addressed data is inherently cacheable. Take advantage of our insane defaults, or go faster with SuperHot global pre-caching. With web3.storage, your data is delivered at industry leading speeds.
Streaming uploads — the w3up CLI can upload files of any size, by automatically chunking large files into manageable sized blocks. Uploads are encoded to CAR format for IPFS for compatibility with the rest of the IPFS and Filecoin ecosystem.
Self-sovereign identity — Users control their own keys and identity, as web3.storage implements DID and UCAN, enabling applications to run in the web of trust.
Dynamic naming — Cryptographically verifiable change feeds of immutable IPFS content identifiers support interactive app experiences like chat and shared game worlds.
Lightweight flexible UI components — we know that every app needs similar baseline functionality like identity and account management, file and data upload, and query subscription, so you are invited to try our component library, which makes it easy to use web3.storage from any frontend framework.
Workflow friendly CLI tooling — you can also access the full suite of web3.storage APIs via our command line interfaces. To get started with the beta upload API visit the CLI repo here. There is also a client library which is used by both the UI components and CLI. If you are are writing raw Node.js then you’ll want to start with the npm package.
A web UCAN trust
The beta w3up API uses UCAN for authorization (if this sounds familiar, we have a library that fits UCAN into the current API). UCANs are tokens that contain verifiable signatures that can prove the requester has permissions to access a set of services for a given identity. No centralized validators required - you can take a valid UCAN to any service that accepts it! We believe UCANs will become a foundation for web3 because they make it easy for application developers to coordinate across peers and service providers.
- Part of the brilliance of UCANs is that an actor that has a valid UCAN can subsequently issue a subset of that UCAN’s permissions to a new UCAN token for another actor.
- One simple use case to imagine: An NFT minting service wants their users to be able to directly upload to NFT.Storage on the service’s behalf (and be able to programmatically generate access tokens to do so), so they can simply delegate capabilities via UCAN, granting users the ability to upload directly to the service’s NFT.Storage account.
- You can also imagine many other situations — end-users with Web3.Storage accounts granting permissions to applications, other services accepting the same UCANs that NFT.Storage and Web3.Storage do (to really achieve a world with no lock-in), and more.
We are seeking feedback on w3up
Registering and uploading data to w3up is currently free. Additionally, accounts registered during this preview window will be integrated with the broader web3.storage platform's account system. However, data uploaded during this preview window will eventually require payment for us to continue storing it and making it available. By using w3up, you consent to the web3.storage terms-of-service. Please refer to the web3.storage website for information on pricing. If you do not intend to pay, please do not use w3up for long-term storage. (The exception is if you are uploading NFT data, in which case we will migrate your data and account to NFT.Storage which offers free storage of NFTs.)
This is beta software, so you are among the earliest users to try it out. Please connect with us if you run into unexpected issues or if you want to share any feedback. To get the engineering team’s attention as quickly as possible, we recommend filing an issue in the w3cli Github repo.
Data uploaded to w3up will not be associated with existing NFT.Storage and/or Web3.Storage accounts (if you use both, please register with w3up with different email addresses and sandbox uploads that will be associated with different services between these different accounts). Uploads to w3up beta will become part of your web3.storage account when the migration is complete.
Hopefully, you’re already excited about w3up. It represents a giant step in our evolution from just providing storage to adding many other services that make it possible and easy for any developer to use web3 data protocols. By introducing UCANs and doubling down on our architecture’s use of IPFS and CAR files (all open and verifiable protocols), we’re on the cusp of truly unlocking the “Data Layer” — the ability to interact with data without constraining your application’s architecture, having to think about where it is and can be stored, and worrying what service providers you’re locked into.