Skip to content

Latest commit

 

History

History
113 lines (90 loc) · 9.91 KB

README.md

File metadata and controls

113 lines (90 loc) · 9.91 KB

Quantitative Token Model radCAD Integration

! This repository is a work in progress !

Disclaimer

MUST READ: The Quantitative Token Model (“QTM”) and accompanying information provided on this document has been prepared by Outlier Ventures (“OV”) for educational and general information purposes only. No undertaking, warrant or other assurance is given, and none should be implied, as to, and no reliance should be placed on the accuracy, adequacy, validity, reliability, fairness or completeness of any information in the QTM or the document. The QTM and information should not be considered a recommendation by OV or any of its directors, officers, employees, agents or advisers in connection with your token model. The information contained in the QTM has been prepared purely for informational purposes. In all cases persons should conduct their own investigation and analysis of the data in the QTM. Under no circumstances shall OV have any liability for any loss or damage of any kind incurred as a result of the use of, or reliance on, the QTM. The use of the information contained in the QTM is solely at the user’s own risk.

Background

The Quantitative Token Model (QTM) is an open source spreadsheet model developed by Outlier Ventures. It's purpose is to forecast key metrics of different token economies on a higher level by abstracting a set of often leveraged token utilities. It should be used for educational purposes only and not to derive any financial advise. The market making for the token is approximated by a DEX liquidity pool with constant product relationship. To understand the usage of the tool please refer to the User Story Map

QTM Structure

Quantitative Token Model

Motivation for the radCAD Extension

The goal of the QTM radCAD integration is to extend and to improve the static high-level approach of the QTM spreadsheet model to a more flexible and dynamic one. With the radCad integration one should be able to perform parameter sweeps and optimizations. Furthermore it opens up the capabilities for more dynamic agent behaviors, Monte Carlo runs, and Markov decision trees, which reflect a more realistic approximation of a highly non-linear web3 token ecosystem. At a later stage there should also be a more accessible (web-based) UI.

Development Roadmap

V.1 (Static Base Model)

  • #c5f015 Initialize the project, create the development roadmap & README.md
  • #c5f015 Implement interface to the QTM spreadsheet parameters
  • #c5f015 Update the postprocessing in the post_processing.py with respect to the new QTM parameters and conventions
  • #c5f015 Update the plot functionallities in the plots.py with respect to the new parameter conventions
  • #c5f015 Build and test the vesting policies
  • #c5f015 Build and test the incentivisation module
  • #c5f015 Build and test the airdrop module
  • #c5f015 Build and test the static agent behavior
  • #c5f015 Build and test the utility policies
  • #c5f015 Build and test the liquidity pool interactions
  • #c5f015 Build and test the user adoption policies
  • #c5f015 Build and test protocol bucket allocations
  • #c5f015 Build and test the rest of token ecosystem KPIs / metrics
  • #c5f015 Update the postprocessing w.r.t. the new implemented policies and corresponding state variables
  • #c5f015 Web based UI for result output plots
  • #c5f015 Improve function & overall code documentation
  • #c5f015 Improve the robustness of all functions
  • #c5f015 Improve the robustness of all model input parameter
  • #c5f015 Staging tests of the whole model
  • #c5f015 Case studies & publishing first results in an article
  • #c5f015 Write the documentation for the QTM and radCAD integration

V.2 (Sophisticated Model)

  • #c5f015 Build a web-based UI to create another input option
  • #c5f015 Implement user authentication and data set shareability between users
  • #c5f015 Build custom user plot capabilities
  • #c5f015 Account for different revenue receiver buckets and track them
  • #c5f015 Add external rewards for stakers in diverse assets to mimic bribe markets (can be dependent on revenue received by a certain revenue bucket)
  • #c5f015 Add input inconsistency icons to respective input section expander text
  • #f03c15 Update fundraising module to more complex scenarios, including SAFTs and SAFT+Ts
  • #f03c15 Develop risk analysis procedures
  • #c5f015 Add more dynamic agent (behavior) policies
    • #c5f015 Intelligent agents I: Hard coded logics
      • #c5f015 Agents tend to stake tokens if reward APR is above target APR and remove tokens if it is below the target APR
      • #c5f015 Add DAO voting caused staking demand based on revenue and business funds
      • #f03c15 Add market buy behavior based on intrinsic protocol value, which is proportional to business funds and revenue projection
      • #c5f015 Add market buy behavior based on market sentiment (Brownian Motion) and protocol reputation
      • #f03c15 Define individual agent optimization goals (agents perform KPI based decision making)
    • #f03c15 Intelligent agents II: AI driven decision making
  • #f03c15 Add alternative token price prediction models
  • #f03c15 Add product to token holder growth correlation
  • #f03c15 Improve UX -> Reduce confusion on parameters and streamline the user experience (potentially reduce complexity)
  • #f03c15 Add Metcalfe's law to product user growth model
  • #f03c15 Parameter Optimization
    • #f03c15 Implement and test parameter sweep capabilities
    • #f03c15 Add advanced optimization procedures
  • #f03c15 LLM support agents

Installation

Python 3.9 is recommended!

  • Clone this repository to your local machine by git clone https://github.com/OutlierVentures/QTM-Interface.git
  • Create a new Python environment in the projects directory by python -m venv venv
  • Activate the new environment by venv/bin/activate
  • Install all required packages by pip install -r requirements.txt

Usage

  • Make sure you followed the previous installation section.
  • Navigate with your terminal to the main project directory.
  • Run streamlit run .\Welcome.py within the previously installed and activated environment.
  • Expand the Sign-Up expander on the Welcome landing page and create a new user account or use the test user credentials
  • Expand and login via the Login expander on the Welcome landing page by using your preferred account credentials.

Test user login data:
Username: user
Password: 1234

New Module Implementation Procedure

Create a function that combines all of these into a single file

1. Add parameters to ingest external data
2. Function to initialize values in state variables
3. The policy and state update functions
4. Update state update block file
5. Post-processing and plots to display it

Resources and Articles

Tool

Related Articles