Sona: A decentralized music streaming and marketplace protocol

Abstract

Sona is a novel music NFT (Non-Fungible Token) marketplace protocol that puts artists back in the drivers seat of their own production. With the advent of music streaming, it’s easier than ever to distribute your catalog, but harder than ever to earn a living wage as an artist. The median artist makes as little as $0.004 per stream[1] with no other direct, sustainable means of earning income. Sona is a decentralized music steaming and marketplace protocol that allows any developer to create a music streaming client or marketplace that helps artists make sustainable income. Sona allows artists to earn consistent income from their fans while collectors get financial upside in believing in artists they admire.

The Sona Protocol lets independent creators distribute directly to their fans, and developers to create meaningful digital experiences that connect super-fans and artists together through decentralized user interfaces. Through music digital asset staking, efficient marketplaces and intelligent emissions splitting, Sona puts artists, independent or not, ultimate control.

Introduction

The introduction of ERC721 NFTs has the potential to revolutionize the music industry by changing the game for music rights and ownership. With the ability to create 1-of-1 NFTs for music tracks, artists can maintain ownership of their work and earn a living wage through the sale of their NFTs. Moreover, the use of NFTs not only benefits artists but also listeners by providing a more immersive and interactive music experience.

Sona is a decentralized music streaming and marketplace protocol that leverages the power of NFTs to give artists control of their production and help them earn sustainable income. By allowing artists to mint their music as NFTs, Sona ensures that ownership of the "masters" ultimately remain in the creator’s control. In addition, Sona implements smart contract technology to ensure that artists receive fair compensation for their work and that their royalties are claimable in a transparent, efficient and on-chain manner. The platform will also offer a range of tools and resources to help artists build their fanbase and monetize their content in new and innovative ways. Sona represents a significant step forward in empowering artists and transforming the music industry for the better.

Decentralized and peer-to-peer commerce represents the next step in the distribution and monetization of audio-based digital assets. Thanks to the use of smart contracts, artists can now upload their content permissionlessly, distribute it, and retain a vast majority of the economic value, while still preserving their intellectual property rights.

Catalog

Artists on Sona are able to maintain an on-chain catalog of their music that is either 1) derived from their off-chain legacy catalog or 2) independently uploaded. Artists have the ability to “mint” their music as NFTs (called SONAs) and create one-time reserve auctions from them. SONA track data is added to Arweave at mint time with a metadata of the following format:

{
  "_version": "sona0.0.1",
  "name": "Track title",
  "image": "ipfs:/123",
  "external_url": "<https://sona.stream/track/123/token/123>",
  "animation_url": "ipfs://123",
  "description": "Description of the track",
  "attributes": [
    {
      "display_type": "date",
      "trait_type": "release date",
      "value": 1655745588
    },
    { "trait_type": "Artist", "value": "artist name" },
    {
      "trait_type": "Producer",
      "value": "collorator name"
    },
    {
      "trait_type": "Writer",
      "value": "collorator name"
    },
    {
      "trait_type": "Musician/Instrumentalist",
      "value": "collorator name"
    },
    {
      "trait_type": "BPM",
      "value": "114"
    },
    {
      "trait_type": "label",
      "value": "2x2 records"
    },
    {
      "trait_type": "genre",
      "value": "afro beats"
    }
  ]
}

The associated metadata simply translates catalog metadata from the off-chain streaming world to give a valid on-chain representation. All data applied on-chain mimics what is found off-chain in a traditional catalog. As a result, any music marketplace or frontend will be able to index SONA NFTs and include the metadata on their own site by fetching the data from an Arweave gateway. In addition to this Arweave payload, each token has a payoutAddress, where a predeployed Split can be assigned, but more on splits later. The payoutAddress is used in the Auction and rewards contract as the artist fund recipient if it is non-zero.

Auctions

After uploading a SONA, a creator can start a one-time reserve auction for the Collector Edition which allows 70% of the SONA’s rewards to be earned by the Collector. When minting a SONA, a creator may select which track they’d like to mint and associate any "collaborator" wallets and their respective splits. This allows for artists, producers or any other participant to earn their fare share of the generated royalties in a transparent and on-chain manner.

Once an initial bid is placed on a listed auction, the auction starts and can neither be canceled nor modified. The auction started is a standard 24-hour reserve auction with a reserve price denominated in either WETH or USDC. During the final 15 minutes of an auction, you can only place a bid if it is at least 15% higher than the previous highest bid. If your bid meets this criteria, the auction is extended for another 15% of its original duration. This process continues until the auction period has concluded. After the 24-hour period, the current highest bidder wins the auction. The auction must then be settled, releasing the funds from smart contract escrow and the royalty NFT to the highest bidder. The royalty NFT allows the Collector to claim 70% the rewards for the SONA.

sequenceDiagram autonumber
	actor Artist
  Artist ->> SonaReserveAuction.sol: createReserveAuction
	actor Bidders
	Bidders ->> SonaReserveAuction.sol: createBid
	Note over Artist,Bidders: Auction endTimestamp passes
	actor Winning Bidder
	Winning Bidder ->> SonaReserveAuction.sol: settleReserveAuction
	SonaReserveAuction.sol -->> Artist: ETH or USDC
	SonaReserveAuction.sol -->> Winning Bidder: SONA NFT minted to winning bidder

The auction contract, SonaReserveAuction is a basic contract with the following interface functions and events:

Events