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.
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 |
eth |
Handles interactions for the Audius Ethereum Governance & Staking Contracts |
sql-ts |
A typescript database client |
trpc-server |
tRPC server used for serving data |
web |
The Audius reference web and desktop application |
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
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
npm run protocol
For more details and troubleshooting please refer to dev-tools/README.md
Environments:
\*:dev
runs against local services\*:stage
runs against the staging testnet\*:prod
runs against production infrastructure
For example:
npm run web:prod
For all available commands please see the package.json scripts and the relevant package READMEs.
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!
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
Apache 2.0: LICENSE file