albums as smart contracts

When musicians mint music NFTs, what type of relationship do they have with their smart contract? (creator: smart contract)

  • 1:N - Album

  • 1:1 - Artist

  • N:1 - Platform

N:1 - Platform

  • there is one, shared, smart contract for all music on the platform.

  • upgradeable.

  • example: Mint Songs (OpenSea).

1:1 - Artist

Iman Europe has multiple project on sound.xyz

1:N - Album

Zora Drops - "FOUNDATION" by Glassface 🎵

NFT Factory

Onboarding the next 1 million web3 musicians requires easy-to-use UI for creators to deploy smart contracts for all 3 options. Free to use, at gas cost. Platforms (option #1) does not need to consider a factory because all NFTs use one, shared, smart contract. Artists / Albums need a permissionless NFT Factory for musicians to create new Album / Artist NFTs. Ethereum must be supported, as well as having networks for experimentation such as Polygon Mainnet, Sepolia testnet, Goerli testnet & Mumbai testnet.

Deployment Pattern - Proxy vs Standard

Transactions on Ethereum Mainnet are expensive. Deployment of large, feature-rich, smart contracts is expensive. Proxy contracts are less expensive to deploy. “Proxy contracts” are a pattern of deploying a, smaller, “proxy contract” to save state and interact with the, feature-rich, “implementation contract” while being controlled by the “proxy admin contract”.

For musicians using Zora Drops or Manifold, you don’t actually own the logic contract. You own a “proxy” that’s interacting with the core Zora / Manifold implementations. Maybe this is sufficient. However, proxies make me ask questions:

  • who controls the “proxy admin” contract?

  • how can the “implementation contract” change over time?

  • what would the gas cost be if I just deployed the base contract myself? without a proxy?

The alternative to proxies is to just deploy your own, non-upgradeable, copy of the base contract. I don’t know any easy examples of this today. That’s what I’ll be building today. If you know any examples of permissionless NFT factories that deploy a non-upgradeable contract let me know on Twitter or lens.

Why I choose to lean away from Proxy here.

Simple is best.

I want to build this codebase as simple as possible. If someone wants to take this and add Proxy deployment to save gas. Feel free. This code should be very easy to tweak to leverage the proxy pattern. Myself, I see creating simple, verified, contracts on Polygon, Arbitrum & other L2 scaling ecosystems are the future for the creator economy.

What we’re building today

  • NFT Factory - createAlbum.

  • RaibowKit - make web3 fun.

  • indexer (optional) - I don’t think I’ll get here today.

  • Lens Protocol - something I’m thinking more about.

Rainbowkit
Loading...
highlight
Collect this post to permanently own it.
sweetman logo
Subscribe to sweetman and never miss a post.