Ujo is a music platform that uses the ethereum blockchain as the substrate for innovation by empowering artists, digitizing their music rights and metadata, sharing this information in an open and decentralized environment, thus enabling new applications, products, and services to license their catalogs and pay artists directly with minimal friction. You can learn more about the protocol here.
This monorepo contains JavaScript tools and applications that interact with the Ujo smart contracts and peer-to-peer network.
This project requires node >=10.12.0
and yarn >=1.10.1
. A unix shell is also required.
To get started, clone the repo and install its dependencies:
git clone https://github.com/ujoteam/ujo.js.git
cd ujo.js
Install packages:
lerna bootstrap --hoist
Build all the javascript source:
npm run build
NOTE: the build command must be run from the root directory right now, because the root directory's node modules has all the babel modules
Start a local blockchain with a specified networkID:
npm run ganache
Compile and migrate contracts to ganache private chain:
npm run migrate
TODO - add .env file
To test all packages, ensure the contracts have been migrate and then run:
yarn test
To run tests for an individual package, change into the appropriate directory and run the same command as above.
Remove all node modules (if you already have them installed):
lerna clean
Clean all smart-contract build files:
npm run clean-contracts
For next steps, take a look at documentation for the individual package(s) you want to run and/or develop.
Name | Version | Description |
---|---|---|
@ujoteam/licensing |
The Licensing Handlers are smart-contracts responsible for handling licensing payments. | |
@ujoteam/badges |
The Badge library contains an implementation of Non-Fungible Token (NFT) collectibles called badges. | |
@ujoteam/card |
The card packages contains an API for interacting with a Connext hub to enable payments over state channels |
Name | Description |
---|---|
@ujo/<todo> |
Description of private repos with. |
Thanks for your interest in contributing to ujoJS. Please have a look at the guide to get started.
Please check out the issues page for areas that could use help! We hope to see your username on our list of contributors 🙏🎉🚀