[Proposal #53] Add smart-contract for KREAd dapp

Summary

Kryha is proposing to add a smart-contract that enables dynamic NFTs on the Agoric chain. This contract will serve as the backbone of the Mainnet dapp KREAd (kread.app) previously mentioned in Upgrade #49. KREAd is a dapp that allows users to mint their own Citizen and customize their appearance and influence within the Sages Universe created by the artist Enmanuel(Instagram, Twitter). KREAd will be the first mainnet partner dapp launching on the Agoric chain, with a target release date of: 2 October 2023 (Cosmoverse).

Application Overview

The KREAd dapp serves as the first implementation of dynamic NFTs on the Agoric chain. The app will let users mint their own characters with a personalized name, receiving a character NFT that is then further composed of several items that are equipped to it (SFTs). The owner of this character is then able to customize this NFT by equipping more items, unequipping currently equipped items and replacing items with new items that more suit the user’s style and abilities.

These personalized characters play a pivotal role within the Sages universe created by Enmanuel, as they allow the token holders to alter the course of the universe and collaborate on the story being created thus, creating an ever-changing community built narrative around these characters.

Users are able to interact with each-other by buying and selling their assets (characters and items) on the in-dapp marketplace, trying to assemble the perfect for them character.

Background

KREAd was ideated, built and deployed by Kryha, a Web3 lab with over 6 years of experience in the space. Working with a multitude of platforms including but not limited to: Ethereum, Dfinity and Aleo.

Kryha’s first big collaboration with the Agoric platform was at the Cross-chain hackathon 2020, where the team worked on an initial implementation of Semi-fungible tokens, which were later added as ERTP assets.
During the development of KREAd, the Kryha team has worked closely with Agoric engineering to share learning and provide platform improvements where possible, contributing to several components of the Agoric platform.

Contract/Component Details

The contract will provide the following functionality for end-users:

Minting of a character (NFT):

  • The user pays a fee in IST for minting and are allowed to choose their own character name
  • The NFT gets a random base character image assigned + accompanying information
  • The character inventory seat gets 3 items assigned to it (the character now owns these items)
    • 2 common items
    • 1 uncommon or better item

Managing of their characters inventory:

  • Equipping a new item
  • Unequipping a currently equipped item
  • Swapping equipped and unequipped items
  • Unequipping all items

Character Page

Buying and selling of KREAd assets (items and character):


Item details in character management view

  • Adding their sell listing to the marketplace (i.e. selling a character or item for IST)
  • Buying a listed character or item from another user
  • Buying a listed item from the initial artist collection

Character marketplace view

The contract will provide the following functionality for the artist:

  • Contract governance

  • Defining the base characters and base items on core-eval proposal

  • Listing a collection of items in the marketplace through governance (invoke API)

    • This is done through governance to allow the current governing body to release new collections if they desire to do so, all existing items and collections will be available as is
    • In future releases the decision to add collections will be decided upon by the KREAd community
  • Receiving royalties from transactions made on the marketplace and for the minting of the character

The contract will provide the following functionality for Kryha:

  • Contract governance
  • Receiving platform fees from transactions made on the marketplace and for the minting of the character

Deployment Checklist and Security Review

Kryha and Agoric OpCo have jointly completed the Mainnet-2 partners checklist: Mainnet 2 Deployment Checklist · Agoric/agoric-sdk · Discussion #8280 · GitHub

Resources

Links to relevant and important resources such as website, company/team website, GitHub links, social media profiles.

Kryha:

KREAd:

Testnet/Launch Milestones

By running long-lived testnets and using that environment to evaluate software before promoting it to mainnet, validators play a vital role in maintaining a healthy, robust network for the Agoric community. Qualifying or certifying any new software or smart contract as production ready requires significant testing, and it is recommended that validators evaluate the following milestones before launching an on-chain governance proposal on the agoric-3 mainnet.

Include a numbered list of milestones for testing during the Emerynet period going into mainnet.

:zero: – Kryha publishes KREAd bundle to emerynet on: Monday the 25th of september

:one: – Kryha publishes KREAd core-eval proposal to start contracts on Emerynet on: Monday the 25th of september

:two: – The Kryha team uses Emerynet to verify all on chain functionality of contract, ensuring the above listed contract details function as expected

:three: – The Kryha team, Emerynet validator community, and Agoric OpCo monitor on-chain behavior and performance, noting abnormalities where they arise and provide fixes before the mainnet proposal.

  • Areas of attention:
    • Chain responses
    • Storage node behavior and usage
    • RPC interactions of KREAd.app and Emerynet

:four: – Keep the community updated on testnet progress by posting updates to this thread or sharing details about this release in Discord or Twitter so that the entire community can follow progress towards launch.

:five: – After successful testing with no abnormalities on Emerynet, Kryha will publish the KREAd bundle to mainnet

:six: – Kryha will start the contract on mainnet through a core-eval proposal with minimal changes, the changes only being to the assets (characters and items) available to the contract (baseCharacters array and baseItems array). Date to be on-chain: 2nd of October 2023 (at Cosmoverse)

  • Kryha uses the invoke API method on governance to publish a collection of items to the mainnet KREAd marketplace
8 Likes

Here is the release candidate to be posted on Emerynet, includes the bundles and the proposals.

2 Likes

Ping Dashboard Proposal is currently live, please take a look and give us your vote :slight_smile:

2 Likes

Thanks to validators action we managed to get the proposal to Emerynet and were able to succesfully test KREAd contracts on it.

september

:two: – The Kryha team uses Emerynet to verify all on chain functionality of contract, ensuring the above listed contract details function as expected

:three: – The Kryha team, Emerynet validator community, and Agoric OpCo monitor on-chain behavior and performance, noting abnormalities where they arise and provide fixes before the mainnet proposal.

  • Areas of attention:
    • Chain responses
    • Storage node behavior and usage
    • RPC interactions of KREAd.app and Emerynet

These above steps have been completed succesfully and Kryha is ready to publish the bundles to mainnet!

3 Likes

Agoric OpCo has worked with the Kryha team on contract validation and working through the deployment checklist. Everything requested was completed. OpCo product and engineering is supportive of this deployment.

Congrats Kryha team on being the first to make it to this step!

2 Likes

Release KREAd-rc1 · Kryha/KREAd · GitHub updated published release for KREAd

Minor changes to the contract proposal:

  • added KREAd brands to boardAux for Keplr legibility
  • added mainnet assets to contract proposal
  • updated to mainnet governers and platform+royalty addresses
1 Like

We are live with a mainnet proposal
CF80A025BE93BE599766B86A81BFE47B12D04F7991513FB890E668080B0DE65A

2 Likes

Really exciting to see this application go to mainnet voting period! Big congrats to the Kryha team for getting to this stage!

This is very exciting! It’s the first

Thank you for the comprehensive write-up. It’s amazing. I’m really looking forward to all of Kread, the NFTs launching with it, and the NFT toolkit libraries used in its creation!