(CCBL) ActiSwap on ActiList
The first trustless P2P swap for Secret Network
Abstract
This proposal´s goal is an on-chain CCBL request to create the first trustless P2P swap tool for Secret Network (A Peer-to-Peer Exchange contract for the Secret Network blockchain) to enable users of the Secret Network to swap/trade their sNFT’s (snip-721) and potentially other secret assets (SNIP-20) without the need of an escrow/middleman or the need to trust anyone, but a smart contract.
For an example of a similar tool on a public blockchain, as well as the initial code source for this project, please visit Pegasus Swap. https://app.pegasus-trade.zone/trade
Introduction
The main difficulty in p2p trades on secret being dishonest individuals taking advantage of the OTC / P2P trading and scamming people is the reason we wanted to create a tool that can facilitate those trades with full security and completely trustless.
As P2P trades are not only a thing on Secret Network but a general trading manner on any blockchain, we find that a P2P trading tool would help all of Secret Network’s users, additionally to enabling trades for any SNIP assets, whether they are on a marketplace or not.
About ActiSwap
ActiSwap’s goal is clear: Facilitate trustless and secure P2P swaps/trades between 2 Secret Network users.
NFT owners will need to import their NFTs on the ActiList platform in order to be able to look up NFTs for a swap proposal and receive automatic notifications when the swap proposal is created. If the ownership of an NFT is public, a notification containing the swap link is guaranteed to reach the owner of the asset. If ownership of the NFT is not public, a swap notification will be sent to the last known owner (user who imported NFT into ActiList or purchased it on ActiList). There might be a chance that notification will reach the wrong user, and the receiving side will be able to cancel such a swap. Alternatively users will be able to share swap links directly via external chatting tools. Private swaps will be free of charge for users (except for gas cost).
The base functionality of ActiSwap will inherit parts of the logic from Pegasus Zone on Stargaze (GitHub - pegasuszone/pegasus: A Peer-to-Peer Exchange contract for the stargaze blockchain).
Swap flow and UI will work as follows:
- User A creates a swap proposal by approving their selected NFTs and sending them to the swap smart contract.
- Swap url will be created and automatically shared with user B. User A can also independently share a swap link with user B.
- If user B approves the requested NFT/s and finalizes the swap then the swap will execute automatically.
Below you will see a Concept of the UI/UX of the swap (This is just a draft to visualize the concept, all features will be added but are not visible yet)
Example:
Anna wants to trade her AnonNFT (#007) for 5 SCRT Wolves (#001, #123, #300, #400, #500) from Benjamin.
Anna and Benjamin have to import their NFT assets on actilist.io to make them searchable, and to let ActiList know who should be notified when relevant swap proposals are created.
Now Anna can create a swap proposal on actilist.io, by connecting her wallet and navigating to swap tool ActiSwap. In the tab “Your Inventory’’ Anna looks up her AnonNFT #007 as the NFT she wants to trade and once selected it will appear on the right side. Then she clicks on the tab “Their Inventory” on the left side and types in the collection’s contract address or collection’s name, in this case “Wolf Pack” or “SCRT Wolves” or “secret1su20a5yv7zwvv9s8etr6mjt0da7zgv4ljm6vcy”.
She will be shown all SCRT Wolf NFT’s that were imported on Actilist. Without the import of NFTs, Anna would not see Benjamin’s NFTs in the UI. Anna chooses the desired NFTs (5xSCRT Wolves with specific ids) out of the shown Wolf NFTs for the swap offer. Anna controls the trade offer she wants to send to Benjamin on the right panel, then she sends it off with the “Send trade offer” button. Upon submitting a proposal Benjamin will be automatically notified with a message containing the swap link. Optionally Anna will be able to share a direct link with the other trade participant if their contacts are known.
Benjamin receives a message from ActiList about the incoming swap proposal. By following the link from the message Benjamin will be navigated to the swap proposal. If the proposed offer makes sense Benjamin approves the 5 SCRT Wolves for the trade and then clicks a button that says “Execute Trade” (see orange button). Anna and Benjamin both receive the desired assets.
TLDR
- Anna and Benjamin trade. 1 AnonNFT vs 5 SCRT Wolves
- Anna and Benjamin import their NFT assets on ActiList
- Anna connects to ActiList and navigates to AS
- Anna chooses the AnonNFT for trade, then searches for the NFTs she wants via collection name or collection contract address. Swap proposal is automatically sent to Benjamin
- Benjamin connects to ActiList and follows up the swap link from notification.
- He reviews the swap offer, rejects or accepts it. When accepted, he attaches his NFT assets to the swap offer and the trade is executed after an approving tx from Benjamin
- Both Anna and Benjamin receive their desired NFTs. Trustless P2P trade is completed!
Benefits of p2p swaps on ActiList:
- Trustless swap;
- Decentralized since nobody has any influence on your trade but yourself
- Clear view on what is included in the trade
- Accessible for everyone in the Secret Network ecosystem
- Swapping is free of charge for the Secret Network ecosystem
- Decreases scams, keeps Secret Network safer
Additional infos:
ActiSwap will be developed by the ActiList team. Given they will do the complete development work, they will be the legal owner of this swap tool and most of the budget will be used for the development work. The work on the AS tool will start as soon as the CCBL funds may be received, with no additional waiting time.
Process/Roadmap ActiSwap:
Development:
- Using parts of the Pegasus swap (open resource/ permission of pegasus already granted)
- Adjusting it for Secret Network
- Indexing imported NFT assets for search
- Creating swap proposal by approving selected NFT assets and specifying what other NFT assets should be received in return
- Notifying the NFT owner with automatic notification containing a swap link
- NFT owner can accept the request by approving the requested NFT assets and signing off the final transaction.
- Swap contract will exchange NFT assets
UI/UX:
- Documentation/usage of the swap/ tutorials
- Designing the webpage/icon creation
- Branding/ UX
- Turning existing designs into code (dev related)
Outcome of this proposal (CCBL/MVP)
The result of this proposal will be a Minimally Viable Product (MVP) that will be working on Testnet.
Once deployed on Testnet you will have a possibility to test this swap tool and share your feedback.
Based on your feedback we will be creating a new proposal to fix any issues and make this swap tool production ready on Mainnet.
Future Outlook
The above mentioned flows and functions are the initially intended ones that we want to create and make available to the public with this CCBL Proposal.
Additionally to the shown functions, we see many ways to increase functionality, UX and value for the Secret Network from ActiSwap
Integrating chat solution
Chat with your trading partner (what you would usually do on Discord, if you know the owner of the NFT you want). Additionally chat with NFT owners that you don’t personally know, without finding out any of their private/personal info.
Currency tokens
Adding possibility to swap currency tokens (snip-20) alongside NFT (snip-721)
For example: Trades could also be 1 Anon NFT vs. 3 SCRT Wolves + 250 sSCRT
Sale verifications
Verifying sale contents
Public swaps available on marketplace
Public swaps should be available on the marketplace to reach a broader audience.
Trade History
See the full history of all your trades on ActiList
Sustainability
Since we will ask to make this tool for the Secret Network and it is to be used publicly for our ecosystem, this swap is a free tool. When we create the public swap, this will be used with a small fee. Meaning this will be a private swap to use for everyone when you import your NFT into ActiList. Meaning you can use every NFT on Secret Network, as long as you import this on ActiList.io.
Privacy
NFT swap (ActiSwap) on ActiList from a UX POV will be “private”. The participants of a trade do not need to know each other’s name or SCRT address, nor that Person X owns NFT Y. If a NFT is imported on actilist.io, their owner can receive swap proposals from any other user on ActiList, unless the NFT owner explicitly specifies they don’t want to receive swap notifications. No exchange of information between 2 users is necessary prior to NFT swap, as long as the underlying NFTs are imported on ActiList.
The transfer/swap of the NFT has to be validated on-chain as a transaction. The main transaction of the swap trade, after Person B signs off the swap, will only reveal the SCRT address of person B and the status of the final tx. Trade/swap contents, including the SCRT address of person A will not be revealed. There will be separate txs where person A and person B approve their NFT assets. Approval txs will reveal sender’s SCRT address and underlying NFTs.
Therefore there may be varying information about the swaps on chain and the swap is not guaranteed to be fully private. If a person interacts with our smart contract, the interaction will always be visible, but it would not directly reveal contents of the trade.
The Team
We will have a team of 5 people planning, creating and adjusting the swap to the requirements of the MVP.
Ilja (founder of ActiList) will lead the development work, 20+ years experience as a backend developer and the last 3 years developing smart contracts.
Relevant contributions:
Hippo CMS/Bloomreach CMS (open source), most valuable contributor award
European Patent Office, core contributor to automating patent submissions
actilist.io (Secret Network): founder and core developer
Wesley (head of marketing at ActiList) will lead the design and marketing of the swap and will look out to see the UX and UI being easy to use when MVP is live, 5+ years of experience in leading, design and marketing and is a former IGC and Secret Agency Lead.
Relevant contributions:
WeGrow agency
Sales manager at a partner of Ziggo/KPN
Ecommerce and partner of bol.com (like amazon)
International Growth committee Secret network Lead
Secret Agency Lead
Couple degrees in Socials, Editing and designing.
Vice chairman of a housing corporation
Salim (frontend developer at Actilist) Will turn design into code and connect the front end to the smart contracts and backend servers. 4+ years experience with projects.
Relevant contributions:
actilist.io (Secret Network)
Yoiu (Secret Network)
Eland
Jesse (Full stack/Smart contract developer at ActiList) will be developing swap smart contracts together with the dev team. He has more than 5 years experience of smart contract development.
Relevant contributions:
BladeLabs: boosted vault strategy on Solana
implemented and tested the vault that performs recursive staking/lending/borrowing to boost farming based on the parameters of the DeFi protocols like Marinade Solend
Jet.
Nakamura (Full stack/Smart contract developer at ActiList) will be developing swap smart contracts and accompanying backend functionality together with the dev team. He has more than 5 years experience of smart contract development.
Relevant contributions:
staking.solluminati.io (Solana)
clashofcars.io (Solana)
appleheadfinance.com(Solana)
bridgenetwork.com(EVM)
dogboss.org(EVM)
Budget Request
The Actilist team requested a budget for the compensated roles, as well as a discretionary budget to pay for marketing and maintenance purposes, regarding launch publicity and longevity of the project.
Compensated Roles
ActiList Team:
Ilja Backend Developer
Wesley Head of marketing / Design
Salim UI/UX Frontend Developer
Nakamura Full stack/Smart contract Developer
Jesse Full stack/Smart contract developer
Total Ask
Technical development: $ 20,000 (avg. $40/h for 100 hours á 5 team members)
Planning and Organization: 1500$ fixed (avg. 25$/h for 60 hours, split across all agile tasks)
Total Proposal Spend:
$21500
25,000 SCRT @ $.86