A dashboard to display options-related data around PsyOptions markets and Serum orderbooks.

Overview

PsyOptions Data Dashboard

Digestible data around options activity on Solana is pretty inaccessible at the moment. PsyViz provides a clean and user-friendly dashboard displaying some of the most important options-related data based on PsyOptions markets and Serum orderbooks.

A weekend project by Aletna and I. Started out as an anon project but now uploading it to my main Github.

screenshot

How we built it

  • TypeScript, React and Tailwind / DaisyUI for the front-end
  • D3 and Nivo for the data visualizations
  • PsyOptions program to query all on-chain option market data
  • Serum program to query corresponding on-chain order book data
  • Aleph GraphQL API to query serum volume and trade history
  • SPL-Token program to query account info and program accounts
  • SPL-token-library for token metadata
  • Option Markets:
    • We initially fetch and parse all PsyOptions Marketsby invoking the PsyOptions program, and filter them by non-expired expiration date and the three main pairs(BTC/USDC, soETH/USDC and SOL/USDC - excluding stSOL and mSOL)
      • We also determine whether a given option market represents a Call or Put market by inspecting the respective quote and underlying asset mints.
    • Open Interest:
      • Using the Option Mint Key from each option Market of each of the chosen pair, we call the spl-token-program to get the current circulation and amount of holders, representing the open interest per market
      • Sum all option market open interests per pair up to get the total open interest of a given pair (e.g. at the time of writing this there were 19 unique BTC/USDC markets)
        • there are markets of different strike prices, expiration dates and contract sizes
        • while markets may have the same strike price, expiration date and contract size, multiple may exist from different parties
  • Serum Markets:
    • Each option market may have a Serum orderbook initialized. We check whether a PDA derived from the Option Market Key and Price Currency Key already exists, and if so we fetch that market data using the Serum DEX program.
    • Serum Volume Data:
      • The serum volume and trade historic data was queried via the Aleph GraphQL API, using the previously derived serum market key as an input.
    • Serum Orderbook Data:
      • For each Option Market that has an initialized Serum market, we load the ask and bid public keys via the Serum SDK and use those to query the corresponding orderbook data via the Serum DEX program. This information is then displayed filtered by
        • Call or Put Market
        • Strike Price
        • Expiration Date
        • Contract Size

Some challenges

Hitting request limits for the API, filtering the right data as well as modifying and cleaning the data into a usable format. Shoutout to the PsyOptions and Serum discord servers for being major sources of support during the hackathon!

Run

yarn start

or

npm run start

License

MIT

You might also like...

Math Calc is a simple algebra calculator with options for basic addition, subtraction, multiplication, and division as well as many more mathematical properties.

Math Calc is a simple algebra calculator with options for basic addition, subtraction, multiplication, and division as well as many more mathematical properties.

Math-Calc Math Calc is a simple algebra calculator with options for basic addition, subtraction, multiplication, and division as well as many more mat

Dec 25, 2021

A fixed-width file format toolset with streaming support and flexible options.

fixed-width A fixed-width file format toolset with streaming support and flexible options. Features Flexible: lot of options Zero dependencies: small

Jul 14, 2022

Superlight vanilla javascript plugin, for modern web dropdowns. Supporting multi-options, search and images. Designed to be seamlessly themed

Superlight vanilla javascript plugin, for modern web dropdowns. Supporting multi-options, search and images. Designed to be seamlessly themed

Superlight vanilla javascript dropdowns by LCweb Need to jump off of jQuery (or any other) dependency? Other packages are too heavy to just tweak sele

Dec 26, 2022

Toaster is a Pure Javascript plugin for displaying toast notifications. It comes with different options e.g custom text or HTML message, duration, custom class, toggle close button, position, custom close icon and backgorund color.

Pure Javascript Toaster Requires Nothing Demo Toaster is a Pure Javascript plugin for displaying toast notifications. It comes with different options

Jun 21, 2022

Exposes theming options available in Joy UI by providing color palette and typography controls.

Joy Theme Creator Note: Joy UI is currently in alpha - some things may not be finished or working as expected. This project exposes the theming option

Dec 28, 2022

This extensions adds blocks to help you create your own carnival games in MakeCode Arcade using throwable balls, extra timer functions, and extra game-over options.

Usage This extensions adds blocks to help you create your own carnival games in MakeCode Arcade using throwable balls, extra timer functions, and extr

Nov 16, 2022

Diagram-maker - A library to display an interactive editor for any graph-like data.

Diagram-maker - A library to display an interactive editor for any graph-like data.

Diagram Maker Diagram Maker is a library to display an interactive editor for any graph-like data. Following is a screenshot from one of the consumers

Dec 27, 2022

Api for playing around with dummy data. Feel free to use it in your demo projects, tutorials, or testing tasks.

dummy-api Api similar to dummy-api Api for playing around with dummy data. Feel free to use it in your demo projects, tutorials, or testing tasks. All

Jan 7, 2023

A NodeJS Replit API package wrapped around GraphQL, returning JSON data for easy use.

repl-api.js A NodeJS Replit API package wrapped around GraphQL, returning JSON data for easy use. Contents: About Quickstart Pre-installation Installa

May 20, 2022
this is a single-page web application. we built a book website where the user can add , remove and display books. we used modules to implement these functionalities. also, we used the Date class to display the date and time.

Awsome Books In this Project, we have built A Books websites. Built With ?? HTML CSS javascript Git & Github Live Demo Here you can find the live Demo

Nedjwa Bouraiou 10 Aug 3, 2022
Dashboard skeleton Simple and fast dashboard skeleton template

Dashboard skeleton Simple and fast dashboard skeleton template. Installation npm install --save dashboard-skeleton-compostrap Version 1x built on Boo

Compostrap 9 Aug 23, 2022
A public board for all the Computer Society and Students to display their profile. An online year-book for you to display your profile in the most creative manner

Student's Yearbook by IEEE Computer Society Student's yearbook is an open-source project which intends to dispaly the students who will be graduating

IEEE Computer Society 11 Dec 18, 2022
An indexer that aggregates and normalizes NFT related data on the Tezos Blockchain and provides a GraphQL API for developers.

TezTok Token Indexer An indexer that aggregates and normalizes NFT related data on the Tezos Blockchain and provides a GraphQL API for developers. Not

null 29 Dec 23, 2022
An HTML, CSS and JavaScript project related to a leaderboard, where you can submit a specific score data using an API request

LeaderBoard-Project In this project we use Webpack dependecy and a external API for displaying the leaderboard data inside the dom. Built with HTML-CS

Nicolas Gonzalez 4 Mar 3, 2022
Contains html file showcasing Earthquake related data generated in the form of VR model, ArcGIS API with real-time earthquake feed and video of simulation of earthquake generated in blender

Module-EADGI-Project-All about Earthquakes Introduction Contains html file showcasing Earthquake related data generated in the form of VR model, ArcGI

Abhishek Rawat 2 Jun 9, 2022
This project is a web app that uses the TVmaze API to retrieve data and display a list of items on the screen.

This project is a web app that uses the TVmaze API to retrieve data and display a list of items on the screen. It also enables people to like and comment on the broadcast. JavaScript, API, Bootstrap, HTML, and CSS3 were used to create this site.

Mihreteab Misganaw 2 Jan 10, 2022
This simple project aims to connect to an API to fetch score data and display it on a LeaderBoard box, as well as provide the tool to submit a new score.

Leader Board: Hit the API! This simple project aims to connect to an API to fetch score data and display it on a LeaderBoard box, as well as provide t

Andrés Felipe Arroyave Naranjo 12 Apr 6, 2022
A weather dashboard that features dynamically updated HTML and CSS using OpenWeather API data.

Weather Dashboard A weather dashboard that features dynamically updated HTML and CSS using OpenWeather API data. User Story AS A traveler I WANT to se

Benjamin Eidum 1 Apr 19, 2022