Please describe your proposed solution
Much of the existing Cardano NFT services and infrastructure are centered around financial aspects. Marketplaces, lending protocols, staking platforms and statistics websites are all focused on the financial aspect. However, most NFTs are primarily digital collectibles, not financial products. Yet there are almost no services built specifically with collectors in mind. Tapping into this unexplored side of the NFT space, Collectibles Exchange aims to provide a comprehensive and complex platform for the swapping of non-fungible Cardano native assets.
Current data from taptools.io indicates that less than 10% of NFTs within the top 25 Cardano collections by market cap are listed on marketplaces. This implies that a substantial majority of NFT owners are not seeking to liquidate their assets. Yet, there is an untapped interest among holders in exchanging their assets for other NFTs, whether within the same collection or across different ones. If even a fraction of NFT owners were to engage in swap transactions, the Cardano network could see a significant increase in transaction volume.
Our proposal is to develop the prototype of a service that facilitates the swapping of any non-fungible asset for other non-fungibles. This would create multiple new opportunities for trades and transactions, enriching and contributing to the Cardano ecosystem. To facilitate exchanges with greater flexibility, we want to allow for more complex trades and swap conditions. This could include trading multiple NFTs for one, trading multiple for multiple, and so on.
All of the implementation methods presented below rely, for now, on manual transactions for swaps. However, our final goal for this product is to create a system that can automatically match new swap offers with existing swaps in various swap pools deployed by projects and collectors. In this way, the individual swap pools become akin to liquidity pools in a conventional DEX for fungible tokens. For partially on-chain and off-chain offer models, we aim to develop an infrastructure that collects data from individual Swap Pools, uses data aggregated from marketplaces and statistics services, and automatically sends counter-offers to Proposers (details about all roles in a swap below).
To our knowledge, Collectibles Exchange represents a pioneering initiative, not just within the Cardano ecosystem but across the entire blockchain industry.
We have already established the technical feasibility of the swapping concept through a working demo for The NFT Swap Pools project [<https://github.com/NFT-Guild/NFT-Swap-Infrastructure-Templates>].
Final Product Vision
Although this proposal focuses on the prototype development, we have a clear vision for the final product that we will describe below.
We propose three distinct modes of implementation: fully on-chain offers, partially on-chain offers, and off-chain offers. Each method has its unique appeal and use-case, catering to different levels of user engagement and familiarity with the platform.
All offer types will eventually result in an on-chain transaction.
We view the main purpose of developing multiple transaction types - partially on-chain and off-chain offer systems, as ways to attract and familiarise users with the platform, or as ways to engage users who are uncertain about the kind of trades they are open to.
Fully on-chain offers:
A Proposer visits the platform website, connects their wallet, lists an NFT, and sets the trade conditions. Once the swap conditions are set, the NFT is held by the smart contract until the conditions for unlock are satisfied, or the Proposer cancels the offer. Once the list transaction is finalised the offer is displayed on the service front-end, alongside the desired NFT or NFTs requested in the trade (the unlock conditions).
A Fulfiller can view the offer and initiate the swap by sending a transaction with the requested NFT(s) to the smart contract, which validates the transaction and completes the swap.
This method works best in situations where the Proposer knows in advance exactly what he is willing to exchange for his asset and is not interested in counter-offers.
We envision the service eventually incorporating a price discovery mechanism similar to an oracle, capable of assisting the Proposer in setting up the trade, determining its conditions, and potentially making trade recommendations based on real-time aggregated data for price, traits, and other criteria from marketplaces and NFT statistics services like <https://www.jngl.io/> , <https://cnft.tools/> or https://www.taptools.io/?Top%2025&NFTs .
In short, when creating an offer, a user (Alice, the Proposer) would specify the NFT they're offering, and the NFT(s) they want in return. The smart contract locks Alice's NFT until someone accepts the offer or Alice cancels it. If another user (Bob, the Fulfiller) wants to accept Alice's offer, they interact with the smart contract, which checks if Bob is the owner of the desired NFT(s). If he is, the smart contract facilitates the swap, transferring Alice's NFT to Bob's wallet and Bob's NFT(s) to Alice's wallet.
Example of a typical user interaction for fully on-chain swaps:
Alice wants to trade her NFT A for NFT B. She lists NFT A on the exchange and specifies that she wants NFT B in return.
Bob owns NFT B. He finds Alice's listing and is interested in NFT A.
Bob initiates the trade through the exchange UI, which interacts with the swap contract.
The smart contract validates the transaction.
If the validation passes, the contract swaps the NFTs between Alice and Bob's wallets.
Alice now owns NFT B, and Bob owns NFT A.
Both Alice and Bob receive a confirmation of the successful swap.
We've already created a smart contract with complex on-chain validation conditions for NFT exchanges. The Swap Pools smart contract we've developed [<https://github.com/NFT-Guild/NFT-Swap-Infrastructure-Templates>] is a technological precursor to this solution. It allows NFT projects and collectors to set up their own Swap Pools easily. To our knowledge this hasn't been achieved before.
Partially on-chain offers:
Similar to the first model the Proposer creates a listing, locks an NFT in a smart contract and defines a series of unlock conditions representing the offers they would consider for exchange. Unlike the fully on-chain method, though, the Proposer indicates openness to receiving counter-offers.
This allows a Fulfiller to send an off-chain counter-offer, which the Proposer can accept or decline. If accepted, the conditions of the initial offer are updated to include the counter-offer, and the Fulfiller is notified that they can now complete the on-chain swap via the smart contract.
This method would work best in situations where the Proposer has a set of swaps he knows he would accept in exchange for his NFT, but is also willing to accept other offers.
To combat spam, the Proposer can predefine a list of counter-offer requirements, for which data aggregation about prices and traits from marketplaces and statistics services would be needed.
Off-chain offers:
In this model, the Proposer wishes to exchange an NFT but doesn’t have a specific exchange in mind. As a result, they cannot set up the smart contract with the initial offer and unlock conditions. Instead, they list their NFT as available for swap and open to counter-offers. After reviewing multiple counter-offers, the Proposer can accept one and initiate a transaction to a simple escrow smart contract, which only involves the counter-offer, without any additional conditions.
To minimise the potential for spam and scam attempts, the same options for setting up counter-offer filters as described above apply.
Business Model:
Our business model is simple and straightforward: we plan to charge a small fixed fee for each facilitated exchange transaction. This structure will allow us to scale the service organically.