🛠️Build on Arpeggi
What is the Audio Relationship Protocol (ARP)?
The Audio Relationship Protocol (ARP) is a composable on-chain registry for music primitives. ARP is a decentralized, transparent and trustless registry for the building blocks of music, allowing musicians to permissionlessly use each other's work thereby unlocking music’s full composability as an artistic form.
What has been built on top of ARP so far?
Arpeggi’s creation ecosystem at https://arpeggi.io is the first dApp built on top of ARP, allowing for the registration, exploration, consumption, and creation of protocol music primitives.
Arpeggi is in active development with a number of web3 projects and web3 artists to integrate existing catalogs with ARP for use in Arpeggi.
Why build on ARP?
Building ARP into your dApp provides access to this rich ecosystem of music. Registering media (songs, loops, or samples) to ARP makes them:
Trackable
Media can be tracked as it is used in derivatives in new media
Attributable
Registering the artist of this work to the permanent blockchain ledger makes it known and traceable to the original artist
Useable and remixable
Once media is registered, it becomes immediately available in Arpeggi Studio and other music dApps built on ARP can now use this media effectively
Composable utility
If your media has a token (NFT) representing it, you can link that token in the ARP registry to add composable utility to the token
Splits contracts built on top of ARP can funnel value back to not only the artist, but the owner of the token anytime the media is used or remixed. This enables artists to retroactively add financial utility to their tokens, rewarding their token holders and collectors.
License: Creative Commons
Note that for now, all media registered to ARP must already be released under a CC0 License.
How to Use ARP
Full ARP contract code can be found in the Github repo.
ARP Contract Addresses
Polygon - 137
0xb5028d5fc996ae03cf93c90ca469e77da0e3cd57
Mumbai - 80001
0x73e10C4949d91673B33bc271Ea111d14374239fC
Reading Media
Each piece of media in ARP has a unique index and can be read using that index:
If a piece of media registered to ARP also has an ERC-721 token representing it, it can be queried using the chainID, token contract address and ID:
The Media struct returned by ARP has the following schema:
Registering Media
Registering your media is as simple as calling the registerMedia
function on the ARP contract.
Notes:
Only one artist can currently be registered as the author of media.
In the future, expand this to an array of artists
Royalty splits/percentages
Migrate artist from v1 ARP to be [artist] in v2 ARP
dataUri
andmetadataUri
have four ways to be represented:string json object
URL pointing to a json object
Arweave URI or IPFS URI
the same schema as OpenSea’s Metadata standards for supporting decentralized file store solutions like IPFS and Arweave:
subcomponents
must only include ARP IDs of media that are already registered in ARP. One-shot samples usually don’t have subcomponents. Stems usually have samples as subcomponents. Songs usually have stems as subcomponents.There’s no need to include subcomponents that are already subcomponents of your subcomponents. E.g. if Sample A is registered as a subcomponent of Stem B, and Song C uses Stem B, when registering Song C its subcomponents should just be
[Stem B]
originToken
allows you to link the media in the protocol to an existing ERC-721 token that represents it. This is optional — not all media in ARP needs to be tokenized.If an
OriginToken
is specified on the same chain that ARP is on, ARP will validate that a valid token exists by using theOwnerOf(address)
. The token must have a valid owner (e.g. not be burned or unminted) for this to succeed.
Metadata schema:
We've defined a basic metadata
schema to make it easier for music creation tools to use the composable media registered to ARP. The goal is to be as simple as possible, while still remaining flexible. We expect this to grow and evolve over time as new use cases for ARP develop.
Example Metadata object:
Full metadata schema:
If you’re interested in building on top of or contributing to ARP, reach out to us at support@arpeggi.io! We'd love to hear what you're building.
Last updated