{"id":23193457,"url":"https://github.com/william-versatile/nft-bot-sol","last_synced_at":"2026-05-18T19:39:57.577Z","repository":{"id":225576534,"uuid":"765384217","full_name":"William-versatile/NFT-bot-sol","owner":"William-versatile","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-29T20:17:11.000Z","size":188,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-10T15:17:07.259Z","etag":null,"topics":["bot","nft","solana","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/William-versatile.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-29T20:16:39.000Z","updated_at":"2024-02-29T20:34:14.000Z","dependencies_parsed_at":"2024-03-03T01:41:25.876Z","dependency_job_id":null,"html_url":"https://github.com/William-versatile/NFT-bot-sol","commit_stats":null,"previous_names":["william-xfactor/nft-bot-sol","william-versatile/nft-bot-sol"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-versatile%2FNFT-bot-sol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-versatile%2FNFT-bot-sol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-versatile%2FNFT-bot-sol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/William-versatile%2FNFT-bot-sol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/William-versatile","download_url":"https://codeload.github.com/William-versatile/NFT-bot-sol/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247302167,"owners_count":20916645,"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":["bot","nft","solana","typescript"],"created_at":"2024-12-18T13:11:35.316Z","updated_at":"2026-05-18T19:39:52.539Z","avatar_url":"https://github.com/William-versatile.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solana NFT Bot\n\nSolana NFT bot is a helpful bot for your Solana NFT projects.\n\n## Sponsor\nThis project is proudly sponsored by [milktoast.world](https://milktoast.world):\nAn NFT project that aims to spread happiness and cheer. \n\n\u003cimg src=\"https://user-images.githubusercontent.com/90617759/139604005-addc968d-2193-4e7b-9ac9-86622672391b.png\" width=100\u003e\n\nIf you find this project useful, please support us by give Milktoast a shoutout on [twitter](https://twitter.com/milktoastnft)! \n\n\n## Features\n- [x] Notify discord channel on each purchase in marketplaces. \n- [x] [Support major marketplaces](#marketplace-support) \n\n\u003cimg width=\"508\" alt=\"Screen Shot 2021-11-01 at 7 40 44 pm\" src=\"https://user-images.githubusercontent.com/90617759/139645471-4b2aab1e-2fa2-4691-87ca-1707bc35b027.png\"\u003e\n\n## Running using docker\n\n### Requirement\n* [Docker](https://www.docker.com/products/docker-desktop) \u003e= v20.10\n  * If you're new to Docker, we recommend going through their [get started page](https://docs.docker.com/get-started/) to gain a basic understanding of Docker before moving forward.\n* A Solana RPC node/server - This is needed so the bot know where to call to fetch solana transactions.\nHere are some potential routes to get a node:\n  * https://quicknode.com/\n  * [Run your own](https://medium.com/@MisterKevin_js/how-to-run-your-own-solana-rpc-endpoint-on-figments-datahub-e9ca881bebb7)\n\n\n\n### Instructions\n\n#### Run bot locally using docker in the terminal\n\nIf you're new to docker, before starting I recommend \n\nRun the following command with your own secrets replaced with your own configuration:\n\n```\ndocker run --name nftbot -d -p 4000:4000 -e SOLANA_RPC=YOURRPCURL -e DISCORD_BOT_TOKEN=YOURDISCORDTOKEN -e SUBSCRIPTION_DISCORD_CHANNEL_ID=YOURCHANNELID -e SUBSCRIPTION_MINT_ADDRESS=YOURMINTADDRESS milktoastlab/solananftbot\n```\nNote: The command above is tested in linux/unix env only. You may have a different experience in Windows.\nPlease check the [documentation on how to run docker command in windows](https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/run-your-first-container) if you need any help.\n\nView logs\n```\ndocker logs ntfbot\n```\n\nTo make sure the bot is working properly, use [/test-sale-tx](src/server.ts#L47) endpoint\n```\ncurl \"http://localhost:4000/test-sale-tx?signature={sale_transaction_signature}\u0026channelId={discord_channel_id}\"\n```\n\nIn case of *DiscordAPIError: Missing Access* error, check if the bot has been invited to the channel. Go to the channel, click \"Add members or roles\" and add your bot account as a member.\n\n\nAlternatively, you can run it using docker-compose:\n\nUpdate `.env` with your secret and run\n```\ndocker-compose up -d bot\n```\n\nSee [here](#configurable-environments) for more details on environment variables\n\nView logs\n```\ndocker-compose logs bot\n```\n\n## Running in development\n### Requirement\n* Node \u003e= 16.6\n* Yarn\n\n### Instructions\n\n#### 1. Install dependencies\n```\nyarn install\n```\n\n#### 2. Update .env with your secrets\n\nFollow the instructions [here](#configurable-environments)\n\n#### 3. Run the server\n```\nyarn dev\n```\n\n## Configurable environments\n\nHere are a list of environments you need to configure before running the NFT bot.\n\n```sh\n# RPC node url\nSOLANA_RPC=\n# Discord bot secret\nDISCORD_BOT_TOKEN=\n# The discord channel to notify\nSUBSCRIPTION_DISCORD_CHANNEL_ID=\n# Mint address to watch for sales\nSUBSCRIPTION_MINT_ADDRESS=\n```\nhttps://github.com/milktoastlab/SolanaNFTBot/blob/main/.env\n\n### Variable breakdowns\n\n#### DISCORD_BOT_TOKEN\nThis is your discord bot secret.\nIf you don't have a discord bot yet, you can create one following the instructions here:\nhttps://discordpy.readthedocs.io/en/stable/discord.html\n\nMake sure your bot has the required permissions:\n* View channels\n* Read/Send messages\n* Send messages\n* Embed links\n\n\u003cimg width=\"827\" alt=\"Screen Shot 2021-10-31 at 9 25 31 am\" src=\"https://user-images.githubusercontent.com/90617759/139560537-e0420217-25d7-4538-81cc-d53422c24db9.png\"\u003e\n\n#### SUBSCRIPTION_DISCORD_CHANNEL_ID\nThis is the ID of the discord channel you want to send notifications to.\nYou will need to enable developer mode have access the channel IDs.\nHere are the instructions:\nhttps://support.discord.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID-\n\n#### SUBSCRIPTION_MINT_ADDRESS\nThis is the address that you want the Solana NFT bot to watch for notifications.\nIt needs to be one of the creator addresses:\n\u003cimg width=\"324\" alt=\"Screen Shot 2021-11-12 at 6 16 31 pm\" src=\"https://user-images.githubusercontent.com/90617759/141426468-fcf7c522-4480-4a4e-b1e9-c0cbed3f4f10.png\"\u003e\n\n_Note: Avoid personal addresses because it could detect unwanted sales._\n\n\n## Marketplace support\n\n- [x] [Magic Eden](https://magiceden.io/)\n- [x] [Solanart](http://solanart.io/)\n- [x] [Digital Eyes](https://digitaleyes.market/)\n- [x] [Alpha Art](https://alpha.art/)\n- [x] [Exchange Art](https://exchange.art/)\n- [x] [Solsea](https://solsea.io/)\n\n### Adding new marketplace\n\nSolanaNFTBot aim to support as many marketplaces are possible. \nHere is the instruction on how you can add support to other marketplaces.\n\n#### 1. Add a new marketplace config\nUse `src/lib/marketplaces/solsea.ts` as example\n\n#### 2. Write a test for the marketplace\nUse `src/lib/marketplaces/solsea.test.ts` as example\n\n#### 3. Add the new marketplace to the existing list \n`src/lib/marketplaces/marketplaces.ts`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliam-versatile%2Fnft-bot-sol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilliam-versatile%2Fnft-bot-sol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilliam-versatile%2Fnft-bot-sol/lists"}