{"id":28961484,"url":"https://github.com/tonykipkemboi/on_chain_nft_data","last_synced_at":"2025-08-19T21:12:03.570Z","repository":{"id":56742170,"uuid":"524478452","full_name":"tonykipkemboi/on_chain_nft_data","owner":"tonykipkemboi","description":"On Chain NFT Data using Alchemy RPC","archived":false,"fork":false,"pushed_at":"2023-06-05T05:37:44.000Z","size":179,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-20T05:45:06.008Z","etag":null,"topics":["alchemyapi","nfts","rpc","web3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tonykipkemboi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-13T18:31:43.000Z","updated_at":"2023-03-15T01:05:06.000Z","dependencies_parsed_at":"2022-08-16T01:10:30.884Z","dependency_job_id":null,"html_url":"https://github.com/tonykipkemboi/on_chain_nft_data","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tonykipkemboi/on_chain_nft_data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonykipkemboi%2Fon_chain_nft_data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonykipkemboi%2Fon_chain_nft_data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonykipkemboi%2Fon_chain_nft_data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonykipkemboi%2Fon_chain_nft_data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tonykipkemboi","download_url":"https://codeload.github.com/tonykipkemboi/on_chain_nft_data/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonykipkemboi%2Fon_chain_nft_data/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261589903,"owners_count":23181435,"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":["alchemyapi","nfts","rpc","web3"],"created_at":"2025-06-24T02:03:40.427Z","updated_at":"2025-06-24T02:03:41.216Z","avatar_url":"https://github.com/tonykipkemboi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NFT Bag Checker: Your On-chain NFT Data\n\nThis code pulls on-chain NFT data for a given wallet address or ENS name.\n\nThe raw json data is normalized using `pandas.json_normalize` function and\nsome simple analysis ran on the data based on the following user questions:\n\n- How many SPAM and non-SPAM NFTs do I own?\n  \n- What percentage of each token type (i.e. ERC721/ERC1155/UNKNOWN) do I own?\n  \nThere's an option to download your data as well, if you like!\n\nHere's an example of NFTs held by `vitalik.eth` as of `8/12/2022`\n\n![NFTs held by vitalik.eth](./vitalik_nft_data_snapshot.png)\n\n## Installation Steps\n\nMy system setup:\n\n- windows machine; windows guy here! (you can easily look up the equivalent commands for the systems you're working with)\n- python 3.10.2 version\n  \nClone the repository:\n\n```bash\ngit clone https://github.com/tonykipkemboi/on_chain_nft_data\n```\n\nGo into the directory.\n\n```bash\ncd on_chain_nft_data\n```\n\nYou have the option of running this app on the command line or opening it up in your favorite IDE (Integrated Development Environment).\nWhichever option you choose, make sure to follow configure the below correctly.\n\n**This next step is CRUCIAL, make sure to follow the instructions carefully**\n\nNavigate to the file named `.env_example` and:\n\n```bash\n- Rename \".env_example\" file to \".env\"\n\n- Add your in between the quotes; ALCHEMY_API_KEY =\"YOUR_ALCHEMY_API_KEY_GOES_HERE\"\n\n- Save the file!\n```\n\nGet your API here if you don't have one [Alchemy API Key](https://www.alchemy.com/)\n\nSetup a `virtual environment` by running the following commands in your `windows terminal`:\n\n- This will create a on-chain-nft-data/venv folder.\n\n```bash\npython -m venv venv\n```\n\n- Activate venv with the following command (different variations depending on your OS(Operating System))\n\n```bash\n.\\venv\\Scripts\\activate\n```\n\n- Add venv to your .gitignore file if not added already.\n\nYou can tell the environment is active by looking at your terminal prompt.\nIt will look something of the sort. Note the `venv` part:\n\n```bash\n(venv) computer:on_chain_data user$\n```\n\nInstall the dependencies required to run the program by running this command:\n\n```bash\npip install -r requirements.txt\n```\n\n## Running the program on the Command Line\n\nChange directory into `app` folder to run the program as such;\n\n- Change directory to app\n\n```bash\ncd app\n```\n\nRun the program;\n\n```bash\npython runner.py\n```\n\nAfter you're through and ready to close the terminal, `deactivate` the virtual environment by typing he following command;\n\n```bash\ndeactivate\n```\n\n## Running the program on Jupyter Notebook\n\nAlternatively, if you would like to play with the app in `Jupyter Notebook`, navigate to the root of the directory and type the following commands in your terminal/command line;\n\n- Running the following command will create a kernel that can be used to run jupyter notebook commands inside the virtual environment.\n  \n```bash\nipython kernel install --user --name=venv\n```\n\n- Open Jupyter Notebook.\n-\n\n```bash\njupyter notebook\n```\n\nThis assumes you have Jupyter Notebook configured in yor system, if not, consider downloading [Anaconda](https://www.anaconda.com/)\n\nFor the `jupyter notebook`, run the cell using `Ctrl + Enter` or using the run button on the UI.\n\n## Improvements \u0026 Next Steps\n\nMore info in this file.\n\n[TODO](./on_chain_data/TODO.md)\n\n- The query for owners with a lot of NFTs is taking a couple of minutes to run, here's stats for running `vitalik.eth`\n\n  ```bash\n  Execution time: ~ 3 minutes 30 seconds\n  Total NFTs (at time of query): 20937 \n  ```\n\n- The latency could be improved by implementing concurrency.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonykipkemboi%2Fon_chain_nft_data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonykipkemboi%2Fon_chain_nft_data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonykipkemboi%2Fon_chain_nft_data/lists"}