The foundational programmable IP metadata on Story
Skip the Read
Get a quick 1-minute overview of IP Assets here.
IP Assets are the foundational programmable IP metadata on Story. Each IP Asset is an on-chain ERC-721 NFT (representing an IP). If your IP is off-chain, you would simply mint an ERC-721 NFT to represent that IP first, and then register it as an IP Asset.
When an IP Asset is created, an associated ⚙️ IP Account is deployed, which is a modified ERC-6551 (Token Bound Account) implementation. It is a separate contract bound to the IP Asset for controlling permissions around interactions with Story’s modules or storing the IP’s associated data.
An IP Asset is created by registering an ERC-721 NFT into Story’s global IP Asset Registry.
If you’d like to jump into code examples/tutorials, please see How to Register IP on Story.
On Story, your IP is an NFT that gets registered on the protocol as an IP Asset. However, both NFTs and IP Assets have their own metadata you can set, so what’s the difference?
Standard | What is it? | |
---|---|---|
NFT | Opensea ERC721 Standard | Things like name , description , image , attributes , animation_url , etc |
IP | 📝 IPA Metadata Standard | More specific to Story, this includes necessary information about the underlying content for infringement checks, authors of the work, etc |
All other metadata, such as the ownership, legal, and economic details of an IP Asset are handled by our protocol directly. For example, the protocol stores data associated with parent-child relationships through the 📜 Licensing Module, the monetary flow between IP Assets through the 💸 Royalty Module, and the legal constraints/permissions of an IP Asset with the 💊 Programmable IP License (PIL).
Jump to the code and see a completed code example of adding NFT & IP metadata to an IP Asset
Learn how to add metadata to your IP Asset with a step-by-step explanation.
In practice, whether you are using the SDK or our smart contract directly, our protocol asks you to provide 4 different parameters:
WorkflowStructs.sol
contract here.ipMetadataURI
- a URI pointing to a JSON object that follows the 📝 IPA Metadata StandardipMetadataHash
- hash of the ipMetadataURI
JSON objectnftMetadataURI
- a URI pointing to a JSON object that follows the Opensea ERC721 StandardnftMetadataHash
- hash of the nftMetadataURI
JSON object