Blockcoders - Harmony SDK for Marketplace Proposal

Name of Project / DAO / Company

harmony-marketplace-sdk

Application type

Grant

Proposal overview

Our mission within this project is to make NFTs usable in the Harmony platform and achieve its wide adoption. The idea is to create an SDK that makes it easy to mint, claim, burn and even transfer any NFT to other chains like Ethereum or Polygon.

In order to be successful with this mission, we have outlined several steps that need to be taken.

  1. harmony-marketplace-sdk will be an open source library to facility development of Marketplaces on Harmony as matic.js ERC721 interface on Polygon network.
  2. It will serve as the starting point for every platform or developer that want to have an easy and secure way to interact with NFTs on Harmony
  3. In addition to having a standard implementation, harmony-marketplace-sdk will provide a general implementation of the sdk client and abstraction in case the user wants to extend the library.

Project Details

The SDK should be the starting point for marketplaces or platforms from Harmony that want a set of tools to easily integrate the NFT functionality. It will contain a similar folder structure as ethers.js where every package handles a different aspect of the NFT contracts. It will have documentation that describes how to use the library and how to extend it if you need a different implementation.

The library will provide the default implementation of standard NFT smart contracts which can be customized by developers. Also, the library will provide additional features which are not available in NFT smart contracts but can be useful for development.

Our team aims to improve the NFT smart-contract development experience and wants to improve Harmony, make it more user-friendly, and popularize it.

Team

Jose Ramirez (Blockchain Engineer): LinkedIn jarcodallo and Github jarcodallo
Brian Zuker (Software Engineer): LinkedIn brian-zuker-192921a5 and Github bzuker
Santiago Canosa (Fullstack Software Engineer): LinkedIn santiago-canosa-72220a122 and Github canissj
Ana Riera (Fullstack Software Engineer): LinkedIn anamriera and Github AnnRiera

Team experience

Jose Ramirez

Software Developer with 9 years’ experience in frontend / backend development. He considers himself a “perennial student”, and He stays in touch with the latest technologies. He is very passionate about decentralized finance and blockchain technologies. He built reliable software infrastructure with Node.js, Typescript and React. More recently working with Dapps using libraries like ethers.js, web3.js and polkadot{.js}.

Brian Zuker

He is a passionate software engineer with 8 years of experience who loves challenges and learning new things. Worked closely with the Product and Design teams to develop new use cases for customers. Worked with technologies such as Node, React, OpenLayers, Python, RabbitMQ, Docker, Kubernetes, MongoDB

Santiago Canosa

Fullstack Engineer with 5 years experience building products for massive companies, giving the best experience to millions of users every day. He is a team player who loves to create beautiful native apps while focusing on writing battle-tested, scalable code.

Ana Riera

Software Developer with 3 years’ in developing software solutions for individuals and small businesses. She is currently developing web applications in Node.js/Express to the backend side, MongoDB as a DBMS, and using Vue.js for the frontend side. She is a proactive, responsible, willing, and dedicated person, who seeks to acquire new knowledge and face the challenges that arise.

Proposal ask

Our proposal is to have an SDK for marketplaces with full support for NFT in Harmony blockchain. We expect to take 6-8 weeks maximum, our ask is 80,000 USD worth of One tokens. This would cover development and CI (CircleCI and coveralls) costs.

Justification

The necessity of a solution like this seemed rather urgent to us when we started to work with Harmony. We quickly realized that we strategically would like to become a team that builds in the ecosystem. We decided that we want to commit and help Harmony become widespread and used. Right now the usability of NFTs on Harmony is very low. Harmony-marketplace-sdk will be dedicated to change that.

Our target audience are developers and NFT platforms on Harmony. This project is the starting point for developers, coming from other ecosystems like Ethereum or Polygon, and it aims to improve NFT development on Harmony.

Development Roadmap

We have decided to describe a full roadmap of a harmony-marketplace-sdk here, with estimates.

Milestone 1:

Implement reusable basic interfaces, similar to https://maticnetwork.github.io/matic.js/docs/pos/ERC721/approveERC721ForDeposit/

  • Estimated duration: 2 weeks
  • Cost: 20,000 USD
Number Deliverable Specification
0.a Documentation We will add documentation, and create a tutorial on how to import and customize the sdk interfaces.
0.b Testing Guide We will add unit tests to cover all basic logic and integration test with NFT contracts
1.a Non Fungible token(Erc721) Interface We will implement reusable Erc721 interface
1.b Non Fungible token(Erc1155) interface We will implement reusable Erc1155 interface

Milestone 2:

Simplify usage of libraries. Add new features which extend NFT. Provide abstraction that will allow the creation of your own base implementation.

  • Estimated duration: 2 weeks
  • Cost: 20,000 USD
Number Deliverable Specification
0.a Documentation We will update previous documentation based on the new features.
0.b Testing Guide Update tests according to new features.
1.a Add support for HD Wallet-enabled We will add support for HD wallets like @truffle/hdwallet-provider
1.b Add batch functions for Erc721 and Erc1155 interfaces We will add support for batch functions like mint or burn an amount of NFT for a user in the same transaction.

Milestone 3:

Pre-release - Standardization of NFT contracts interfaces. Documentation and CI pipeline integration.

  • Estimated duration: 2 weeks
  • Cost: 30,000 USD
Number Deliverable Specification
0.a Documentation We will update previous documentation based on the new features.
0.b Testing Guide Update tests according to new features.
1.a Export Erc721 abstract interfaces Export the Erc721 interface as an abstraction to facilitate a custom implementation.
1.b Export Erc1155 abstract interfaces Export the Erc1155 interface as an abstraction to facilitate a custom implementation.
1.c Cross-chain ERC721/1155 bridges. A bridge will be a set of contract interfaces that help in moving assets from the root chain to the child chain and vice versa.
2.a Circle CI Add a pipeline for run the unit and integration tests with multiple version of Node.js and Javascript
2.b Coverage Generate the coverage report with coveralls
3.b Pre-release Publish a release candidate version for beta testing.

Milestone 4:

Release - We will provide inline documentation and examples of usage.

  • Estimated duration: 2 weeks
  • Cost: 10,000 USD
Number Deliverable Specification
0.a Documentation We will update previous documentation based on the new features.
0.b Testing Guide Update tests according to new features.
1.a License Add a MIT License
1.b Fixes Fix reporter bugs from pre-release.
3.b Release Publish a release version ready for use in production

Future Plans

We’re going to make a strong impact in the community, making NFT on Harmony simple and convenient for developers. We plan to share our expertise creating workshops online, handling all relevant forums and social networks.

Metrics for success

Number of developers or protocols using the sdk to interact with NFT contracts.

External links

Github Twitter Linkedin

3 Likes

Thank you for submitting a proposal to Harmony’s $300M Ecosystem Fund

We are in the process of reviewing your proposal. The Harmony community is also encouraged to participate to ask questions and provide feedbacks.

If you have more details to add, please do so by replying to this thread.

@Blockcoders can you socialize this proposal of having a Harmony SDK for NFT Marketplaces with the current NFT marketplace projects at Harmony?

I’d also like invite some developer community members with NFT exposure to comment on this

@ProfessorTango @Tailchakra @Globey.one @BRUNO @lootblocks @Harmoonies @expart.me @limi @0xsparkles @5HeadGames @wizzardblizzard @C4rm3K @FVNcapital @VoldemArt @MrJ @Galaxii @Prozex

3 Likes

Categorized this as a Bounty, it seems like it’s scoped out properly and Harmony will be open to funding it as it looks to be ready to be worked on and completed in an 8-week duration.

The question here is whether we need something like this.

1 Like

Hi @Jacksteroo , SDK for NFT Marketplaces is very important, new projects could use it easily developing front-end.

The daVinci SDK is ready and public, every new NFT project can use it already.
here: GitHub - davinci-gallery/davinci-sdk

Thanks @BRUNO , so how does it compare with daVinci SDK? (and I do see you bring this up quite a bit across other NFT projects)

Does this proposal have more contract interfaces than daVinci, or is it complementary?

Hi @Jacksteroo
We definitely can do that. Our idea is to have an SDK that can be easily used in the new protocols and extends the interfaces if it is needed.

thanks @BRUNO for shared the davinci-sdk

davinci-sdk is a great library, but we think this library is more related to the DaVinci NFT platform. Our idea is to have a SDK that can handle any type of NFT contract and in the case that these NFT contracts have extra functions, easily extend it w/o any re-implementation.

Harmony-marketplace-sdk will provide a well-defined structure and architecture to follow and the ability to write modules that can be totally independent, making it extremely easy to separate logic in different modules, which can then be extracted to different services with the confidence that it will still work as expected. It will be developed with Typescript, so we get type-safety while also providing escape hatches when starting out.

1 Like

The standards that you describe do exist in a sense already and I think we might all have a few different implementations of the smart contract’s added functionality you mention, but I could definitely see these being used by a lot of new up & coming developers & projects.

Anything that could streamline/automate our explorer interaction/parsing for NFT data would be a big help.

Bridge sounds very cool, this is probably what I’m most excited about, and your proposal roadmap is well defined. :smiley: :+1:

We would definitely like to work closely with you as testers while you develop. :pray:

3 Likes

@lootblocks thanks for your reply. we definitely want your feedback and support about this SDK. Let’s connect and see the way to help each other.

2 Likes

@Blockcoders a few questions:

  • where is this built out today?
  • Is it forked from someplace else?
  • If there are issues can this SDK for an extended period of time?

Hi @Jacksteroo

  • There are similar implementations to what we are proposing that exist for other projects, such as matic.js
  • This will however not be a fork of any existing project, but we’ll be basing our development on what other projects have tried and tested, in order not to run into the same issues they did and learn from their success.
  • Not sure if I understood your question correctly, but we plan to maintain this SDK for the foreseeable future, triaging and fixing issues that arise.

if you have any other question, please don’t hesitate to reach out us

Thanks. A couple more questions:

  • What inspired the team to come up with this suggestion?
  • There’s another initiative that’s coming up called Venly, and it’s a soup-to-nuts offering, rather than just an SDK (marketplace, wallet integration, NFT integration, Shopify integration, Unity plugin, etc)
  • How would developers (assuming this is open source) extend this beyond just NFTs. Would it go deeper into NFT or would it become more generic like web3.js?

Hi @Jacksteroo

  • We’re highly committed with the DeFi ecosystem, so we strongly believe in Harmony as the future of the ecosystem. According to that, we feel very excited to help to improve Harmony’s potencial, building tools which could widespread its use.
  • We didn’t know about venly, but our understanding is that, this is more like a web/mobile application that aims to easily integrate with NFT projects already built. Our idea is to provide a SDK for builders to easily integrate with NFTs
  • This will be an open source library as we mentioned before.The primary idea is to provide a SDK that can be easily used and extended (if it’s needed) without re-implement the logic across NFT contracts. Our plans for the future of this library are to extend it beyond NFT and provide something similar to ethers.js for the harmony community. Currently the idea is just focus on the implementation for NFT and anything related to that.

Structurally, the milestones and bounties are well setup within the guidelines of the ecosystem fund program.

Tapping on @ganesha and @leo to review the size of the bounty.

Approved for up to $80K Bounty. Congratulations! Looking forward to seeing this built out to deliver the first milestone to be reviewed. Funds will be released upon completing upon passing code quality approvals by the Harmony core engineering team.

Meanwhile, to prepare receiving funds, email your identification documents to kyc@harmony.one and create a Gnosis Safe MultiSig wallet at https://multisig.harmony.one and using instructions below
:arrow_right: Setup Gnosis Safe with MetaMask & 1Wallet

Checkout the Funding FAQ for further info at Harmony Funding FAQ. Join the Harmony Grants Telegram channel to share your story and to gain partnerships there by growing your own ecosystem.

Please join the Harmony Grants Telegram channel and Harmony’s Discord server.

We’d love :blue_heart: to see weekly updates on this thread here, to keep the community posted on this proposal’s progress!

Hi @Jacksteroo

Thank you for trusting on us. We will send all the information this week.

Best,

Hi @Jacksteroo

Just to give the Harmony community an update in the harmony marketplace sdk development. We started on Jan 10th. We will publish the first beta version for Milestone 1 this week to get your feedback.

1 Like

Hi y’all

We just completed the Milestone 1, Implement a reusable basic interfaces for Non Fungible token.

Milestone 1 - HRC721 and HRC1155 Interfaces

  • Implemented a reusable abstract class for Non Fungible tokens.
  • Implemented a reusable HRC721 interface.
  • Implemented a reusable HRC1155 interface.
  • Integration tests with harmony testnet to verify the correct functionality.
  • Added inline documentation.
  • Publish a beta release version for beta testing.

We have also published a version in npm and created a tag in github. Let us know if you have any questions about this. We’d love feedback from the harmony community about this first release.

cc: @Jacksteroo @lootblocks @BRUNO

2 Likes

@HarmonyUniverse spread the word? thanks

1 Like