# TODO - __crates__ - _cli_ - check disk space on first launch - add custom path support for config.toml - maybe add bitcoind download and launch support - via: https://github.com/rust-bitcoin/corepc/blob/master/node - test read/write speed, add warning if too low (<2gb/s) - pull latest version and notify is out of date - _computer_ - **add rollback of states (in stateful)** - remove configurable format (raw/compressed) and chose sane ones instead - linear reads: compressed (height/date/... + txindex_to_height + txindex_to_version + ...) - random reads: raw (outputindex_to_value + ...) - add prices paid by percentile (percentile cost basis) back - add support for per index computation - fix min feerate which is always ZERO due to coinbase transaction - before computing multiple sources check their length, panic if not equal - add oracle price dataset (https://utxo.live/oracle/UTXOracle.py) - add address counts relative to all datasets - make decade, quarter, year datasets `computed` instead of `eager` - add 6 months (semester) interval datasets to builder - some datasets in `indexes` can probably be removed - add revived/sent supply datasets - add `in-sats` version of all price datasets (average and co) - add `p2pk` group (sum of `p2pk33` and `p2pk65`) - add chopiness datasets - add utxo count, address count, supply data for by reused addresses in groups by address type - add more date ranges (3-6 months and more) - add puell multiple dataset - add pi cycle dataset - add emas of price - add 7d and 30d ema to sell side risk ratio and sopr - don't compute everything for all cohorts as some datasets combinations are irrelevant - addresses/utxos by amount don't need mvrvz for example - add all possible charts from: - https://mainnet.observer - https://glassnode.com - https://checkonchain.com - https://researchbitcoin.net/exciting-update-coming-to-the-bitcoin-lab/ - https://mempool.space/research - _indexer_ - parse only the needed block number - maybe using https://developer.bitcoin.org/reference/rpc/getblockhash.html - _interface_ - create pagination enum - from to - from option - to option - page + option default 1000 max 1000 - from/to/count params don’t cap all combinations - example: from -10,000 count 10, won’t work if underlying vec isn’t 10k or more long - _parser_ - save `vec` file instead of `json` - support lock file, process in read only if already opened in write mode - if less than X (10 maybe ?) get block using rpc instead of parsing the block files - _server_ - api - add extensions support (.json .csv …) - if format instead of extension then don't download file - add support for https (rustls) - lru cache - _vec_ - add native lock file support (once it's available in stable rust) - improve compressed mode (slow reads) - add ema support - __docs__ - _README_ - add a comparison table with alternatives - add contribution section where help is needed - documentation/mcp/datasets/different front ends - add faq - __websites__ - _default_ - explorer - blocks - transactions - addresses - miners - maybe xpubs - charts - improve some names and colors - remove `sum` series when it's a duplicate of the `base` (in subsidy for example) - selected unit sometimes changes when going back end forth - add support for custom charts - separate z-score charts from "realized price" (with their own prices), have 4y, 2y and 1y - price scale format depends on unit, hide digits for sats for example (if/when possible) - table - pagination - exports (.json, .csv,…) - search - datasets add legend, and keywords ? - height/address/txid - api - add api page with interactivity - global - **fix navigation/history** - move share button to footer ? - Use `ichart.createPane()` in wrapper - improve behavior when local storage is unavailable - by having a global state - __global__ - check `TODO`s in codebase