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: ![]()