audius-protocol
audius-protocol copied to clipboard
The Audius Protocol - Freedom to share, monetize, and listen to any audio content.
The Audius Monorepo
π§πΈπΉπ€πΆπ₯π·π»π€π
Audius is a decentralized, community-owned music-sharing protocol
For details on operating an Audius service, getting started with the Token and the API, see docs.audius.org.
Packages
| Name | Description |
|---|---|
commands |
CLI to perform actions against the protocol |
common |
Shared code between web and mobile |
compose |
Defines dependencies for audius-compose |
contracts |
The POA network smart contracts for the Audius protocol, encompassing user account, content listing, and content interaction functionality |
creator-node |
Maintains the availability of users' content via the Audius Storage Protocol, including user images and audio content. Also known as Content Node or mediorum. |
discovery-provider |
Indexes and stores the contents of the audius contracts on the Ethereum & Solana blockchains for clients to query via an API. Also known as Discovery Node. |
embed |
Embed player that renders on third party sites |
eslint-config-audius |
Shared lint configuration |
eth-contracts |
The Ethereum smart contracts that run the Audius protocol, encompassing the Audius ERC20 token and functionality for staking, off-chain service registration / lookup, and governance |
harmony |
The Audius design system |
identity-service |
Stores encrypted auth ciphertexts and handles oauth artifacts |
libs |
@audius/sdk and legacy shared utilities libs |
mobile |
The Audius reference mobile application |
solana-programs |
The Solana programs for the Audius protocol, encompassing user account, content listing, and content interaction functionality |
spl |
Handles Solana instructions for the Audius programs |
sql-ts |
A typescript database client |
trpc-server |
tRPC server used for serving data |
web |
The Audius reference web and desktop application |
Required Dependencies
We recommend using homebrew to install the dependencies required to run Audius:
brew install nvm pyenv rbenv homebrew/cask/docker docker-compose
You will need to add some shell configuration for
nvm,pyenv, andrbenv. Please refer to the respective documentation and the installation output
Getting Started
npm install
This will do the following:
- Install the correct versions of node, ruby, and python
- Install dependencies (npm packages, gems, pods, etc.)
- Set up command line tools for interacting with the protocol (dev-tools/README.md)
- Initialize git hooks
Running the Protocol
npm run protocol
For more details and troubleshooting please refer to dev-tools/README.md
Running the Client
Environments:
\*:devruns against local services\*:stageruns against the staging testnet\*:prodruns against production infrastructure
For example:
npm run web:prod
For all available commands please see the package.json scripts and the relevant package READMEs.
Contributing
We welcome contributions to Audius from anyone who opens a PR. Feel free to reach out to our team on Discord or via other channels for feedback and/or support!
Security
Please report security issues to [email protected] with a description of the
vulnerability and any steps to reproduce. Details on our bug bounty program are available at audius.org/security
License
Apache 2.0: LICENSE file