We have already seen a couple of example implementations of trading NFTs between two accounts, but all of them were on a per-contract basis. That means that for each trade, there was a separate contract which made it hard to know which tokens were actually up for sale and which token was used. This lead us to the idea of providing one central place to put tokens up for sale for maximum visibility of token sales.
What it does
The NFT marketplace provides a generic platform for selling and buying CW721 tokens with CW20 tokens. People can put their tokens up for sale and buy tokens from other sellers.
How I built it
For the sake of simplicity, we've deployed three smart contracts in the hackatom-wasm chain: our marketplace, a cw20-base and a custom cw721-based contract called "Cosmons". Detailed instructions on how to get started are outlined in the README: https://github.com/BlockscapeNetwork/hackatom_v/blob/master/contracts/marketplace/README.md
Challenges I ran into
One word: Rust.
Accomplishments that I'm proud of
Getting the hang of Rust (kind of).
What I learned
In the process of developing the marketplace contract, we learned Rust and gained some solid experience with CosmWasm.
What's next for NFT Marketplace
The next thing we would like to tackle is the integration of wasmd with peggy, so that we can run smart contracts on both ETH and Cosmos, and add support for NFT tokens in the peggy module.