{"id":48498557,"url":"https://github.com/cypherstack/firo_discord_tipbot","last_synced_at":"2026-04-07T13:32:27.344Z","repository":{"id":46441959,"uuid":"398415611","full_name":"cypherstack/firo_discord_tipbot","owner":"cypherstack","description":"Firo Tipbot for Discord","archived":false,"fork":false,"pushed_at":"2024-04-19T12:53:59.000Z","size":548,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-04-20T12:51:19.587Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cypherstack.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":"2021-08-20T22:41:22.000Z","updated_at":"2024-04-20T12:51:19.588Z","dependencies_parsed_at":"2024-04-19T12:39:17.071Z","dependency_job_id":"90d79cc5-6021-4925-898d-499cc196e7e6","html_url":"https://github.com/cypherstack/firo_discord_tipbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cypherstack/firo_discord_tipbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffiro_discord_tipbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffiro_discord_tipbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffiro_discord_tipbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffiro_discord_tipbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cypherstack","download_url":"https://codeload.github.com/cypherstack/firo_discord_tipbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypherstack%2Ffiro_discord_tipbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31515144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-07T13:32:26.333Z","updated_at":"2026-04-07T13:32:27.326Z","avatar_url":"https://github.com/cypherstack.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## How to deploy Firo Tip bot\n\nUpdate Ubuntu packages\n\u003cpre\u003esudo apt update\u003c/pre\u003e\n\u003cpre\u003esudo apt upgrade\u003c/pre\u003e\n\u003cpre\u003esudo apt-get install python3-dev python3-pip python3-virtualenv\u003c/pre\u003e\n\nClone firo tip bot repo:\n\u003cpre\u003egit clone https://repo_link\u003c/pre\u003e\n\u003cpre\u003ecd firo_tipbot\u003c/pre\u003e\n\nInstall python requirement packages\n\u003cpre\u003epip3 install -r requirements.txt\u003c/pre\u003e\n\nTo check if the bot works correct (after MangoDB, Firod, and the services.json are set up):\n\u003cpre\u003epython3 tipbot.py\u003c/pre\u003e\nIf there's not exceptions, use Ctrl+C to break the process.\n\n### Configure TipBot\n\u003cpre\u003evim /etc/systemd/system/tipbot.service\u003c/pre\u003e\n\nPaste\n\u003cpre\u003e\n[Unit]\nDescription=firotipbot\nAfter=network.target\nAfter=mongodb.service\n\n\n[Service]\nType=simple\nWorkingDirectory=/root/firo_tipbot\nExecStart=/usr/bin/python3 tipbot.py\nEnvironmentFile=/etc/environment\nRestartSec=10\nSyslogIdentifier=tipbot\nTimeoutStopSec=120\nTimeoutStartSec=2\nStartLimitInterval=120\nStartLimitBurst=5\nKillMode=mixed\nRestart=always\nPrivateTmp=true\n\n\n[Install]\nWantedBy=multi-user.target\n\u003c/pre\u003e\n\nGet your Discord bot token following these instructions.\n1) Create your discord server.\n2) https://discordapp.com/developers/applications/\n3) Click \"New Application\".\n4) Name the bot.\n5) Go to \"Bot\" and click add a bot.\n6) Click \"Copy\" and get the bot_token.\n7) Go to \"OAuth2\" .\n   1) Click \"bot\" in scopes.\n   2) add the following bot permissions.\n      1) Send Messages\n      2) Public Threads\n      3) Private Threads\n      4) Manage Messages\n      5) Attach Files\n      6) Read Message History\n      7) Use External Emojis\n      8) Add Reactions\n      9) View Channels.\n   3) Copy the url given by the scopes, and enter it in the search bar.\n      1) Approve adding the bot to the server of your choice.\n8) Create a private channel in your server called tipbot_logs.\n\nConfigure the services.json with your relevant information. \n\u003cpre\u003e\n... bot_token should be set to your Discord Bots token.\n    \"discord_bot\":\n    {\n      \"bot_token\":\"your_discord_bot_token_goes_here\"\n    },\n... \n    \"httpprovider\": \"http://username:password@localhost:8888\",\n    \"log_ch\": \"tipbot_logs\",\n     \"discord_server\": \"discord_server_name\",\n    \"admins\": {\n      \"yourdiscordname\": true\n    }\n\u003c/pre\u003e\n\nNext run\n\n\u003cpre\u003esystemctl daemon-reload\u003c/pre\u003e\n\nRun the following systemctl command to start the Tipbot service:\n\u003cpre\u003esudo systemctl start tipbot.service\u003c/pre\u003e\n \nThen check the service’s status.\n\u003cpre\u003esudo systemctl status tipbot.service\u003c/pre\u003e\n\nAfter confirming that the service is running as expected, enable the Tipbot service to start up at boot:\n\u003cpre\u003esudo systemctl enable tipbot.service\u003c/pre\u003e\n\nTo stop the service\n\u003cpre\u003esudo systemctl stop tipbot.service\u003c/pre\u003e\n\n### Install Mongodb on ubuntu\n#### Follow this manual:\nhttps://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-18-04-source\n\n\u003cpre\u003ecurl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -\u003c/pre\u003e\n\u003cpre\u003eecho \"deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse\" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list\u003c/pre\u003e\n\u003cpre\u003esudo apt update\u003c/pre\u003e\n\u003cpre\u003esudo apt install mongodb-org\u003c/pre\u003e\n\nConfigure init script\n\u003cpre\u003evim /etc/systemd/system/mongod.service\u003c/pre\u003e\n\u003cpre\u003e\n[Unit]\nDescription=High-performance, schema-free document-oriented database\nAfter=network.target\nDocumentation=https://docs.mongodb.org/manual\n\n[Service]\nUser=mongodb\nGroup=mongodb\nExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf\nRestartSec=10\nTimeoutStopSec=120\nTimeoutStartSec=2\nStartLimitInterval=120\nStartLimitBurst=5\nTasksMax=infinity\nTasksAccounting=false\nKillMode=mixed\nRestart=always\nPrivateTmp=true\n\n[Install]\nWantedBy=multi-user.target\n\u003c/pre\u003e\n\n\n\u003cpre\u003esystemctl daemon-reload\u003c/pre\u003e\n\nRun the following systemctl command to start the MongoDB service:\n\u003cpre\u003esudo systemctl start mongod.service\u003c/pre\u003e\n \nThen check the service’s status.\n\u003cpre\u003esudo systemctl status mongod.service\u003c/pre\u003e\n\nAfter confirming that the service is running as expected, enable the MongoDB service to start up at boot:\n\u003cpre\u003esudo systemctl enable mongod.service\u003c/pre\u003e\n\nTo stop the service\n\u003cpre\u003esudo systemctl stop mongod.service\u003c/pre\u003e\n\n## Install Firewall\n#### To install Firewall follow instructoins\nhttps://firo.org/guide/masternode-setup.html\n\nWe are installing UFW (uncomplicated firewall) to further secure your VPS server. This is optional but highly recommended.\n\nWhile still in root user on your VPS (or alternatively you can sudo within your newly created user).\n\n\u003cpre\u003eapt install ufw\u003c/pre\u003e\n\n(press Y and Enter to confirm)\n\n\u003cpre\u003eufw allow ssh/tcp\u003c/pre\u003e\n\n\u003cpre\u003eufw limit ssh/tcp\u003c/pre\u003e\n\n\u003cpre\u003eufw logging on\u003c/pre\u003e\n\n\u003cpre\u003eufw enable\u003c/pre\u003e \n\n## How to install Firo Wallet/Node on Ubuntu\n\n#### Download and unzip last release \n\n\u003ccode\u003ewget https://github.com/firoorg/firo/releases/download/v0.14.6.0/firo-0.14.6.0-linux64.tar.gz | tar -xvf\u003c/code\u003e\n\n#### Send files to binary folder\n\n\u003ccode\u003ecd firo-0.14.6; cp bin/* /usr/local/bin\u003c/code\u003e\n\n#### Create config file\nnano /root/.firo/firo.config\n\n\u003cpre\u003e\n#----\nrpcuser=user\nrpcpassword=password\nrpcallowip=127.0.0.1\nrpcport=8332\n#----\nlisten=1\nserver=1\ndaemon=1\nlogtimestamps=1\ntxindex=1\n\u003c/pre\u003e\n\n#### Run node as daemon with systemctl\nhttps://github.com/firoorg/firo/wiki/Configuring-masternode-with-systemd\n\n# Firo CLI HELP\n\n\u003cpre\u003e\n== Addressindex ==\ngetaddressbalance\ngetaddressdeltas\ngetaddressmempool\ngetaddresstxids\ngetaddressutxos\ngettotalsupply\n\n== Blockchain ==\nclearmempool\ngetbestblockhash\ngetblock \"blockhash\" ( verbose )\ngetblockchaininfo\ngetblockcount\ngetblockhash height\ngetblockhashes timestamp\ngetblockheader \"hash\" ( verbose )\ngetchaintips\ngetdifficulty\ngetmempoolancestors txid (verbose)\ngetmempooldescendants txid (verbose)\ngetmempoolentry txid\ngetmempoolinfo\ngetrawmempool ( verbose )\ngetspecialtxes \"blockhash\" ( type count skip verbosity )\ngettxout \"txid\" n ( include_mempool )\ngettxoutproof [\"txid\",...] ( blockhash )\ngettxoutsetinfo\npreciousblock \"blockhash\"\npruneblockchain\nverifychain ( checklevel nblocks )\nverifytxoutproof \"proof\"\n\n== Control ==\ngetinfo\ngetmemoryinfo\nhelp ( \"command\" )\nstop\n\n== Evo ==\nbls \"command\" ...\nprotx \"command\" ...\nquorum \"command\" ...\nspork list\n\n== Firo ==\nevoznode \"command\"...\nevoznode list ( \"mode\" \"filter\" )\nevoznsync [status|next|reset]\n\n== Generating ==\ngenerate nblocks ( maxtries )\ngeneratetoaddress nblocks address (maxtries)\nsetgenerate generate ( genproclimit )\n\n== Mining ==\ngetblocktemplate ( TemplateRequest )\ngetmininginfo\ngetnetworkhashps ( nblocks height )\nprioritisetransaction txid priority delta fee delta\nsubmitblock \"hexdata\" ( \"jsonparametersobject\" )\n\n== Mobile ==\ngetanonymityset\ngetlatestcoinids\ngetmintmetadata\ngetusedcoinserials\n\n== Network ==\naddnode \"node\" \"add|remove|onetry\"\nclearbanned\ndisconnectnode \"address\"\ngetaddednodeinfo ( \"node\" )\ngetconnectioncount\ngetnettotals\ngetnetworkinfo\ngetpeerinfo\nlistbanned\nping\nsetban \"subnet\" \"add|remove\" (bantime) (absolute)\nsetnetworkactive true|false\n\n== Rawtransactions ==\ncreaterawtransaction [{\"txid\":\"id\",\"vout\":n},...] {\"address\":amount,\"data\":\"hex\",...} ( locktime )\ndecoderawtransaction \"hexstring\"\ndecodescript \"hexstring\"\nfundrawtransaction \"hexstring\" ( options )\ngetrawtransaction \"txid\" ( verbose )\nsendrawtransaction \"hexstring\" ( allowhighfees )\nsignrawtransaction \"hexstring\" ( [{\"txid\":\"id\",\"vout\":n,\"scriptPubKey\":\"hex\",\"redeemScript\":\"hex\"},...] [\"privatekey1\",...] sighashtype )\n\n== Util ==\ncreatemultisig nrequired [\"key\",...]\nestimatefee nblocks\nestimatepriority nblocks\nestimatesmartfee nblocks\nestimatesmartpriority nblocks\nsignmessagewithprivkey \"privkey\" \"message\"\nvalidateaddress \"address\"\nverifymessage \"address\" \"signature\" \"message\"\n\n== Wallet ==\nabandontransaction \"txid\"\naddmultisigaddress nrequired [\"key\",...] ( \"account\" )\naddwitnessaddress \"address\"\nThis function automatically mints all unspent transparent funds\nbackupwallet \"destination\"\nbumpfee \"txid\" ( options )\ndumpprivkey \"firoaddress\"\ndumpwallet \"filename\"\nencryptwallet \"passphrase\"\ngetaccount \"firoaddress\"\ngetaccountaddress \"account\"\ngetaddressesbyaccount \"account\"\ngetbalance ( \"account\" minconf include_watchonly )\ngetnewaddress ( \"account\" )\ngetrawchangeaddress\ngetreceivedbyaccount \"account\" ( minconf )\ngetreceivedbyaddress \"firoaddress\" ( minconf )\ngettransaction \"txid\" ( include_watchonly )\ngetunconfirmedbalance\ngetwalletinfo\nimportaddress \"address\" ( \"label\" rescan p2sh )\nimportmulti \"requests\" \"options\"\nimportprivkey \"firoprivkey\" ( \"label\" ) ( rescan )\nimportprunedfunds\nimportpubkey \"pubkey\" ( \"label\" rescan )\nimportwallet \"filename\"\njoinsplit {\"address\":amount,...} ([\"address\",...] )\nkeypoolrefill ( newsize )\nlistaccounts ( minconf include_watchonly)\nlistaddressbalances ( minamount )\nlistaddressgroupings\nlistlelantusjoinsplits\nlistlelantusmints all(false/true)\nlistlockunspent\nlistmintzerocoins all(false/true)\nlistpubcoins all(1/10/25/50/100)\nlistreceivedbyaccount ( minconf include_empty include_watchonly)\nlistreceivedbyaddress ( minconf include_empty include_watchonly)\nlistsigmamints all(false/true)\nlistsigmapubcoins all(0.05/0.1/0.5/1/10/25/100)\nlistsigmaspends\nlistsinceblock ( \"blockhash\" target_confirmations include_watchonly)\nlistspendzerocoins\nlisttransactions ( \"account\" count skip include_watchonly)\nlistunspent ( minconf maxconf  [\"addresses\",...] [include_unsafe] )\nlistunspentsigmamints [minconf=1] [maxconf=9999999]\nlistunspentmintzerocoins [minconf=1] [maxconf=9999999]\nresetlelantusmint\nresetmintzerocoin\nresetsigmamint\nsendfrom \"fromaccount\" \"toaddress\" amount ( minconf \"comment\" \"comment_to\" )\nsendmany \"fromaccount\" {\"address\":amount,...} ( minconf \"comment\" [\"address\",...] )\nsendtoaddress \"firoaddress\" amount ( \"comment\" \"comment-to\" subtractfeefromamount )\nsetaccount \"firoaddress\" \"account\"\nsetlelantusmintstatus \"coinserial\" isused(true/false)\nsetmininput amount\nsetmintzerocoinstatus \"coinserial\" isused(true/false)\nsetsigmamintstatus \"coinserial\" isused(true/false)\nsettxfee amount\nsignmessage \"firoaddress\" \"message\"\nspendmany \"fromaccount\" {\"address\":amount,...} ( minconf \"comment\" [\"address\",...] )\nspendmanyzerocoin \"{\"address\":\"third party address or blank for internal\", \"denominations\": [{\"value\":(1,10,25,50,100), \"amount\":}, {\"value\":(1,10,25,50,100), \"amount\":},...]}\"\nspendzerocoin amount(1,10,25,50,100) (\"firoaddress\")\n\u003c/pre\u003e\n\n\n#### Curl Request \n\n\u003ccode\u003ecurl --data-binary '{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", \"method\": \"getbalance\"}' http://user:password@127.0.0.1:8332\u003c/code\u003e\n\n\u003ccode\u003e curl --data-binary '{\"jsonrpc\": \"1.0\", \"id\":\"curltest\", \"method\": \"getaddressbalance\", \"params\": [{\"addresses\": [\"XwnLY9Tf7Zsef8gMGL2fhWA9ZmMjt4KPwg\"]}] }' -H 'content-type: text/plain;' http://user:password@127.0.0.1:8332\u003c/code\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypherstack%2Ffiro_discord_tipbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcypherstack%2Ffiro_discord_tipbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypherstack%2Ffiro_discord_tipbot/lists"}