{"id":15823475,"url":"https://github.com/slippyex/chillwhales-tracker","last_synced_at":"2026-03-17T15:30:26.214Z","repository":{"id":219783057,"uuid":"749904315","full_name":"slippyex/chillwhales-tracker","owner":"slippyex","description":"Live tracker for floor prices, recent listings for the LSP8 NFT 2.0 collections on the LUKSO Blockchain","archived":false,"fork":false,"pushed_at":"2024-02-15T06:23:10.000Z","size":27169,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-06T08:10:49.814Z","etag":null,"topics":["cryptocurrencies","lsp8","lukso","lukso-blockchain","nft"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/slippyex.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-29T16:19:15.000Z","updated_at":"2024-02-27T11:15:12.000Z","dependencies_parsed_at":"2024-10-26T20:37:54.033Z","dependency_job_id":null,"html_url":"https://github.com/slippyex/chillwhales-tracker","commit_stats":null,"previous_names":["slippyex/chillwhales-tracker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slippyex%2Fchillwhales-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slippyex%2Fchillwhales-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slippyex%2Fchillwhales-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/slippyex%2Fchillwhales-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/slippyex","download_url":"https://codeload.github.com/slippyex/chillwhales-tracker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246635949,"owners_count":20809331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptocurrencies","lsp8","lukso","lukso-blockchain","nft"],"created_at":"2024-10-05T08:10:58.585Z","updated_at":"2026-03-17T15:30:26.160Z","avatar_url":"https://github.com/slippyex.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChillWhale Tracker - not JUST any more 🐳🆙\n\nInitially started solely for the ChillWhales NFT 2.0 collection on the LUKSO blockchain, the tool evolved over the last couple of days ... \n\n\nChillWhale Tracker is a real-time asset tracking and analytics tool for any LSP8 NFT2.0 collection. \nIt provides live updates on asset listings, floor prices, and rarity rankings, enhancing the experience of NFT enthusiasts and traders.\n\n## Features\n\n- Real-time tracking of any LSP8 NFT assets.\n- Display of assets based on price (low to high) and recent listings.\n- Live updates on floor prices in the ChillWhale collection.\n- Asset ranking analytics for better insight into asset value.\n- Interactive UI with scrolling and (recent listings, floor) mode toggling capabilities.\n- Directly \"snipe\" an attractive asset by pressing \"s\" on the focused line.\n\n## Wallet Viewer\n\nInstead of watching Universal Page listings / floors, you can also provide one or a list of Universal Profile Wallet Addresses\n\n```\nnpm run wallet lyxen 0x43242356xxxx 0xa34244xxxxx \n```\n(to see your chillwhale holdings in the provided wallets)\n\nor\n```\nnpm run wallet lyxen 0x43242356xxxx 0xa34244xxxxx \n```\n(to see your lyxen holdings in the provided wallets)\n\nand so on ... \n\nInstead of providing wallet addresses all the time, you can also create a file \"profileWallets.json\" under the `/cache/` folder with content similar to this\n\n```json\n[\n  {\n    \"walletAddress\": \"0xFb4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx29B8\",\n    \"walletName\": \"master wallet\"\n  },\n  {\n    \"walletAddress\": \"0x3e9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4156\",\n    \"walletName\": \"secondary\"\n  },\n  {\n    \"walletAddress\": \"0x46cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb8b1\",\n    \"walletName\": \"side wallet\"\n  }\n]\n```\n\n![Wallet Insights](/docs/wallet-insights.png)\n\n## Asset finder\n\nIn order to find particular asset rankings, just use\n\n```\nnpm run find [collection-name] assetNumber assetNumber assetNumber assetNumber...\n```\n\n## Demonstration of the tool in action\n\n![ChillWhale Tracker Demo](/docs/chillwhale-tracker.gif)\n\n## Installation\n\nBefore you begin, ensure you have Node.js installed on your system. Then, follow these steps:\n\n1. Clone the repository:\n   ```bash\n   git clone [repository-url]\n   ```\n2. Navigate to the project directory:\n   ```bash\n   cd chillwhale-tracker\n   ```\n3. Install the dependencies:\n\n   ```bash\n   npm install (or yarn install)\n   ```\n\n## Usage\n\nTo start the ChillWhale Tracker, run:\n   ```\n   npm run sync (or yarn sync)\n   ```\n\n## Usage for any other collection\n\nUnder the `./configs` directory, you will find a few already added collections. If you want to use one of them, run:\n\n   ```\n   npm run sync [name of collection] (or yarn sync)\n   ```\nFor instance, you will find\n- /configs/chillWhales.config.json\n- /configs/pxyls.config.json\n- ...\n\nIn order to run the PXYLS collection, your command looks like this `npm run sync pxyls` (or `yarn sync pyxls`)\n\nWhen you want to add a new collection on your own, create a new file with your desired name under the `./configs` folder\nwith the following mandatory entries:\n\n```json\n{\n  \"collection\": \"PXYLS\",\n  \"assetContract\": \"0xf651b88925c0b6c81ad6f658a2f104226d837f60\",\n  \"functionsNamespace\": \"generic\"\n}\n```\n\n- _collection_: name of the collection - you can choose on your own\n- _assetContract_: needs to be picked from the universal.page (I am sure, you'll spot it in the url when browsing)\n- _functionNamespace_: should generally be set to `generic` since it follows the generic approach to list items\n- _realtimeRanking_: recalculates the ranking lookups during the start (true/false)\n- _nonUniqueRanking_: assigns the same rank to an asset when the score is similar, otherwise it will be unique and assets with the same traits get a sequenced rank (true/false)\n\n\nHowever, the `functionNamespace` can be set to something specific, but in that case you need to study the code and follow the rules to implement a tailored display for a collection\n\n\n## Key Bindings\n\n    UP/DOWN arrows: Scroll through the asset list.\n    T: Toggle between 'price-low-high' and 'recently-listed' modes.\n    S: \"Sniper\" mode - opens a web browser with your selected item (focused) so that you can directly buy it from there\n    ESC, Q, or Ctrl + C: Exit the application.\n\n\n## Generic Rarity calculations \n\nFor all collections which don't offer a direct rarity score/ranking, I implemented a generic way to derive the actual ranks based on traits and their rarity.\n\nGiven an NFT collection, the rarity score for an individual NFT is calculated using the following steps:\n\n### Trait Frequency: \n\nFor each trait (i) and its value (j), calculate the frequency of that value within the collection.\n\n### Trait Rarity:\n\nThe rarity of a trait value is the inverse of its frequency, calculated as \n\n   ![Rarity Score Calculation - 2](/docs/eq-2.png)\n\n### Inclusion of Trait Count as Artificial Trait: \n\nThe count of traits for each NFT is treated as an artificial trait. \nThe frequency of each possible trait count is calculated, and its rarity is determined in the same manner as other traits.\n\n### Rarity Score Calculation: \n\nThe final rarity score for an NFT is the sum of the rarities of all its traits, \nincluding the artificial trait representing the trait count. \nIf (T) is the set of traits for the NFT, and (n) is the number of traits (including the artificial trait count), then the rarity score (S) is given by:\n\n   ![Rarity Score Calculation - 4](/docs/eq-4.png)\n\n### Ranking: \n\nNFTs are then ranked based on their calculated rarity scores (S), with a higher score indicating a rarer NFT. \nThe NFT with the highest rarity score is ranked first, and so on, with each NFT receiving a unique rank.\n\n### Ranking Disclaimer:\n\nAs this is a generic approach to calculate rarities, you will use that information at your own risk. I will not be responsibility when you put all your salary into \nan NFT with a (potentially) high rank ... #NFA ... #DYOR\n\n## Configuration\n\nModify the config.ts file to set parameters like chain endpoint, contract address, and polling intervals.\nDependencies\n\n   * axios: For HTTP requests.\n   * blessed: For building the interactive UI.\n   * dayjs: For date formatting.\n   * chalk: For text styling in the console.\n   * web3: For LUKSO blockchain interaction.\n\n## Contributing\n\nContributions to the ChillWhale Tracker are welcome! Please read our contributing guidelines for details on how to contribute.\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Acknowledgements\n\nThe ChillWhale community for their continuous support. Contributors who have helped in enhancing this tool.\n\n🚀 Happy Tracking with ChillWhale Tracker! 🆙🐳\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslippyex%2Fchillwhales-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fslippyex%2Fchillwhales-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fslippyex%2Fchillwhales-tracker/lists"}