-
Notifications
You must be signed in to change notification settings - Fork 5
Proposal: nft.storage v1 Epic #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mikeal
wants to merge
3
commits into
main
Choose a base branch
from
nft-storage-v1-1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 2 commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,97 @@ | ||
# nft.storage v1 | ||
|
||
Authors: @mikeal @alanshaw | ||
|
||
Initial PR: TBD <!-- Reference the PR first proposing this document. Oooh, self-reference! --> | ||
|
||
## Purpose, Impact, Definition | ||
|
||
We have a round of features and improvements we want to make to nft.storage. | ||
Each feature is the first step towards larger ongoing efforts so we're packaging | ||
this work as "v1" as it sets the scope of the project for the rest of the quarter. | ||
|
||
Those efforts are: | ||
|
||
* [Metadata Creation API](https://github.com/ipfs-shipyard/nft.storage/pull/56) | ||
* Most users don't want to create these metadata files by hand. We can significantly reduce | ||
errors and inconsistencies by doing this ourselves. | ||
* This interface also sets us up to extend the metadata for other use cases. Eventually this | ||
will turn into a larger spec project to define schemas for common use cases in NFTs. | ||
* Import all Ethereum NFT data | ||
* The beauty of a permissionless public ledger is that we don't need anyone's permission | ||
to just go and grab this data and store it for the benefit of NFT developers. | ||
* This will go a long way toward reducing the number of "missing" NFTs. | ||
* Once we have the data indexes we can start to provide other web visualizations, APIs, and | ||
widgets for developers to leverage the public chain data. | ||
* Wallet Auth | ||
* We need to migrate to magic.link anyway for our authentication. Once that is complete, | ||
adding wallet authentication will be easy. | ||
* This substantially reduces the barrier to entry for using the service. Developers | ||
won't need to signup with us or run any backend service, they can use our JS client | ||
or widget to simply mint the NFT and sign an auth token with us that is leveraged for the | ||
storage interface. | ||
* Batched Filecoin Deals | ||
* The service should be batching deals on a regular basis even if there hasn't been a full | ||
sector's worth of data added to the service. | ||
* The exact methods and data structures for this initial version are simple and rely on | ||
a centralized index of the data. | ||
* Eventually this process will migrate to a better collections data structure and is on a roadmap | ||
to be fully decentralized. | ||
|
||
#### Background & intent | ||
|
||
In its current state, nft.storage is a great free pinning service with a few APIs that provide | ||
sugar for NFT developers. After this work the scope, mission and roadmap of nft.storage will be clear | ||
and much broader than "pinning." | ||
|
||
* Both active and passive storage (you give us the data via an API **and** we pull data out of public chains. | ||
* We provide indexes and useful tools for developing NFT applications against public data. | ||
* Everything in nft.storage is backed up in Filecoin and *eventually* that process will be integrated | ||
into the initial storage request/transaction. | ||
* We are storing this data on behalf of NFT **users** as well as *developers*. In a decentralized | ||
application model data is leverage by multiple applications so it's important that the storage | ||
solution is not scoped to a single application. | ||
|
||
#### Assumptions & hypotheses | ||
_What must be true for this project to matter?_ | ||
|
||
NFT development is currently popular and rising in popularity. If that changes this project would | ||
matter less. | ||
|
||
#### User workflow example | ||
_How would a developer or user use this new capability?_ | ||
|
||
That varies by interface, detailed above and in individual feature PR's. | ||
|
||
#### Impact | ||
_How would this directly contribute to web3 dev stack product-market fit?_ | ||
|
||
This will meet the user needs around NFT's **today**. It's not the fully realized decentralized | ||
dream since we are meeting these user needs with a centralized service, but it puts all of these | ||
user workflows on our core protocols which is the most important part. | ||
|
||
#### Internal leverage | ||
_How much would nailing this project improve our knowledge and ability to execute future projects?_ | ||
|
||
This will lead to more users which we can continue to leverage to identify additional user needs. | ||
|
||
This will also capture a lot of data about NFT's in public chains that we can learn from. | ||
|
||
#### Confidence | ||
_How sure are we that this impact would be realized? Label from [this scale](https://medium.com/@nimay/inside-product-introduction-to-feature-priority-using-ice-impact-confidence-ease-and-gist-5180434e5b15)_. | ||
|
||
8 | ||
|
||
## Required resources | ||
|
||
#### Effort estimate | ||
|
||
- Small, 1-2 weeks | ||
- Medium, 3-5 weeks | ||
|
||
Most of these will land in under 2 weeks. A few may stretch out beyond that but not by much for these | ||
initial releases. | ||
|
||
#### Roles / skills needed | ||
|
||
The whole Spark team along with key Product and Marketing folks. |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.