Anything in the below proposal is open for discussions and changes. Thank you for the feedback in advance.
Tl;dr: I’d like to build an open-sourced prototype of a StockX-style marketplace for Numerai model predictions. A static mockup:
Ideation: The idea hit me during my recent GPU hunting craze on StockX. StockX is a stock-market-like online marketplace for consumer goods (sneakers, electronics, etc.) that emphasizes authenticity and price discovery. I thought its auction mechanism and item authentication mechanism can be desirable for a marketplace of Numerai predictions, too.
This project is meant to be a proof-of-concept demo showcasing an ideal user experience for both sellers and buyers of Numerai model predictions. This would lay the foundation for future contributions to make it fully production-ready. Core UX and features will be functional, but things like payments and cybersecurity won’t be the focus of this project.
Like many tournament participants, I want to be able to sell my predictions to friends or strangers alike to monetize my models further. There is a lack of a go-to marketplace and people are trying various ways, such as NFTs, e-commerce platforms, generic data exchanges or even offline. This is not efficient for either party. Moreover, there are some Numerai-specific needs these methods could not accommodate, such as model ownership verification, enforcement of prediction file consistency, price discovery, intellectual property protection, automated submission and fraud protection, etc.
Solution: A community-run marketplace that will tackle the above pain points. The platform will have the following features:
a. Core features:
Buy-and-sell with price discovery: In addition to the basic buy-and-sell functionalities, there is a limit order book mechanism for price discovery of model predictions. The seller puts up predictions for sale for each model each round, and has full-control over the ask-side of the order book to determine how many files to sell at each price [denoted as “File Mode”]. Alternatively, the seller can control how much NMR stake can be put on each file sold by using the number of NMRs as the transaction unit instead of the number of files, [denoted as “Stake Mode”].
@arbitrage pointed out that model predictions are not common goods like sneakers, they are unique and hence the ask side of the order book can be redundant here. This is true, each model’s sell-side of the order book can only be managed by the single seller of this model. However, in Stake Mode this can be useful. The seller can effectively perform tiered pricing of the amount of stakes allowed by managing the sell-side order book. E.g. Sell 100 NMR allowance at $50, Sell 500 NMR allowance at $100, such that the buyer would have to progressively pay more if they want to stake more.
- Ownership verification: Buyers can be assured that the files belong to the seller’s model. During seller onboarding, the seller would prove ownership of models by putting up a one-time code to their model descriptions temporarily, similar to how domain name ownership verification is done. Payouts to sellers are locked-up until at least the first live score. The live score would be compared to the seller’s own submission for consistency check.
- Intellectual property protection: For sellers concerned about buyers abusing their files, they can opt for selling in Stake Mode. The platform will facilitate automatic submission for the buyers such that they would not have access to the raw file yet can still stake on it.
- Fraud protection: Each seller needs to lock up a collateral amount with the platform during onboarding. And for any model sold in Stake Mode, each buyer needs to lock some collateral amount at the time of the transaction. Transaction proceeds are withheld from the seller until live scores are checked for consistency. If inconsistent, the proceeds are returned to the buyers, and the seller will lose some collateral with the platform. For Stake Mode transactions, violations from the buyer such as over-staking (if the file was sold through automated API submission) can result in loss of collateral for the buyer.
b. Extended features (Good to have if I have the time):
- Support for sale of Signals Predictions
- Support for sale of model file/scripts
- Email notifications
c. Optional features (If I have the time and ability, or something for future contributors to consider):
- NMR for payment and collateral [I know this is essential for anything beyond demo, and will try my best to implement it]
- Fraud protection enforcement using Erasure
- Make this a dApp
- I will try to keep the code modular and well-commented for ease of future contributions from others. I have some experiences with traditional websites and web apps, but have not built any dApp. Therefore I will use a traditional backend for now. The main focus of this project is showcasing the user experiences and to serve as a starting point for future contributions.
- I will try to maintain a good separation of front and back-end of the app to make transition to dApp easy.
- Dummy payment processing first, but I will try to make real NMR payments possible if I have time after completing other features. For obvious reasons I won’t use any credit card payment processing services (but if you guys want it, I can easily support Stripe).
- Upon delivery of the project, I will keep this hosted for up to 3 months on Google Cloud for the community to test and gather feedback.
If approved, the earliest date I can start is July 15. I will commit full-time for 4-6 weeks.
3.Best case outcome
All features are implemented and functional in a timely manner. The platform is well-received by the community and resulted in a lot of constructive feedback. An open-source team is formed to further improve the project, making it a production-grade platform that is trusted by the community and owned by the community. More users start buying and selling predictions. NMR gets another use case that benefits NMR holders and sees more adoptions. I am rewarded with a nice amount of NMRs too. The same platform can even be used for selling other Numerai stuff such as Signals data, Signals predictions, model files and scripts.
4. Worst case outcome
I lose the ability to work on this for unforeseeable reasons and nothing gets done. I will be paid nothing. In that case, anyone in the community is welcome to take over this proposal and build it. At worst we still have this thread as an ideation for how this kind of platform should be until someone decides to build it.
Success should be evaluated upon the delivery of the open-sourced code and deployment of the test platform, according to how much of the features above are implemented and are functioning properly.
6.Funding required, if any.
I don’t seek to make a ton of money out of this but need enough to keep me committed to the labor and to cover any cost, to be paid only after work delivery and evaluation. CoE can apply any deduction or addition at the end based on the evaluation of work quality. Fees can be broken down by features. The community can decide the weight of each feature. I suggest the following as a starting point:
a. Core Features (Total: 69.420 NMR)
- Price discovery (and basic buy-sell): 30 NMR
- Ownership verification / seller onboarding mechanisms: 10 NMR
- Intellectual property protection / automated submission: 15 NMR
- Fraud protection: 10 NMR
- Hosting cost (dev + 3 months): 4.420 NMR
b. Extension Features (Total: 30 NMR)
- Support for sale of Signals Predictions: 15 NMR
- Support for sale of model file/scripts: 15 NMR
- Email notifications: Free
c. Optional Features (Total: 60 NMR+?)
- NMR for payment and collateral: 30 NMR (labor+gas)
- Fraud protection enforcement using Erasure: 30 (labor+gas)
- Make this a dApp: ?
- Permission from the Numerai team to create an additional account for dev and testing
- One contact person from CoE for continuous feedbacks during the project
Some key points for discussions:
- Feature scope
- Payment and collateral rules & mechanisms
- Deliverables and evaluation
- Funding amount and structure
- Anything else
2020-06-30 - Postponed earliest start date