{"id":23095106,"url":"https://github.com/steppsr/kiwi-nft-faucet","last_synced_at":"2026-05-01T09:31:34.707Z","repository":{"id":267859314,"uuid":"658181651","full_name":"steppsr/kiwi-nft-faucet","owner":"steppsr","description":"A memorial, commemorative NFT faucet for Kiwi, aka David Hamish Speirs, a true Chia OG.","archived":false,"fork":false,"pushed_at":"2023-06-26T01:39:43.000Z","size":1000,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-12T05:39:38.266Z","etag":null,"topics":["bash","chia","chia-blockchain","faucet","nft","php"],"latest_commit_sha":null,"homepage":"https://kiwifaucet.site","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/steppsr.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,"publiccode":null,"codemeta":null}},"created_at":"2023-06-25T02:57:32.000Z","updated_at":"2023-06-25T22:50:03.000Z","dependencies_parsed_at":"2024-12-12T22:22:31.321Z","dependency_job_id":"8be8b758-f994-48f7-859e-0c22c61fa24a","html_url":"https://github.com/steppsr/kiwi-nft-faucet","commit_stats":null,"previous_names":["steppsr/kiwi-nft-faucet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/steppsr/kiwi-nft-faucet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steppsr%2Fkiwi-nft-faucet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steppsr%2Fkiwi-nft-faucet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steppsr%2Fkiwi-nft-faucet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steppsr%2Fkiwi-nft-faucet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steppsr","download_url":"https://codeload.github.com/steppsr/kiwi-nft-faucet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steppsr%2Fkiwi-nft-faucet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32492106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","chia","chia-blockchain","faucet","nft","php"],"created_at":"2024-12-16T22:19:31.506Z","updated_at":"2026-05-01T09:31:34.682Z","avatar_url":"https://github.com/steppsr.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kiwi-nft-faucet\nA memorial, commemorative NFT faucet for Kiwi, aka David Hamish Speirs, a true Chia OG.\n\n---\n\n## Overview\n\n![Kiwi Faucet Design](public_html/assets/KiwiFaucetWorkflow.png)\n\n## Front End\n\n___PHP___\n\n| File | Description |\n| --- | --- |\n| index.php | This is the main home page for the site. |\n| submit.php |  This is the page to process each submission and provide feedback to the user before redirecting back to the home page. |\n|stats.php | This is a dynamic HTML block that gets included in the `index.php` page and is derived from the Back End. |\n\n___Javascript___\n| File | Description |\n| --- | --- |\n| kiwi.js | This handles setting the visibility of elements on the page, and submitting the Google reCAPTCHA. |\n\n___CSS___\n| File | Description |\n| --- | --- |\n| kiwi.css | Format, Layout, and Style. |\n\n---\n\n## Back End\n\nThe code for the Back End can be found in the scripts folder.\n\n___Crontab Jobs___\n| File | Description |\n| --- | --- |\n| nft_move.sh | Will move any Kiwi NFTs in the Unassigned wallet_id to the DID wallet_id. Will only move NFTs in the Kiwi collection. |\n| stats.sh | Will calculate the stats and write to a PHP file that is included in the `index.php` page. |\n\n___Systemd Services___\n| File | Description |\n| --- | --- |\n| kiwifaucet.service.sh | This is the service engine script that continuously loops to check for new requests and send NFTs. |\n| get_requests.sh | Gets the requests from the website and puts them into the `queue.csv` file. |\n\n___Maintenace Scripts___\n| File | Description |\n| --- | --- |\n| nft_count.sh | Will output the number of NFTs in a given wallet. |\n| take_offers.sh | Bot to take offers if you have multiple offer files. |\n\n___CSV Files___\n| File | Description |\n| --- | --- |\n| requests.csv | Requests w/ basic validation |\n| overflow.csv | Used if `requests.csv` doesn't exist |\n| debug.csv | log all entries for debugging if needed |\n| debug.0.csv | template for debug archiving |\n| moves.csv | Used when bulk moving NFTs from Unassigned to DID |\n| queue.csv | List of XCH addresses that need an NFT sent to them |\n| transactions.csv | Completed transactions once processed from `queue.csv` |\n\nCSV File Structure\n\n\tTIME_STAMP,SEND_TO_ADDRESS\n\nExample:\n\n\t2023-06-20T01:02:00+00:00,xch1h8px4kmx9mrwsdak094dfs05rwydjrs42m3a8llafyyv278qymxsyzams8\n\n---\n\n## Faucet Service\n\nFaucet Service Pseudocode - this is an intentional endless loop\n\n\tWHILE true\n\t\tIF queue \u003e 0 THEN\n\t\t\tpop one address from top of queue\n\t\t\tget one nft_id from DID\n\t\t\tsend nft to address\n\t\t\tlog transaction\n\t\tELSE\n\t\t\tget all submissions\n\t\t\tFOR EACH item IN submissions\n\t\t\t\tadd item to queue\n\t\t\tLOOP\n\t\t\tempty submissions file\n\t\tENDIF\n\tLOOP\n\n## Setting up Service\n\n#### Configuration\n\nYou will need __systemd__ which is normally already installed, but you can install if needed:\n```\nsudo apt-get install -y systemd\n```\nTo check what version of __systemd__ you have simple run the command:\n`systemd --version`\n\nThe command to create the service:\n`sudo nano /etc/systemd/system/faucet.service`\n\nAdjust for your configuration:\n```\n[Unit]\nDescription=Faucet Service\nAfter=multi-user.target\n\n[Service]\nType=simple\nRestart=always\nUser=YOUR_USER\nGroup=YOUR_GROUP\nExecStart=PATH_TO_SCRIPT\n\n[Install]\nWantedBy=multi-user.target\n```\nNote: This script is Bash, but you run any program/script, including Python.\n\n## Controlling the Service\n\n| Action | Command |\n| --- | --- |\n| __Reloading Service__ | `sudo systemctl daemon-reload` |\n| __Enabling Service__ | `sudo systemctl enable faucet.service` |\n| __Stopping Service__ | `sudo systemctl stop faucet.service` |\n| __Starting Service__ | `sudo systemctl start faucet.service` |\n| __Restarting Service__ | `sudo systemctl restart faucet.service` |\n| __Check Status__ | `sudo systemctl status faucet.service` |\n\n## Setting up Cronjobs\n\nWe have two script that we run every 5 minutes from `crontab`. \n1. move_nft.sh - which will move any Kiwi NFTs in the Unassigned wallet, into the Kiwi DID wallet.\n2. stats.sh - which will calculate how many total NFTs have been sent out, and the current number of NFTs in our Kiwi DID wallet for use in the webpage.\n\nTo enter the cronjobs run the following command:\n`crontab -e`\n\nThen add the following:\n```\n0,5,10,15,20,25,30,35,40,45,50,55 * * * * bash /var/www/kiwifaucet.site/public_html/scripts/nft_move.sh col14rl3mpxfxr6acdnzlu466shl9s8ljr9cm9ujar80j5rld2y8lf5qx36yqf 2\n0,5,10,15,20,25,30,35,40,45,50,55 * * * * bash /var/www/kiwifaucet.site/public_html/scripts/stats.sh html\n```\n\n## Current Known Issues\n* The nft_move.sh script has an issue when ran from `crontab`. For now, I have been running it manually when I notice there are Kiwi NFTs in the Unassigned wallet. I check for these by manually running the following command: `bash stats.sh` from within the scripts folder.\n* You need to make sure you have enough coins on hand. The `bash stats.sh` command in the scripts folder will include the number of coins in the stats results, but if it's low, you will need to split some coins. I use the CLI command `chia wallet coins split` to do the split.\n\n---\n\n___kiwifaucet.site is a community-based initiative, independently operated, and is not associated with, nor maintained by Chia Network Inc.___\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteppsr%2Fkiwi-nft-faucet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteppsr%2Fkiwi-nft-faucet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteppsr%2Fkiwi-nft-faucet/lists"}