Giter Site home page Giter Site logo

qtm-interface's Introduction

Quantitative Token Model radCAD Integration

! This repository is a work in progress !

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

  • #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
  • #f03c15 Develop risk analysis procedures
  • #c5f015 Case studies & publishing first results in an article
  • #c5f015 Write the documentation for the QTM and radCAD integration

V.2

  • #c5f015 Build a web-based UI to create another input option
  • #f03c15 Implement different KPI-driven controller designs based on incentive priorities/optimizations
  • #f03c15 Add more dynamic agent (behavior) policies
    • #f03c15 Stochastic agents
    • #f03c15 Intelligent agents I: Hard coded logics
    • #f03c15 Intelligent agents II: LLM driven decision making
  • #f03c15 Parameter Optimization
    • #f03c15 Implement and test parameter sweep capabilities
    • #f03c15 Add advanced optimization procedures

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 ./UserInterface/ directory.
  • Run streamlit run '.\Inputs ๐Ÿงฎ.py' within the previously installed environment.

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

qtm-interface's People

Contributors

abzaremba avatar achimstruve avatar alex-damjanovic avatar blockboy32 avatar ostapkharysh avatar streaxx avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.