The Seabug Protocol — Self-Governed NFTs on Cardano

Seabug
4 min readJan 13, 2022

Cardano thrives on unity and innovation — iterating on designs and standards and driving progress through radical transparency, R&D, and decentralized decision making. In this spirit, we are proud to share our most recent design developments for consideration by the CNFT community. With this in mind, we have a potential solution that will drive the ecosystem together into the future. This comes at a time when several possibilities have emerged that could irreconcilably divide the community.

Importantly, our work is an iteration upon the current CNFT minting policy standard, and, as such, we stand on the shoulders of giants. Our proposal offers additions to the metadata standard in tandem with smart contract functionality. It prevents the adoption of walled garden approaches which lead to abuses of power. Rather, this design turns Cardano itself into a community-driven platform for NFTs where everyone is on the same playing field without centralized entities.

Self-Governed NFTs

With self-governed NFTs, no one can steal or undermine a user’s ownership of their NFT. In the worst possible scenario, a malicious actor who successfully exploits a vulnerability in a dApp incorporating self-governed NFTs could only prevent the robber from reselling it — while being unable to resell it themselves. This means NFT owners will not need to rely on OpenSea’s grace to mark an NFT as stolen, and ownership is preserved across the Cardano blockchain.

Furthermore, the Seabug protocol builds upon the already-established Cardano native NFT standard (CIP 25) and improves upon CIP 27 to ensure that royalties are paid upon every purchase. We discuss our proposed changes in more detail later in this article.

The most notable benefits of adopting this protocol would be:

  1. The aforementioned royalty assurance through smart contracts on-chain (for both artists and marketplaces)
  2. Providing NFT owners stronger guarantees about their NFT ownership (preventing their NFT from being stolen even if the token itself falls into the wrong hands)
  3. Maintaining this ownership while committing your token to an auction running in the Hydra Head

On the third point, the Seabug team will be working closely with IOHK’s Hydra team to ensure early access and feedback on one of the most important avenues for scaling Cardano. In the case of the Seabug protocol, auctions can take place inside a Hydra Head through the commit schema without the risk of losing NFT ownership.

Naturally, we aim to create the first marketplace incorporating this standard and furthermore invite others to consider its benefits and to make use of it. The code is free and open-source, and a product of the Plutus Pioneers Program sponsored generously by IOHK. Feel free to check it out here. It is still being worked on, but it is a fully functional proof of concept. We’ll continue to optimize and test it over the coming weeks and bring it up to the standard the Cardano community expects. This will include an audit process to ensure correctness.

Technical Overview

Briefly, a native Cardano token has two components: CurrencySymbol and TokenName. The former is a hash of the minting policy after all of its arguments have been applied. This will be a unique identifier. The latter is a 32-byte ByteString that has mostly been used as the name of the token.

We take advantage of the TokenName being subject to the Minting Policy and encode in its name the asset owner’s Public Key and the NFT’s listing price. The price may be changed by re-minting it, which is only possible with the owner’s signature. On the other hand, in order to change the owner, royalties and/or fees must be paid to the specified parties including, of course, the current owner.

The CurrencyScript takes the entire configuration of the NFT as a parameter — including royalties and fees, to whom they must be paid, and in what proportion. Where applicable, platform fees may be included, and platforms that adopt this standard can naturally configure these fees to be paid to their own marketplace. Additionally, this configuration may include whatever data the minting party may deem appropriate. This data incurs no size penalty as it is hashed before being included as a parameter to the Minting Policy.

And that’s about it — the minting policy in a nutshell. As you can see, it is lightweight and flexible. It also integrates well into the current community standard. We believe our proposal will enhance the NFT experience for the community members of Cardano.

A Fork in the Road

There are two versions of the changes we are proposing: a lightweight one and a heavier-weight one. The former adds a single field to the CIP 25 descriptor, namely the pubkey hash of the owner. This will distinguish that the owner of the NFT is separate from the token holder to every chain crawler (such as pool.pm with whom we have been consulting). In turn, chain crawlers will be able to display this information clearly to the community.

The heavier-weight version would include the full platform and artist royalty configuration inside the metadata thereby iterating upon CIP 27. This completely removes the need for any centralized server to hold information about the NFT. We believe that the heavier-weight implementation will provide a greater benefit to the community as it would be fully decentralized.

Naturally, this invites concerns about CNFTs that have already been minted. To address these, we will create a generic CNFT converter capable of integrating these tokens into this standard while preserving their uniqueness and history. This will effectively move Cardano’s NFT legacy forward into a more safe and secure standard. Our plans also extend into the future to create a full suite of financial contracts that make use of this standard, as well as a Chainlink-inspired addition to this protocol that we’ll leave up to a community vote whether or not to make a reality.

Stay tuned for another post next week!
- Zy & Luke

--

--