From 5524901356ac2d7f1fedf0a5bd10cf9fea845409 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 10 Oct 2018 17:42:59 +0200 Subject: [PATCH 01/16] Create eip_draft_insurancepolicies_erc721.md --- EIPS/eip_draft_insurancepolicies_erc721.md | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 EIPS/eip_draft_insurancepolicies_erc721.md diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md new file mode 100644 index 00000000000000..0cfd79020173d5 --- /dev/null +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -0,0 +1,122 @@ +--- +eip: +title: Insurance Policies as ERC721 Tokens +author: Christoph Mussenbrock (@christoph2806) +discussions-to: +status: Draft +type: Standards Track +category: ERC +created: 2018-10-10 +requires: 165,721 +--- + +## Simple Summary + +A standard interface for insurance policies, based on ERC 721. + +## Abstract + +The following standard allows for the implementation of a standard API for insurance policies within smart contracts. +Insurance policies are financial assets which are unique in some aspects, as they are connected to a specific risk, or have other unique properties like premium, period, carrier, underwriter etc. +Nevertheless, there are many potential applications where insurance policies can be traded, transferred or otherwise treated as an asset. +The ERC 721 standard already provides the standard and technical means to handle policies as a specific class of non fungible tokens. +In this proposal, we define a minimum metadata structure with properties which are common to the greatest possible class of policies. + +## Motivation + +For a decentralized insurance protocol, a standard for insurance policies is crucial for interoperability of the involved services and application. +It allows policies to be bundled, securitized, traded in a uniform and flexible way by many independent actors like syndicates, brokers, and insurance companies. + +## Specification + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. + +An ERC-XXX compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the +ERC721Metadata and the ERC721Enumerable interface**. + +The implementor MAY choose values for the ```name``` and ```symbol```. + +The **policy metadata extension** is **RECOMMENDED** for ERC-XXX smart contracts. +This allows your smart contract to be interrogated for policy metadata. + +```solidity +/// @title ERC-XXX Insurance Policy Standard, optional policy metadata extension +/// @dev See ... +/// Note: the ERC-165 identifier for this interface is 0x..... +interface ERCXXXPolicyMetadata /* is ERCXXX */ { + + /// @notice Metadata string for a given property. + /// Properties are identified via hash of their property path. + /// e.g. the property "name" in the ERC721 Metadata JSON Schema has the path /properties/name + /// and the property path hash is the keccak256() of this property path. + /// this allows for efficient addressing of arbitrary properties, as the set of properties is potentially unlimited. + /// @dev Throws if `_propertyPathHash` is not a valid property path hash. + function policyMetadata(uint256 _tokenId, bytes32 _propertyPathHash) external view returns (string _property); + +} +``` + +In analogy to the “ERC721 Metadata JSON Schema”, the tokenURI **MUST** point to a JSON file with the following properties: +```json +{ + "title": "Asset Metadata", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Identifies the asset to which this NFT represents", + }, + "description": { + "type": "string", + "description": "Describes the asset to which this NFT represents", + }, + "carrier": { + "type": "string", + "description": "Describes the carrier which takes the primary risk", + }, + "risk": { + "type": "string", + "description": "Describes the risk", + }, + "parameters": { + "type": "string", + "description": "Describes further parameters characterizing the risk", + }, + "status": { + "type": "string", + "description": "Defines the status of the policy, e.g. Applied, Underwritten, Claimed, Paid out, etc." + } + } +} +``` + +## Rationale + +Insurance policies form an important class of financial assets, and it is natural to express those assets as a class of non-fungible tokens which adhere to the established ERC-721 standard. +We propose a standard for the accompagning metadata structures which are needed to uniquely define an insurance policy. +While policies can have a multitute of possible properties, it is common that policies are issued by some entity, which is basically the entity responsible for paying out claims. +Second, an insurance policy is typically related to a specific risk. Some risks are unique, but there are cases where many policies share the same risk +(e.g. all flight delay policies for the same flight). +In general, the relation of policies to risks is a many-to-one relation with the special case of a one-to-one relation. +Third, most policies need more parameters to characterize the risk and other features, like premium, period etc. +Forth, a policy has a lifecycle of different statuses. +We believe that those four properties are necessary to describe a policy. For many applications, thoses properties may be even sufficient. +However, any implementation **MAY** chose to implement more properties. + +### On-chain vs. off-chain metadata +For some applications it will be sufficient to store the metadata in an off-chain repository or database which can be addressed by the tokenURI resource locator. +For more advanced applications, it can be desirable to have metadata available on-chain. +Therefore, we require that the ```tokenURI``` **MUST** point to a JSON with the above structure, while the implementation of the ```policyMetadata``` function is **OPTIONAL**. + + +## Backwards Compatibility + + +## Test Cases + + +## Implementation + + +## Copyright +Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). From 0058427fc6a4feacb7d50324bfcd09d3aa252e68 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Wed, 10 Oct 2018 17:44:31 +0200 Subject: [PATCH 02/16] Initial commit. --- EIPS/eip_draft_insurancepolicies_erc721.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md index 0cfd79020173d5..7ee6ddece7e3d9 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -17,10 +17,10 @@ A standard interface for insurance policies, based on ERC 721. ## Abstract The following standard allows for the implementation of a standard API for insurance policies within smart contracts. -Insurance policies are financial assets which are unique in some aspects, as they are connected to a specific risk, or have other unique properties like premium, period, carrier, underwriter etc. +Insurance policies are financial assets which are unique in some aspects, as they are connected to a customer, a specific risk, or have other unique properties like premium, period, carrier, underwriter etc. Nevertheless, there are many potential applications where insurance policies can be traded, transferred or otherwise treated as an asset. The ERC 721 standard already provides the standard and technical means to handle policies as a specific class of non fungible tokens. -In this proposal, we define a minimum metadata structure with properties which are common to the greatest possible class of policies. +insurance In this proposal, we define a minimum metadata structure with properties which are common to the greatest possible class of policies. ## Motivation From fe17198fdd832825eb56e9bf019c375b6bef5432 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Fri, 19 Oct 2018 10:55:22 +0200 Subject: [PATCH 03/16] update Author field --- EIPS/eip_draft_insurancepolicies_erc721.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md index 7ee6ddece7e3d9..d1e9a2b73ba97c 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -1,7 +1,7 @@ --- eip: title: Insurance Policies as ERC721 Tokens -author: Christoph Mussenbrock (@christoph2806) +author: Christoph Mussenbrock <@christoph2806> discussions-to: status: Draft type: Standards Track From 443320217a857167d5ad49368ffde3322b1ef269 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 22 Oct 2018 09:54:29 +0200 Subject: [PATCH 04/16] added discussions-to --- EIPS/eip_draft_insurancepolicies_erc721.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md index d1e9a2b73ba97c..7731988443c58d 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -2,7 +2,7 @@ eip: title: Insurance Policies as ERC721 Tokens author: Christoph Mussenbrock <@christoph2806> -discussions-to: +discussions-to: https://github.com/ethereum/EIPs/issues/1523 status: Draft type: Standards Track category: ERC From 0d87b59e8bc84ffa603e644c9df28daa06b3b5ae Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 22 Oct 2018 11:49:52 +0200 Subject: [PATCH 05/16] try to resolve travis bugs --- EIPS/eip_draft_insurancepolicies_erc721.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md index 7731988443c58d..1cdb5bab73f230 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -1,13 +1,13 @@ --- eip: title: Insurance Policies as ERC721 Tokens -author: Christoph Mussenbrock <@christoph2806> +author: <@christoph2806> discussions-to: https://github.com/ethereum/EIPs/issues/1523 status: Draft type: Standards Track category: ERC created: 2018-10-10 -requires: 165,721 +requires: 721 --- ## Simple Summary From 1ef57dd6bda5364c09f3e8da62668db51f6814ef Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Tue, 23 Oct 2018 22:07:10 +0200 Subject: [PATCH 06/16] Fix typo --- EIPS/eip_draft_insurancepolicies_erc721.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md index 1cdb5bab73f230..1808fecf108396 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -12,7 +12,7 @@ requires: 721 ## Simple Summary -A standard interface for insurance policies, based on ERC 721. +A standard interface for insurance policies, based on ERC 721. ## Abstract From 6a5f822981a7e0cd8e85789593ae14448972763e Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Sat, 1 Dec 2018 13:10:41 +0100 Subject: [PATCH 07/16] finally give it a number ;-) --- EIPS/eip_draft_insurancepolicies_erc721.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_draft_insurancepolicies_erc721.md index 1808fecf108396..ddf845a1031b6d 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_draft_insurancepolicies_erc721.md @@ -1,5 +1,5 @@ --- -eip: +eip: 1512 title: Insurance Policies as ERC721 Tokens author: <@christoph2806> discussions-to: https://github.com/ethereum/EIPs/issues/1523 From e51da14bea1373df96e8261a7338e82b5cd6201a Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Sat, 1 Dec 2018 14:04:38 +0100 Subject: [PATCH 08/16] finally give it the right number --- EIPS/{eip_draft_insurancepolicies_erc721.md => eip_1521.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename EIPS/{eip_draft_insurancepolicies_erc721.md => eip_1521.md} (99%) diff --git a/EIPS/eip_draft_insurancepolicies_erc721.md b/EIPS/eip_1521.md similarity index 99% rename from EIPS/eip_draft_insurancepolicies_erc721.md rename to EIPS/eip_1521.md index ddf845a1031b6d..2bae88151c3ba7 100644 --- a/EIPS/eip_draft_insurancepolicies_erc721.md +++ b/EIPS/eip_1521.md @@ -1,5 +1,5 @@ --- -eip: 1512 +eip: 1521 title: Insurance Policies as ERC721 Tokens author: <@christoph2806> discussions-to: https://github.com/ethereum/EIPs/issues/1523 From 8e0e5083698fb68206c3e971d5bdb5702ad06a1c Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Sat, 1 Dec 2018 14:07:26 +0100 Subject: [PATCH 09/16] replace underscore by dash in filename --- EIPS/{eip_1521.md => eip-1521.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename EIPS/{eip_1521.md => eip-1521.md} (100%) diff --git a/EIPS/eip_1521.md b/EIPS/eip-1521.md similarity index 100% rename from EIPS/eip_1521.md rename to EIPS/eip-1521.md From 2ea98f0cebb725582f908e2c4ea77854f191e593 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Sun, 19 May 2019 23:32:05 +0200 Subject: [PATCH 10/16] Resolving @axic comments --- EIPS/eip-1521.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1521.md b/EIPS/eip-1521.md index 2bae88151c3ba7..de2d78648f91de 100644 --- a/EIPS/eip-1521.md +++ b/EIPS/eip-1521.md @@ -1,7 +1,7 @@ --- eip: 1521 -title: Insurance Policies as ERC721 Tokens -author: <@christoph2806> +title: Standard for Insurance Policies as ERC-721 Non Fungible Tokens +author: Christoph Mussenbrock <@christoph2806> discussions-to: https://github.com/ethereum/EIPs/issues/1523 status: Draft type: Standards Track @@ -31,19 +31,19 @@ It allows policies to be bundled, securitized, traded in a uniform and flexible The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. -An ERC-XXX compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the +An ERC-1521 compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the ERC721Metadata and the ERC721Enumerable interface**. The implementor MAY choose values for the ```name``` and ```symbol```. -The **policy metadata extension** is **RECOMMENDED** for ERC-XXX smart contracts. +The **policy metadata extension** is **RECOMMENDED** for ERC-1521 smart contracts. This allows your smart contract to be interrogated for policy metadata. ```solidity -/// @title ERC-XXX Insurance Policy Standard, optional policy metadata extension +/// @title ERC-1521 Insurance Policy Standard, optional policy metadata extension /// @dev See ... /// Note: the ERC-165 identifier for this interface is 0x..... -interface ERCXXXPolicyMetadata /* is ERCXXX */ { +interface ERC1521PolicyMetadata /* is ERC1521 */ { /// @notice Metadata string for a given property. /// Properties are identified via hash of their property path. From 7c22c93111bfae270ba0b7b9e6ae1d827c5a88c3 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Sun, 19 May 2019 23:38:57 +0200 Subject: [PATCH 11/16] Resolving spell checker complaints --- EIPS/eip-1521.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-1521.md b/EIPS/eip-1521.md index de2d78648f91de..061972da356af3 100644 --- a/EIPS/eip-1521.md +++ b/EIPS/eip-1521.md @@ -93,14 +93,14 @@ In analogy to the “ERC721 Metadata JSON Schema”, the tokenURI **MUST** point ## Rationale Insurance policies form an important class of financial assets, and it is natural to express those assets as a class of non-fungible tokens which adhere to the established ERC-721 standard. -We propose a standard for the accompagning metadata structures which are needed to uniquely define an insurance policy. -While policies can have a multitute of possible properties, it is common that policies are issued by some entity, which is basically the entity responsible for paying out claims. +We propose a standard for the accompanying metadata structures which are needed to uniquely define an insurance policy. +While policies can have a multitude of possible properties, it is common that policies are issued by some entity, which is basically the entity responsible for paying out claims. Second, an insurance policy is typically related to a specific risk. Some risks are unique, but there are cases where many policies share the same risk (e.g. all flight delay policies for the same flight). In general, the relation of policies to risks is a many-to-one relation with the special case of a one-to-one relation. Third, most policies need more parameters to characterize the risk and other features, like premium, period etc. Forth, a policy has a lifecycle of different statuses. -We believe that those four properties are necessary to describe a policy. For many applications, thoses properties may be even sufficient. +We believe that those four properties are necessary to describe a policy. For many applications, those properties may be even sufficient. However, any implementation **MAY** chose to implement more properties. ### On-chain vs. off-chain metadata From 74c947e38730d14bbeedffcbaf58546b0d53f9e1 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 20 May 2019 00:49:25 +0200 Subject: [PATCH 12/16] Resolving comments --- EIPS/eip-1521.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/EIPS/eip-1521.md b/EIPS/eip-1521.md index 061972da356af3..42c18cda3a9f62 100644 --- a/EIPS/eip-1521.md +++ b/EIPS/eip-1521.md @@ -1,7 +1,7 @@ --- -eip: 1521 +eip: 1523 title: Standard for Insurance Policies as ERC-721 Non Fungible Tokens -author: Christoph Mussenbrock <@christoph2806> +author: Christoph Mussenbrock (@christoph2806) discussions-to: https://github.com/ethereum/EIPs/issues/1523 status: Draft type: Standards Track @@ -31,19 +31,19 @@ It allows policies to be bundled, securitized, traded in a uniform and flexible The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. -An ERC-1521 compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the +An ERC-1523 compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the ERC721Metadata and the ERC721Enumerable interface**. The implementor MAY choose values for the ```name``` and ```symbol```. -The **policy metadata extension** is **RECOMMENDED** for ERC-1521 smart contracts. +The **policy metadata extension** is **RECOMMENDED** for ERC-1523 smart contracts. This allows your smart contract to be interrogated for policy metadata. ```solidity -/// @title ERC-1521 Insurance Policy Standard, optional policy metadata extension +/// @title ERC-1523 Insurance Policy Standard, optional policy metadata extension /// @dev See ... /// Note: the ERC-165 identifier for this interface is 0x..... -interface ERC1521PolicyMetadata /* is ERC1521 */ { +interface ERC1523PolicyMetadata /* is ERC1523 */ { /// @notice Metadata string for a given property. /// Properties are identified via hash of their property path. From 74540d0e264a6f8a731e1cfdb4b28e28942aca5c Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 20 May 2019 00:51:50 +0200 Subject: [PATCH 13/16] Rename eip-1521.md to eip-1523.md --- EIPS/{eip-1521.md => eip-1523.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename EIPS/{eip-1521.md => eip-1523.md} (100%) diff --git a/EIPS/eip-1521.md b/EIPS/eip-1523.md similarity index 100% rename from EIPS/eip-1521.md rename to EIPS/eip-1523.md From 49b012d53948c8d70889a2e30a87ebdc936c15c7 Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 20 May 2019 01:37:07 +0200 Subject: [PATCH 14/16] Update: ERC-165 identifier --- EIPS/eip-1523.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-1523.md b/EIPS/eip-1523.md index 42c18cda3a9f62..c9bdd88c0c6253 100644 --- a/EIPS/eip-1523.md +++ b/EIPS/eip-1523.md @@ -42,7 +42,7 @@ This allows your smart contract to be interrogated for policy metadata. ```solidity /// @title ERC-1523 Insurance Policy Standard, optional policy metadata extension /// @dev See ... -/// Note: the ERC-165 identifier for this interface is 0x..... +/// Note: the ERC-165 identifier for this interface is 0x5a04be32 interface ERC1523PolicyMetadata /* is ERC1523 */ { /// @notice Metadata string for a given property. From e351aeff01fda12711e4a003f24e6e1e8cbd1c1c Mon Sep 17 00:00:00 2001 From: Christoph Mussenbrock Date: Mon, 20 May 2019 01:48:09 +0200 Subject: [PATCH 15/16] explicitly define the ERC 1523 Interface --- EIPS/eip-1523.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/EIPS/eip-1523.md b/EIPS/eip-1523.md index c9bdd88c0c6253..400aeeef92cd78 100644 --- a/EIPS/eip-1523.md +++ b/EIPS/eip-1523.md @@ -32,7 +32,15 @@ It allows policies to be bundled, securitized, traded in a uniform and flexible The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. An ERC-1523 compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the -ERC721Metadata and the ERC721Enumerable interface**. +ERC721Metadata and the ERC721Enumerable interface**: + +```solidity +/// @title ERC-1523 Insurance Policy Standard +/// Note: the ERC-165 identifier for this interface is 0x5a04be32 +interface ERC1523 /* is ERC721, ERC721Metadata, ERC721Enumerable */ { + +} +``` The implementor MAY choose values for the ```name``` and ```symbol```. From 8812b51328847ea3bdfe9886ee64839e5a9c694a Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Mon, 20 May 2019 00:55:03 +0100 Subject: [PATCH 16/16] Remove line wrap when using markdown highlighting to avoid failure with some parsers --- EIPS/eip-1523.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/EIPS/eip-1523.md b/EIPS/eip-1523.md index 400aeeef92cd78..31c2fef02c11b5 100644 --- a/EIPS/eip-1523.md +++ b/EIPS/eip-1523.md @@ -12,11 +12,11 @@ requires: 721 ## Simple Summary -A standard interface for insurance policies, based on ERC 721. +A standard interface for insurance policies, based on ERC 721. ## Abstract -The following standard allows for the implementation of a standard API for insurance policies within smart contracts. +The following standard allows for the implementation of a standard API for insurance policies within smart contracts. Insurance policies are financial assets which are unique in some aspects, as they are connected to a customer, a specific risk, or have other unique properties like premium, period, carrier, underwriter etc. Nevertheless, there are many potential applications where insurance policies can be traded, transferred or otherwise treated as an asset. The ERC 721 standard already provides the standard and technical means to handle policies as a specific class of non fungible tokens. @@ -31,8 +31,7 @@ It allows policies to be bundled, securitized, traded in a uniform and flexible The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. -An ERC-1523 compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement the -ERC721Metadata and the ERC721Enumerable interface**: +An ERC-1523 compliant insurance policy is a non-fungible token which **MUST adhere to the ERC-721 token standard** and **MUST implement theERC721Metadata and the ERC721Enumerable interface**: ```solidity /// @title ERC-1523 Insurance Policy Standard