LocalCoinSwap’s Treasury Proposal: Non-custodial P2P trading for DOT
Github: https://github.com/LocalCoinSwap/
Homepage: https://localcoinswap.com/
Intro:
LocalCoinSwap is a P2P cryptocurrency exchange which focuses on providing trustless fiat on-ramp solutions, enabling global accessibility for cryptocurrencies. We bridge the gap between users and crypto where centralized exchanges fail, in particular across developing regions of the world where access to mainstream finance is limited.
After a successful proof of concept with Kusama, we are now looking to extend the underlying infrastructure that we have developed to provide full support for Polkadot. This will allow a trustless non-custodial fiat on/off ramp for DOT.
Please check out our detailed proposal below and we look forward to any feedback before we move forward to the on-chain proposal:
https://docs.google.com/document/d/1aDSXTPHdHby5jzLt4pQiQdYXHHDW3caln8ibRhZA55A/edit?usp=sharing
Comments (9)
I'm a little confused as to why this would take 3000 DOT. If you already have Kusama support, changing it for generic Substrate-with-balances support should not be any more complicated than a rename and slight modification here and there. Can you break down the complexity of doing the upgrade a bit more please?
Absolutely. The proposed amount we calculated for this integration reflects the expected developer time required both during, and then after the integration. As with Kusama, we are also committing to ongoing maintenance of the trading functionality.
A lot of the work we have done for the Kusama integration will (hopefully) be reusable. In particular on the level of
kusama-utils
we hope that the trading functionality should work with minor modifications. To reflect this we have anticipated that the work during milestones 1-3 in our Kusama integration, which took 9 weeks, should be completable in 3 weeks on Polkadot.However, a lot of work that is required is not as straightforward as tweaking existing code. To give a short overview:
Kusama-utils
We will be refactoring
kusama-utils
with the intention that the package can handle multiple substrate blockchains simultaneously. To do this, the functionality will need to be made significantly more generic, and the overall architecture of all of the repositories will need some rewriting.Kusama-api
Upgrading
kusama-api
tosubstrate-api
will require us to launch a new fleet of nodes and develop K8 configurations for handling multiple substrate-based nodes in the same cluster. As withkusama-utils
, the package will be upgraded to handle multiple substrate chains simultaneously, rather than just republishing with minor modifications.LocalCoinSwap API & App layer
Integrating any new cryptocurrency on the API and App layer requires a significant amount of non-repeatable work, for example dealing with advertisement pricing, integration transaction explorers, branding and UX improvements to the trading flow. We intend to make improvements to the user experience above and beyond just repeating the same trading flow from Kusama to Polkadot.
However, on an architecture level significant additional work is also required as Polkadot is a new blockchain rather than a token on the same blockchain, and we intend to generalise the architecture in such a way that it becomes easier to integrate future substrate based chains.
Currently we can integrate a new ERC20 token with non-custodial trading in less than 2 weeks, our aim is to get to a similar level of speed in new substrate chains so we can further support the community by providing a fiat onramp for new substrate projects.
Miscellaneous
Significant leeway needs to be given to unexpected changes on a protocol level. For example, during the last quarter of our Kusama integration a change in deposit factor required us to rewrite our entire trading flow from the ground up. As part of the integration we commit to handling such eventualities in-house without requesting extra funding.
We also perform extensive manual testing as part of QA at the util, api, backend, and frontend level, followed by UAT testing with a cohort of trusted users.
However, the primary miscellaneous expense is the ongoing maintenance required to keep the integration and open-source packages working. Substrate blockchains change with such regularity that keeping the libraries working is an ongoing commitment. We are regularly presented with new development challenges which need to be solved to preserve the user experience.