This is a demo for the MPEG21 MCO to Smart Contract UPM Response to
N19504, based on Ethereum Smart contracts. The transformation from an
MCO contract into a smart contract is performed by considering
payments as transactions and actions to be performed on IP entities in
the form of assets, i.e. Non Fungible Tokens
In this demo:
1) Each IP entity has its own identifier and a dedicated smart
2) It is considered only one smart contract at the address
0xBbdA7C2fB654F901B38743A6A6D5afC27497791d of the Ropsten test
network. If you are reading here you should have
, so switch to the Ropsten test network in the extension for the
3) This smart contract holds all the infos regarding MCO contracts
related to this IP entity. Infos consist in a list of MCOContract
structures, in which each struct contains parties (Ethereum addresses)
and pointers to Non Fungible Tokens.
are generally used for assets, debts or virtual collectables (games)
and are, together with ERC20, the actual main use case for smart
5) When you click on "Upload MCO Contract to Ethereum Blockchain" a
new MCOcontract structure is created within the main smart contract,
taking in input the data that it is found on the left editor.
6) The left editor reads JSON-LD files encoded from MCO contracts.
Parties are associated to random addresses, while for each
DeonticExpression a new ERC721 token is minted. Each token will be
assigned to the Permission/Obligation/Prohibition assignee and an URI
will point to the action infos.
7) The right editor shows data that is ACTUALLY STORED ON BLOCKCHAIN.
Basically all the token issued since the start of the implementation.
8) The bottom left editor shows part of the final smart contract
created from the information found in the JSON-LD when payments are