The Ujo Platform: A Decentralized Music Ecosystem
Vision / Mission
Our vision at Ujo is to empower music through a transparent and open ecosystem and our mission is to build resilient, sustainable and accessible infrastructure for artists, supporters, and developers. Through building towards the creation of a fair, efficient, and decentralized music ecosystem, we hope to enable opportunity and creativity to flourish.
Overview
To execute the vision and mission of Ujo, we are developing and designing the core technologies and protocols necessary to create decentralized music applications with a variety of services that further empower those applications and the users of them. We aim to provide the immediate benefits blockchain and decentralized technologies offer (self-sovereign identity, portability, provenance, payment channels, security), while balancing the use of infrastructure that provides world-class user experiences and legal compliance. We have defined four layers that compose the Ujo Platform stack.
Core Layer
The core layer consists of protocols developed as modular components that power the higher layers of the stack. These components will always be free, open source, and developed in collaboration with the greater decentralized technology community.
Because the music business can be legally complex with respect to territorial copyright law, transferable ownership, and many owners with different license types, we have had to design and implement new tools for a Web3 ecosystem to support licensing in a decentralized network. In addition to legally compliant design, we have thoughtfully added components that provide additional value at upper layers. These include a series of smart-contracts that include the following core functions: the Artist Registry, Licensing Handlers, Oracle for ETH to USD conversion, and Non-Fungible (NFT) Collectible Tokens. Along with these fundamentals at the ethereum level, we have also contributed to the development of COALA IP (a blockchain-ready, community-driven protocol for intellectual property licensing), and Constellate (a library and middleware for persisting linked data via IPLD to decentralized storage systems).
Artist Registry
The Registry is a publish/subscribe (pub/sub) event logger that allows individuals or applications to broadcast messages linking their ethereum address identity to metadata blobs stored off-chain via decentralized storage systems such as IPFS and Swarm using a Content-ID (Self-describing content-addressed identifiers for distributed systems). This allows event subscribers such as other service and application developers to retrieve the metadata and files associated with ethereum identities. Furthermore, we’ve designed this so that events broadcasted contain a schema.org and COALA IP compliant Content-Type so that all metadata is easily categorizable by listeners. An example event looks like this:
LogPublish(msg.sender, “0x9e22aa58bf2f5e60801b90fdd3b51b65d38ea20b”, “create”, “MusicGroup”, cid, prevBlock);
Licensing Handlers
The Licensing Handlers are smart-contracts responsible for handling licensing payments. Payments are input and the funds are disbursed to the appropriate beneficiaries towards a specific license referenced by it’s Content-ID. Similar to the Artist Registry these events are stored in the blockchain via event logs. During a payment, the handlers fetch the USD/ETH price from an Oracle (described in the next section), and notifies a variable amount of addresses of the action. An example of a notified beneficiary is issuing a collectible badge upon payment. The handlers enable proof-of-payments, granting the rights specified in the license to the licensor. An example event looks like this:
LogPayment(_cid, _oracle, ethUSD, msg.value, msg.sender, _buyer, _beneficiaries, _amounts);
Oracle
The Oracle contract is used to fetch the ETH to USD exchange rate. Currently this uses Oraclize, which forwards requests to get the rate from the Kraken exchange. The contract funds the Oraclize calls with ether deposited by an administrator (Ujo fulfills this role at the moment), and schedules the updates according to a set interval.
ERC-721 Badges
The Badge contracts contain an implementation of the ERC-721 spec along with a type of Non-Fungible Token (NFT) we’ve defined as a Badge. Badges are received for various actions users of the platform participate in including, but not limited to proof-of-purchases for music acquired through the platform. Other types of badges issued also include a variety of patronage tokens. We first realized the potential of cryptocollectibles and experimented with the concept in early July of 2017 with the release of the RAC album Ego in a custom Ujo store (which we wrote about in a post taglined: An Experiment in Tokenizing Social Capital). This was before massively popular dApps such as CryptoKitties, and CryptoPunks popularized the idea and garnered the widespread attention of the web3 community. We view this as one of the most exciting core components and will be continuously experimenting with the types of signals collectibles provide and the value it can bring to both creator’s and fans. Some of this value might come in the form of gamifying artist and fan relationships and encouraging participation in the network through unique incentivization schemes. Simon from our team has since written a follow up on the direction we are taking to expand on our early experiments which includes info on the idea of Continuous, Rare, Patronage Collectibles.
COALA IP
In addition to the smart-contract components of the Core layer, we’ve also done considerable amount of work contributing and building complementary tools we hope will benefit the greater decentralized ecosystem. One of these is COALA IP, which stands for The Coalition Of Automated Legal Applications — Intellectual Property Group (COALA IP). Members of the Ujo team joined the working group that formed when the need for a protocol for referencing licenses on the blockchain was realized. As stated on the COALA IP site: “COALA IP’s goal is to establish open, free, and easy-to-use ways to record attribution information and other metadata about works, assign or license rights, mediate disputes, and authenticate claims by others.” The initial implementation of the spec was built by BigchainDB. Following their lead and in close collaboration with their team, we built the JavaScript implementation of of the protocol last year. The need for a metadata standard that fits the requirements of decentralized licensing is not specific to only Ujo, and there has been a lot of continued interest in this project so we plan to continue iterating on this project in collaboration with the community.
Constellate
In tandem with the development of a protocol for metadata and IP, we also realized the need for simplicity for developers to interact with decentralized storage systems in a modular way. This sparked the idea for a library that would serve as a middleware to make uploading to networks such as IPFS and Swarm as simple as importing a library and instantiating a service object with the capabilities to put and get files and data to the desired backend by calling the associated methods for doing so. This library called Constellate abstracts most of the complexity of dealing with each network directly. This project is currently still a work in progress, but we plan to continue to iterate on the idea while open-sourcing the developments.
Service Layer
The service layer utilizes the components of the core layer to expose a variety of APIs that applications can build on top of. These are designed to be upgradeable, interoperable, and interchangeable leading to a robust set of technologies businesses and application developers can plug into. While it will always be possible to integrate directly with the free and open-source underlying core technologies, we believe that incentivized developers can bring additional value to the ecosystem at large by offering streamlined software services in exchange for nominal fees.
While the majority of our efforts up to this point have been concentrated on the Core layer, we intend to expand our work in this area in the coming months while exploring and assisting with potential partners that seek to build services on the Ujo Platform, or integrate with services that we intend to bootstrap. Some of these services include: advanced licensing mechanisms built on the OpenLaw protocol, an Indexing and Search Gateway / API, third-party verification solutions through uPort attestations and Payment Channels that enable a variety of continuous and subscription based payment types in addition to the perpetual licensing model already supported.
Application Layer
The application layer will consist of many front-end applications both desktop and mobile that will allow users to interact with the underlying protocols through unique implementations of user-interfaces suited for the particular experience the application seeks to provide.
In order to kickstart a supply and demand side market place for music, Ujo has put significant focus on this layer with the development and launch of the Creator’s Portal which was released in private alpha in January 2018 before opening it up to the public in March and deployed to Mainnet on May 11th during ConsenSys’ flagship conference Ethereal. The portal currently serves as the premiere dApp and gateway into the decentralized music ecosystem paired with the artist generated stores that are created when content is registered to the network. For the first time it enables any artist to register their own music directly to the ethereum Mainnet and sell it for real ether while fans can stream and purchase it; acquiring cryptocollectible representations of each release on the blockchain as they do. These applications will continue to be primary focuses of our development team in the coming months as we iterate on the features provided and improve the user experience.
That being said, given the fat protocol nature of this stack, there is a lot of opportunity for developers at this level to plug into the underlying layers and provide novel experiences, and we are excited to see the types of applications other developers in the community build. Given streamlined and cheap licensing of music in combination with efficient payments and decentralized access to music metadata and files the possibilities for new types of music experiences could be endless and we expect this to be the layer developers can quickly try out new ideas. On our end we’ve identified a couple areas we are looking to explore, beginning with Analytics in collaboration with Alethio, and event ticketing which ties into the last layer described in the section below.
Space Layer
The space layer is a new layer we’ve defined that ties directly to the community-based nature of music. We envision a world where decentralization empowers events, installations, and opportunities for those in music communities to to interact in physical and virtual spaces. Building off some of the core components, services, and applications described in the preceding sections, Ujo will continue to experiment with a variety of events. Particularly of interest are the ideas of self-sovereign identity in combination with reputation signals created through items such as cryptocollectibles. These sorts of devices give artists and fans an unprecedented and unique way of interacting with each other in a way that was previously unrealized. Some examples of potential applications involve special events that token holders gain access or discounted tickets to, virtual interactions through community chatrooms accessible to those that hold specific badges or unique experiences crafted around the aggregation of signals tied to individuals and their collective identities.
Looking Forward
At this stage of the Ujo development roadmap, we couldn’t be more excited to continue focusing on both applications in parallel with overarching platform vision. We are committed to continuously iterating on the core protocols while inspiring them through the higher layers in the stack, and the requirements of developers contributing to an open music ecosystem. It is our hope that through this approach we can generate feedback loops that help accelerate the development of new applications and experiments in tandem with the ease of integrating core technologies into them.
Our goal is not to build alone, but rather we hope that in collaboration with the decentralized technology community we can collectively unlock and empower music.
Acknowledgements
Many thanks to the whole Ujo team and especially those who reviewed this, added input and and have contributed ideas and inspiration through many discussions and conversations: Simon de la Rouviere, Jack Spallone, Jesse Grushack, Kyle Burke, Vlad Todirut, Thomas O’Brien, and Jonathan Schwartz.
I also want to acknowledge the work of other organizations in the ethereum ecosystem for conceptually influencing how we describe the Ujo Platform as a stack: ethereum itself, Gnosis, SpankChain, Aragon to name a few along with the greater decentralized technology community. Always thankful to be apart of this space 🚀
Do the challenges discussed above excite you? We’re growing fast and hiring for a variety of technical and non-technical roles.
🖐 Please get in touch!
🎵 Want to stay in the loop with upcoming developments? Stay tuned!