The home of JSON Schema validation right in your browser 🚧 Alpha 🚧 draft-7 only
Valid JSON:
xxxxxxxxxx
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/ipnftSchema",
"definitions": {
"ipnftSchema": {
"type": "object",
"properties": {
"schema_version": {
"type": "string",
"minLength": 5,
"maxLength": 14,
"pattern": "^(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)$",
"description": "Semantic version number of schema that is being used"
},
"name": {
"type": "string",
"minLength": 5,
"description": "Identifies the asset to which this token represents"
},
"description": {
"type": "string",
"minLength": 10,
"description": "Describes the asset to which this token represents"
},
"image": {
"type": "string",
"pattern": "^(ar|ipfs|http|https)\\b(:\\/\\/)\\w*",
"description": "a url that resolves to the payload in a decentralized storage location"
},
"external_url": {
"type": "string",
"description": "A URI pointing to an external resource"
},
"terms_signature": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "IP-NFT",
"description": "Identifier that this is an IP-NFT that complies to the standards of Molecule's IP-NFT"
},
"agreements": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"enum": [
"Sponsored Research Agreement",
"Joint Development Agreement",
"Patent License",
"SAFIP",
"Assignment Agreement"
]
},
{
"type": "string"
}
],
"description": "Type of Research Agreement"
},
"url": {
"$ref": "#/definitions/ipnftSchema/properties/image"
},
"mime_type": {
"type": "string",
"description": "Mime type of the file that is attached"
},
"content_hash": {
"type": "string",
"description": "a CID encoded content hash to verify file integrity"
},
"encryption": {
"type": "object",
"properties": {
"protocol": {
"type": "string",
"const": "lit"
},
"encrypted_sym_key": {
"type": "string",
"description": "This key needs to be passed to the lit nodes by the owner for decryption"
},
"access_control_conditions": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"contractAddress": {
"type": "string"
},
"chain": {
"type": "string"
},
"returnValueTest": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"comparator": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"comparator",
"value"
],
"additionalProperties": false
},
"conditionType": {
"type": "string",
"const": "evmBasic"
},
"standardContractType": {
"type": "string",
"enum": [
"ERC721",
"ERC1155"
]
},
"method": {
"type": "string"
},
"parameters": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"contractAddress",
"chain",
"returnValueTest",
"conditionType",
"standardContractType",
"method",
"parameters"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"contractAddress": {
"$ref": "#/definitions/ipnftSchema/properties/properties/properties/agreements/items/properties/encryption/properties/access_control_conditions/items/anyOf/0/properties/contractAddress"
},
"chain": {
"$ref": "#/definitions/ipnftSchema/properties/properties/properties/agreements/items/properties/encryption/properties/access_control_conditions/items/anyOf/0/properties/chain"
},
"returnValueTest": {
"$ref": "#/definitions/ipnftSchema/properties/properties/properties/agreements/items/properties/encryption/properties/access_control_conditions/items/anyOf/0/properties/returnValueTest"
},
"conditionType": {
"type": "string",
"const": "evmContract"
},
"functionName": {
"type": "string"
},
"functionParams": {
"type": "array",
"items": {
"type": "string"
}
},
"functionAbi": {
"type": "object",
"properties": {
"inputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"internalType": {
"type": "string"
}
},
"required": [
"name",
"type"
],
"additionalProperties": false
}
},
"outputs": {
"type": "array",
"items": {
"$ref": "#/definitions/ipnftSchema/properties/properties/properties/agreements/items/properties/encryption/properties/access_control_conditions/items/anyOf/1/properties/functionAbi/properties/inputs/items"
}
},
"name": {
"type": "string"
},
"payable": {
"type": "boolean"
},
"stateMutability": {
"type": "string",
"enum": [
"view",
"pure"
]
},
"type": {
"type": "string",
"const": "function"
}
},
"required": [
"inputs",
"outputs",
"name",
"stateMutability",
"type"
],
"additionalProperties": false
}
},
"required": [
"contractAddress",
"chain",
"returnValueTest",
"conditionType",
"functionName",
"functionParams",
"functionAbi"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"operator": {
"type": "string",
"enum": [
"or",
"and"
]
}
},
"required": [
"operator"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"protocol",
"encrypted_sym_key",
"access_control_conditions"
],
"additionalProperties": false
}
},
"required": [
"type",
"url",
"mime_type",
"content_hash"
],
"additionalProperties": false,
"description": "agreements are documents that back IP in the real world (e.g. paper contracts)"
}
},
"initial_symbol": {
"type": "string"
},
"project_details": {
"type": "object",
"properties": {
"industry": {
"type": "string",
"description": "Economic industry that this IP relates to"
},
"organization": {
"type": "string",
"description": "Organization that created the IP"
},
"topic": {
"type": "string",
"minLength": 3,
"description": "Topic of the IP"
},
"funding_amount": {
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "The value of the monetary amount"
},
"decimals": {
"type": "number",
"minimum": 0,
"maximum": 18,
"description": "The number of decimals"
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "3-letter intl currency code of the monetary amount"
},
"currency_type": {
"type": "string",
"enum": [
"ISO4217"
]
}
},
"required": [
"value",
"decimals",
"currency",
"currency_type"
],
"additionalProperties": false
},
"research_lead": {
"type": "object",
"properties": {
"first_name": {
"type": "string",
"minLength": 3
},
"last_name": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 3
},
"email": {
"type": "string",
"format": "email"
}
},
"required": [
"name",
"email"
],
"additionalProperties": false
}
},
"required": [
"organization",
"topic",
"funding_amount",
"research_lead"
],
"additionalProperties": false,
"description": "describes a research project that generates intellectual property"
}
},
"required": [
"type",
"agreements",
"initial_symbol",
"project_details"
],
"additionalProperties": false
}
},
"required": [
"schema_version",
"name",
"description",
"image",
"external_url",
"terms_signature",
"properties"
],
"additionalProperties": false,
"description": "Describes IP-NFT Token metadata"
}
}
}
Valid JSON:
xxxxxxxxxx
{
"schema_version": "0.0.1",
"name": "Our awesome test IP-NFT",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua...",
"image": "ipfs://bafkreih5d2453qzkprn35zm4gj5ff6ezroevnaaygxqlwcbqq2tg7ebbe4",
"external_url": "https://testnet.mint.molecule.to/ipnft/76",
"terms_signature": "0x1f030b9f1a91d74610cb296aa87f12b2207d2b336766fffad8c53b825f1bee7d30f3665076102fe635dd3664d564ae1e5e746794b58e8861feafacfa6767ea491b",
"properties": {
"type": "IP-NFT",
"initial_symbol": "AWSOME",
"agreements": [
{
"type": "Research Agreement",
"url": "ipfs://bafkreigqttkfe2vsgddhy4ohf3qs3eyacdz2vwindo33y7jefox3377yqq",
"mime_type": "application/pdf",
"content_hash": "bagaaiera7ftqs3jmnoph3zgq67bgjrszlqtxkk5ygadgjvnihukrqioipndq",
"encryption": {
"protocol": "lit",
"encrypted_sym_key": "dff20fe5fc6aace9669a2afc25745350208825c073c6b8e280dbf02ca772747288e3f0ea122cb89dd9531331bf828819f98c24aa675966c236159c75461a182759d1f3fc9322932cb69ed7f4c125685362137b28fac26069a0fe6a304c8dd28a64ab484b7f610d608232c9104f155b38344fc79992a2a1afabf8137395e1c4f40000000000000020990610adf31cab49dddf73c9466772c96d9c85e48fc6bf8a29da685b204b6cb03ea6509ddf117ae3a52ee637d450e08b",
"access_control_conditions": [
{
"conditionType": "evmContract",
"contractAddress": "0x36444254795ce6E748cf0317EEE4c4271325D92A",
"chain": "goerli",
"functionName": "canRead",
"functionParams": [":userAddress", "76"],
"functionAbi": {
"inputs": [
{
"internalType": "address",
"name": "reader",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "canRead",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
"returnValueTest": {
"key": "",
"comparator": "=",
"value": "true"
}
}
]
}
},
{
"type": "Assignment Agreement",
"url": "ipfs://bafkreihzm4ew2ldltz66juhxyjsmmwk4e52sxobqazsnlkb5cumcdsd3i4",
"mime_type": "application/pdf",
"content_hash": "bagaaiera7ftqs3jmnoph3zgq67bgjrszlqtxkk5ygadgjvnihukrqioipndq"
}
],
"project_details": {
"industry": "Space Exploration",
"organization": "NASA",
"topic": "Wormholes",
"funding_amount": {
"value": 123456789,
"decimals": 2,
"currency": "USD",
"currency_type": "ISO4217"
},
"research_lead": {
"name": "Carl Sagan",
"email": "carl@example.com"
}
}
}
}
​
jsonschema.dev@relequestual Thanks to Sponsors: