Skip to content
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

TIP-27 IOTA NFT standards #65

Merged
merged 35 commits into from
Nov 28, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
f5f17c0
feat: add IOTA NFT tip
coodos Mar 4, 2022
74b233a
chore: update IRC-2 TIP
coodos Mar 4, 2022
eb0f15c
Update tip-0027.md
AdamEunson Mar 4, 2022
5eb75b4
Merge pull request #1 from Kami-Labs/AdamCroply-update
coodos Mar 4, 2022
8fd3655
Update tip-0027.md
AdamEunson Mar 4, 2022
32b6734
Update tip-0027.md
AdamEunson Mar 4, 2022
066e1cb
chore: bump standard name and commit suggested changes
coodos Mar 9, 2022
ecac842
Updated Section headers
AdamEunson Mar 9, 2022
edc7924
Merge pull request #2 from Kami-Labs/AdamCroply-headers-update
AdamEunson Mar 9, 2022
a1d9bd5
Added Versions as TIPs comment
AdamEunson Mar 9, 2022
4d5ea15
docs: added description for royalty system
coodos Mar 29, 2022
5e1939e
Create irc27.schema.json
coodos Mar 29, 2022
02c16b9
chore: fix royalties part
coodos Mar 29, 2022
f12a5eb
Edited out the registry section and updates
AdamEunson Apr 2, 2022
ae29bcf
Edited tip30 to tip31
AdamEunson Apr 2, 2022
bf3120c
Updated tip link and royalties
AdamEunson Apr 5, 2022
096eaed
Merge pull request #3 from Kami-Labs/AdamCroply-patch-removeregistry
AdamEunson Apr 5, 2022
4083ba4
Merge branch 'iotaledger:main' into main
AdamEunson Apr 5, 2022
c658d1e
Updated example royalties
AdamEunson Apr 5, 2022
5dbf829
Updated example royalties
AdamEunson Apr 5, 2022
481a359
Create tip-0033.md
AdamEunson Apr 5, 2022
259ed3a
Merge pull request #4 from Kami-Labs/AdamCroply-tip33
AdamEunson Apr 5, 2022
ba48997
fix: irc27 schema
coodos Apr 6, 2022
b748957
Update tip-0027.md
coodos Apr 6, 2022
c696eaa
chore: remove tip 33
coodos Apr 6, 2022
35ac461
chore: update INFT to IOTA NFT
coodos Apr 28, 2022
4c8783e
chore: update policyId to collecitonId
coodos Apr 28, 2022
197c87f
Replace policy with collection
lzpap Apr 28, 2022
41d828d
use Open Sea standart for attributes
huhn511 Jun 17, 2022
91cc339
Merge pull request #5 from huhn511/main
lzpap Jun 19, 2022
07510ab
Clean up JSON schema
lzpap Jun 21, 2022
ac9687f
Desscribe NFT Collections, add practical examples
lzpap Jun 21, 2022
cfa52f5
Removed from immutable metadata
robertf26 Nov 23, 2022
3a96412
Updated header file
robertf26 Nov 23, 2022
61b4c5d
Merge pull request #7 from iotaledger/Kami-Labs/main
AdamEunson Nov 28, 2022
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
53 changes: 53 additions & 0 deletions tips/TIP-0027/irc27.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/iotaledger/tips/main/tips/TIP-0027/irc27.schema.json",
"title": "IRC27 IOTA NFT Metadata Schema",
"description": "A JSON schema for validating IRC27 compliant NFT metadata",
"type": "object",
"properties": {
"standard": {
"type": "string",
"description": "identifier for the metadata standard used",
"pattern": "^IRC27$"
},
"version": {
"type": "string",
"description": "version of the metadata standard used",
"pattern": "^v\\d+.\\d+$"
},
"name": {
"type": "string",
"description": "A descriptive name of the token"
},
"description": {
"type": "string",
"description": "some information about the NFT project"
},
"type": {
"type": "string",
"description": "MIME type of the asset"
},
"uri": {
"type": "string",
"description": "URI pointing to the resource where the file with `type` MIME type is hosted"
},
"collectionName": {
"type": "string",
"description": "A human readable name for the NFT collection"
},
"royalties": {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should consider index here. You might want to define sequence as not all royalties might be paid every time. For example, what happens if the royalty is below dust?

"type": "object",
"description": "object containing the payout addresses mapped to their percentage share"
},
"issuerName": {
"type": "string",
"description": "name of the artist"
},
"attributes": {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend to get inspired from ERC-721 / ERC-1155 metadata standard:

  • for keys definitely should be all lower case
  • you should consider support for localizations, rich formatting ( display value, css) - as recommended standard ofc

Copy link
Contributor

@AdamEunson AdamEunson Apr 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are heavily inspired by the ER721 standards, camelCase or snake_case are acceptable in word separation as per JSON schema standards. For example the fromBlock key as defined by the ERC-721 Standard which is used regularly in examples on the Ethereum Foundation docs. If you are referring to the value, as this is simply a text string this is not an issue.

I am sure Merul can comment a little further in regard to the localisations.

image

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure what you mean by localization here but if you mean glyphs from other languages than that shall be covered by unicode already

"type": "array",
"description": "array containing any additional data as objects."
}
},
"required": [ "standard", "type", "version", "uri", "name" ]
}
Loading