Funding Proposal: Fractionalized Secret NFT Reference Implementation

This is a proposal I plan to put on-chain in the coming days, based on the approved CCBL project Standard / reference implementation for fractionalized NFTs.

Introduction

NFTs sit at the frontier of blockchain and are seeing rapid growth in interest and use cases. Fractionalization is a relatively new and revolutionary concept that brings multiple benefits such as democratizing access to high-value NFTs, increasing liquidity, allowing DAOs to be formed around NFTs, and creating ETF-like products based on NFT collections. Critically, Secret NFTs have attractive features above what is possible on transparent blockchains, for example access control which provides artists with greater monetization strategies. As a result, fractionalized Secret NFTs will push the frontier and open up a wave of use cases.

For this to happen, a critical first step is to create a reference contract to implement a standard across the ecosystem. This will provide developers with the specifications and a base contract to use as-is or as a starting point for their applications.

I plan to write the specification and create the reference contract to implement fractionalized NFTs on Secret, which will enable Secret to capture this rapidly growing trend. The project will consist of three parts, which I will implement in this sequence:

  • Part 1 implements the core functionality to fractionalize Secret NFTs
  • Part 2 will allow collections of NFTs to be fractionalized, and implements trading fee royalties (a way to create artist royalties in fractionalized NFTs)
  • Part 3 enables cross-chain functionality to bring fractionalized privacy-preserving NFTs to other IBC-enabled blockchains

Detailed product description and roadmap

I anticipate this to take around 4 months to complete. The reference contract will already start providing utility to Secret Network once Part 1 is complete as developers can start using the contract to fractionalize single NFTs at that point. Parts 2 and 3 will add important features to offer a complete solution for fractionalized NFTs to Secret developers and users.

Part 1: core functionality: Ability to fractionalize SNIP-721 tokens (or SNIP-1155 once implemented) [1 - 1.5 months]

Fractionalizing an NFT creates tokens that represent fractional ownership and are economically tied to the underlying NFT. Fractionalized NFTs can be traded freely on the network for as long as the NFT remains fractionalized. At any point, any Secret address can also place a bid to buy the underlying NFT. If the bid is successful, the NFT is “de-fractionalized” and the bidder receives the underlying NFT. Fractionalized NFT owners will then receive their pro-rata share of the sale proceeds.

Fractionalization mechanics:

  1. Secret address (the “creator”) locks a SNIP-721 token in a smart contract
  2. Creator configures fTokens (which are SNIP-24 tokens with additional features), eg: total supply, name, voting thresholds, etc.
  3. Smart contract mints fTokens and transfers to Creator. fTokens represent fractional ownership of a specific underlying NFT.
  4. Creator can then distribute fTokens, eg: through an auction sale, by providing liquidity on an AMM, or airdropping to specific addresses. fTokens for each given NFT are fungible as they are SNIP-24 tokens, so can be freely traded.

De-fractionalization mechanics:

  1. At any point in time, bidder(s) can place bid(s) to buy the underlying SNIP-721 token. To do this, a bidder stakes SCRT + some fTokens in contract (a spam prevention mechanism)
  2. fTokens owners vote/veto whether to accept bid(s). Creator would have specified rules and thresholds: a) veto or vote; b) % vote/veto required to pass/block sale, etc.
  3. If bid is rejected, bidder can retrieve staked SCRT and fTokens. fToken holders’ fractional ownership of underlying NFT remains unchanged
  4. If bid is accepted, smart contract unlocks underlying SNIP-721 and bidder can claim it. fTokens owners then trade in their fTokens to redeem pro-rata share of sale proceeds (SCRT tokens)

Part 2: NFT collections and trade fee royalties: Ability to fractionalize a collection rather than just a single NFT [1 - 1.5 months]

The ability to fractionalize a pool of NFTs can bring many new use cases. Communities can be formed around the NFT collection with their own governance rules, token utility, and reward mechanisms. Communities are incentivized as fractional owners to improve/uphold the value of their NFT collection, as value of the fTokens is economically tied to the underlying NFTs. This can be done via eg: marketing their NFTs, selectively adding or selling NFTs to improve the overall value, improving the reward mechanisms, adding utility to ownership of its fTokens.

With Part 2 implemented:

  • Creator can fractionalize a collection of SNIP-721 tokens, rather than just a single NFT. Resulting fTokens represent fractional ownership of the collection of NFTs
  • fTokens owners can later deposit additional NFTs to the collection (eg: through governance votes, depending on the configuration set by the creator)
  • Bidders can bid for specific NFTs from the collection (don’t need to buy the whole collection)

Reward/Rent/Royalty distribution:

  • Ability to mint additional fTokens to distribute rewards generated by underlying NFT (eg: rent accruing to the underlying virtual land NFT). Distribution configuration to be set at beginning (when creator initially fractionalizes NFTs), and can be changed via governance votes. Configurations can include eg: pro-rata, stakers only, creator only, etc.
  • “Trade fee royalties”, where creator can configure proportion of trading fees of fTokens to accrue to the artist or fractional owners (a way to implement artist royalties on fractionalized NFTs) – can be done through burn mechanism or minting new fTokens

Part 3: Cross-chain fractionalized NFTs: bringing privacy preserving fractionalized NFTs to other chains [1 - 1.5 months]

Secret can further cement itself as the privacy solution to the broader Cosmos ecosystem by bringing fractionalized privacy-preserving NFTs to other chains. This can be implemented by allowing other IBC-enabled Cosmos chains to interact with the fractionalized NFT Secret smart contracts through IBC.

IBC token transfers:

  • newly minted fTokens can be transferred to other IBC-enabled chains
  • bidders can bid with IBC tokens

IBC message transfers: interface to allow holders of fTokens living on other chains to interact with the contract (can be done after the upcoming update which will enable CosmWasm1.0 on Secret):

  • vote/veto bids
  • participate in governance votes
  • receive share of rewards/rent/royalties

Team

DDT: I am a regular contributor on Secret Network, primarily developing smart contracts. I recently launched Scrt-RNG, which implements a 2-transaction random number generator on Secret Network, bringing significantly more secure randomness to the network while remaining fee-free and fully on-chain (see feature blog post: Secret Feature: Secret Oracles - Bringing Privacy to Smart Contracts and Public Blockchains). I am also involved in a new initiative (“Secret University”) to create better developer education and onboarding materials for Secret developers.

Github: DDT5 ¡ GitHub

Discord handle: DDT#4695

Funding Request

The funding request is 68,500 USD, payable in SCRT from the Community Pool to fund the project, which will cover Parts 1, 2 and 3, as well as ongoing maintenance work on the reference contract code and documentation.

(figure excludes the 10% volatility buffer per the 2022-Q1 Secret Network Charter)

5 Likes

I know that based on multiple reports for 2022’s crypto outlook, fractionalized NFTs are a potential huge growth area. It’s fantastic to see somebody proposing to bring these fractionalized NFTs to SCRT network. If SCRT network wants to compete with the big players, I think fractionalized NFTs are a must.

4 Likes

Super excited about the potential for this! The NFT domain is a huge part of Secret Network, excited to see continued innovation on this front.

2 Likes

This is super exciting @DDT!

And thank you for stepping up and taking on one of the approved CCBL projects :rocket:.

SecretChainGirl supports your funding proposal :heart: .

1 Like

I’d like to add several important items to the proposal (following deeper scoping work and some initial feedback):

  • Part 1
    • Implement ability change the configuration of private metadata / viewership permissions of the underlying NFT, without having to re-fractionalize the NFT
  • Part 2
    • Implement ability to configure who can view / reveal private metadata of NFT collections, including overall metadata (eg: what is in the collection), and the private meta-data of specific individual NFTs.
    • Also, implement Voting/Veto mechanism to change this config through governance, especially as NFTs are added to collection
  • Part 3
    • Rewrite Part1 and Part2 in CosmWasm1.0, so the contract is streamlined with Part 3

These are important parts of the reference implementation, and increase the scope by ~20%. As we are still in discussion phases, I am proposing a revised ask of USD 82,200 (in SCRT equivalent, payable in SCRT).

I look forward to discussing this proposal in the governance meeting today.

(as before, figures exclude the 10% volatility buffer per the 2022-Q1 Secret Network Charter)

1 Like

Love part 1, fractionalized NFTs are a must. We’re curious though if getting a SNIP-1155 standard is more pivotal before Part 2 and or 3 of this proposal. Especially considering gaming.
@DDT we’re curious if that can be an undertaking before say IBC fractionalized compatibility.

1 Like

@ronin_secret I will be very happy to do the SNIP-1155s standard as well, especially if that’s the community’s preference. Of course this means I will effectively be taking on two CCBL items, but the SNIP-1155 ref implementation and fractionalized ref implementation are related, so it probably makes sense. I am happy to do the following, if the community prefers:

  1. For the proposal that I plan to put on-chain in the coming days:

    • Single fractionalized sNFTs reference implementation (Part 1) for SNIP-721
    • SNIP-1155 reference implementation. For SNIP-1155 I’ll create the multi-token standard and reference implementation for Secret Network. It will be a based on the standards specified in ERC1155 / CW1155, with the added Secret Network-specific features, eg: viewing keys, query permits, access control, private metadata, etc., including adjustments to these features to fit the multi-token standard.
  2. Once done, I’d come back on-chain for a second funding round to implement the additional features:

    • fractionalized sNFT collections (Part 2)
    • IBC integration for fractionalized sNFTs (Part 3)
    • IBC integration for SNIP-1155 (probably needed?)

And at some point along the way, I will incorporate fractionalization for SNIP-1155 too.

The advantage is that the timing works well. I agree SNIP-1155 is probably quite urgent. And in H2 2022, we’d probably start seeing NFT collections and Secret’s expanded role in bring privacy to Cosmos via IBC becoming important trends. So the items in (2) will be timely.

Interested to hear what the community thinks.

3 Likes

Thanks for the modification, we’d 100% support this split! We’d love to see 1155 implemented so we hope the rest of the community is on board.

1 Like

With NFTs booming in the industry, I can definitely understand the necessity of diving into fractionalized NFTs.

Definitely interested in this and can’t wait to see the development of this!

2 Likes

I’m curious to the implementation of this.
we were thinking of just depositing a NFT (or several) into a SNIP-20, and potentially adding a function to remove it (which would go through a regular governance proposal).

what have I got wrong in this approach?

1 Like

Thanks everyone for the positive feedback and support here and on other channels. It seems there is a preference to first create the core fractionalized NFT (“Part 1”) and the SNIP1155 reference contracts, before adding features later on. I’ve outlined the revised scope/ask below, which I plan to put on-chain in the coming days:

1. Reference Implementation of Fractionalized Secret NFTs ("sNFT"s): Implement core functionality (“Part 1”):

  • fractionalization of SNIP721 tokens
  • bidding process
  • defractionalization process
  • private metadata viewership logic (while in fractionalized state)

2. SNIP1155 reference implementation: multi-token standard reference implementation for Secret Network:

  • create reference contract based on ERC1155 / CW1155
  • add Secret Network-specific features, eg: viewing keys, query permits, access control, private metadata, etc., including adjustments to these features to fit the multi-token standard.

I believe having these two pivotal standards/features on Secret Network will be very valuable. I also believe it is value accretive to the ecosystem to have the core functionalities built out first before additional features.

In terms of timeline, the scope of this is around 4 months, but with features becoming available earlier for applications willing to iron out some code and deal with less documentation. I estimate 1-1.5months for (1), 1.5-2months for (2), and an additional month or so for debugging/testing/tying loose ends. My ask for doing these two CCBL items is $100,000.

If the community is supportive, I plan to come back on-chain after this to fund Parts 2 and 3 of fractionalized sNFTs (my original scope), and potentially cross-chain integration for SNIP1155.

2 Likes

Thanks for your comments. You are right that the fractionalized tokens will be modified SNIP-20 tokens. But SNIP721 tokens have many features not present in “normal” NFTs which, although provides very nice features, creates complexity when implementing this. For example, the viewership of metadata, control of permissions, royalties, etc. should ideally be available and configurable while in the fractionalized state. There will also be a second piece that handles the bidding process and governance, and we’d want that to be integrated within the same implementation to take advantage of the available features, have a cleaner design, and reduce the potential for bugs/errors.

It’s also about bringing a consistent standard to the ecosystem, so applications know what specifications fractionalized sNFTs conform to, otherwise it will be a mess. If we are talking about being able to interact with SNIP20, SNIP721 and an upcoming SNIP1155, which will each be undergoing their own development paths, then there is a lot of (non-trivial) nitty gritty that needs to be thought through to create a smooth experience for applications and users.

And later on with collections (with the ability to add NFTs, with their private metadata complications…, and the ability to bid for specific NFTs), and with crosschain functionalities, it starts getting very complex, and having a standard and a base contract that has taken care of all the issues for applications will be very valuable.

1 Like

If your question is more on “why this implementation rather than a different architecture altogether”, I’ve designed it this way because fractionalized NFTs with the largest market cap today are based on a similar design. Without getting too much into why market forces might have determined this to be the superior implementation, it should be fair to say this is the battle-tested design.

1 Like

my question was more #1.

the ‘because it’s done on ETH this way’ is a flawed argument for a lot of reasons.

mainly. most of ETH design is hyper-focused on gas-costs, so they design with that in mind.
I’m of the belief we (cosmos chains) should build a better, potentially incompatible, version of ERC721/1155, that works better, and learns (and improves on) the 721.

but as I said… was more interested in educating myself on why not ‘just transfer a NFT’ to a CW20 approach that would work in most cosmos chains.

and you’ve answered it.

Happy to support this one.

Has our support.

Looking forward to these, especially 1155

I’d rather proposers tackle 1 CCBL at a time with a separate proposal for each instead of taking two items simultaneously.

2 Likes

Hi, cow.level, thanks for the feedback. I hear your point and it was my original intention to do only fractionalized NFTs. The feedback I was getting suggested people were happy and generally preferred this though, which is why I adjusted my proposal. Maybe this one is a bit of a special case, because these two projects are quite related – they are both reference contracts, and SNIP1155 needs to eventually interface with the fractionalized NFT contracts. So there are very likely efficiency gains by developing both together.

1 Like

I believe the original proposal included trade royalties and cross chain implementation, while the new proposal instead only covers the part 1 of the original post(core functionality) with SNIP 1155 implementation taking precedence over the orignal part 2 and 3 of prop 75. (Hoping that makes sense)

I still see a discrepancy with the ask going from 68.5k to 100k, however. The timeline shows that 4 months is still what the roadmap is looking like so I’m curious to know what the bump in pricing is for?

Would we be able to dive a little deeper into understanding the price ask for this? :slightly_smiling_face: Thanks in advance!

2 Likes

Sure, it is a combination of a few points. Doing both will ultimately be more work. It may still be 4 months but it’ll be more hours in total. There’s a certain amount of upfront time spent to set up a new project, and after that there’ll be two ongoing projects to maintain instead of one. Part of the reason for 4 months originally is also that there is a constraint where Secret Network needs to upgrade its infrastructure before Part 3 becomes possible, and I hear it is around June. There isn’t this constraint with the updated proposal. I originally planned to spend a bit more time on some other initiatives (eg: Secret University, sorry team!), but with the new proposal I will be dedicating most of my time to this.

Also, I will be doing the item I added later “Implement ability change the configuration of private metadata / viewership permissions of the underlying NFT, without having to re-fractionalize the NFT” which wasn’t in the original proposal, so the bump is more from 82.2 to 100.

I think this will bring a lot more value to the ecosystem, since getting SNIP1155 is arguably more urgent and valuable than the added features. While I hope the funding amount should be a reflection of value as well, the changes were driven by workload, so from my perspective the hourly amount is essentially unchanged.

2 Likes