Skip to content

The Audius Protocol - Freedom to share, monetize, and listen to any audio content.

License

Notifications You must be signed in to change notification settings

AudiusProject/audius-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Audius Logo Audius Logo

The Audius Monorepo
🎧🎸🎹🤘🎶🥁🎷🎻🎤🔊



CircleCI

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
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

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, and rbenv. 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:

  • \*: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.

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