MyDiceBot - v190610 with KryptoGamers is supported

in #utopian-io6 years ago (edited)

MyDiceBot - v190610 with KryptoGamers is supported

<p dir="auto"><img src="https://images.hive.blog/768x0/https://user-images.githubusercontent.com/39991582/59188205-a86ab000-8b66-11e9-9fa9-b6f78cfc5bae.png" alt="image" srcset="https://images.hive.blog/768x0/https://user-images.githubusercontent.com/39991582/59188205-a86ab000-8b66-11e9-9fa9-b6f78cfc5bae.png 1x, https://images.hive.blog/1536x0/https://user-images.githubusercontent.com/39991582/59188205-a86ab000-8b66-11e9-9fa9-b6f78cfc5bae.png 2x" /> <h1>Feature Update <ul> <li><a href="https://kryptogamers.com/?ref=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">KryptoGamers is supported <h1>Source Codes <ul> <li>UI code <pre><code>function init() { console.log('hello KryptoGames Dice'); $$("bet_currency_selection").define("options", [ {id:1,value:"STEEM"}, {id:2,value:"SBD"}, ]); minBetAmount = 0.1; $$("manual_bet_amount").setValue(minBetAmount); $$("auto_bet_base_amount").setValue(minBetAmount); $$("manual_bet_chance").setValue(49); $$("auto_bet_base_chance").setValue(49); $$("bet_currency_selection").refresh(); $$("manual_bet_high_button").hide(); $$("auto_bet_start_low_high").define("options", ["LOW"]); $$("auto_bet_start_low_high").refresh(); } function checkParams(p,ch){ //console.log(p,ch); if(p < 0.00000001 || p > 1000000000*1000000000) { return false } if(ch>94 || ch<1) { return false } return true; } function initScriptBalance(currencyValue, cb){ getInfo(function(userinfo){ if(userinfo.info.success == 'true'){ try { balance = userinfo.info.balance; bets = userinfo.info.bets; wins = userinfo.info.wins; losses = userinfo.info.losses; profit = userinfo.info.profit; } catch(err){ console.error(err.message); webix.message({type: 'error', text: err.message}); return false; } cb(); } }); } function getBalance(userinfo){ balance = userinfo.info.balance return balance; } function getProfit(userinfo){ profit = userinfo.currentInfo.profit; //console.log('actprofit:'+actProfit); return profit; } function getCurrProfit(ret){ currentprofit = ret.betInfo.profit //console.log('currprofit:'+currProfit); return currentprofit; } function getCurrentBetId(ret){ let betId = ret.betInfo.id; //console.log('currentBetId:'+betId); return betId; } function getCurrentRoll(ret){ currentroll = ret.betInfo.roll_number; //console.log('currentRoll:'+roll); return currentroll; } function outError(ret){ let mess = ret.err; return checkerr(mess); } function isError(ret){ if(typeof ret.err != "undefined") return false; else return true; } function getWinStatus(ret){ return ret.betInfo.win; } function setDatatable(ret){ let chanceStr = '<font size="3" color="red">'+ ret.betInfo.condition + ' '+ ret.betInfo.target +'</font>'; if(ret.betInfo.win){ chanceStr = '<font size="3" color="green">'+ ret.betInfo.condition + ' '+ ret.betInfo.target +'</font>'; } let profitStr = '<font size="3" color="red">' + ret.betInfo.profit+ '</font>'; if(ret.betInfo.profit>0) { profitStr = '<font size="3" color="green">' + ret.betInfo.profit + '</font>'; } $$('bet_datatable').add({ bet_datatable_id:ret.betInfo.id, bet_datatable_amount:ret.betInfo.amount, bet_datatable_low_high:ret.betInfo.condition, bet_datatable_payout:ret.betInfo.payout, bet_datatable_bet_chance:chanceStr, bet_datatable_actual_chance:ret.betInfo.roll_number, bet_datatable_profit:profitStr, },0); } function setStats(userinfo, cv){ if(userinfo.info.success == 'true'){ $$('bet_total_stats').setValues({ bet_total_stats_balance:userinfo.info.balance, bet_total_stats_win:userinfo.info.wins, bet_total_stats_loss:userinfo.info.losses, bet_total_stats_bet:userinfo.info.bets, bet_total_stats_profit:userinfo.info.profit, bet_total_stats_wagered:userinfo.info.wagered, }); $$('bet_current_stats').setValues({ bet_current_stats_balance:userinfo.currentInfo.balance, bet_current_stats_win:userinfo.currentInfo.wins, bet_current_stats_loss:userinfo.currentInfo.losses, bet_current_stats_bet:userinfo.currentInfo.bets, bet_current_stats_profit:userinfo.currentInfo.profit, bet_current_stats_wagered:userinfo.currentInfo.wagered, }); } } * Backend Code ```javascript 'use strict'; import {BaseDice} from './base' import FormData from 'form-data'; import {APIError} from '../errors/APIError'; import steem from 'steem'; import request from 'request'; import fetch from 'isomorphic-fetch'; export class KryptoGames extends BaseDice { constructor(){ super(); this.url = 'https://kryptogames.io'; this.benefit = '?ref=mydicebot' this.currencys = ["steem","sbd"]; steem.api.setOptions({url:'https://api.steemit.com'}); } async login(userName, password, twoFactor ,apiKey, req) { req.session.accessToken = apiKey; req.session.username = userName; return true; } async getUserInfo(req) { let info = req.session.info; if(typeof info != 'undefined'){ return true; } let userName = req.session.username; let ret = await steem.api.getAccountsAsync([userName]); let userinfo = { 'bets' : 0, 'wins' : 0, 'losses' : 0, 'profit' : 0, 'wagered' : 0, 'balance' : 0, }; for(let k in ret){ let sbd = ret[k]['sbd_balance'].split(' '); let steem_balance = ret[k]['balance'].split(' '); userinfo.balance = parseFloat(steem_balance[0]); } info = {}; let currentInfo = userinfo; info.info = userinfo; req.session.info = info; console.log(req.session.info); return info; } async refresh(req) { let info = req.session.info; if(info){ return info; } let userName = req.session.username; let ret = await steem.api.getAccountsAsync([userName]); for(let k in ret){ let balance = new Array(); balance['sbd'] = ret[k]['sbd_balance'].split(' '); balance['steem'] = ret[k]['balance'].split(' '); info.info.balance = parseFloat(balance[req.query.currency][0]); } req.session.info = info; return info; } async clear(req) { let userName = req.session.username; let ret = await steem.api.getAccountsAsync([userName]); let info = {}; info.info = { 'bets' : 0, 'wins' : 0, 'losses' : 0, 'profit' : 0, 'wagered' : 0, 'balance' : 0, }; info.currentInfo = { 'bets' : 0, 'wins' : 0, 'losses' : 0, 'profit' : 0, 'wagered' : 0, 'balance' : 0, } for(let k in ret){ let balance = new Array(); balance['sbd'] = ret[k]['sbd_balance'].split(' '); balance['steem'] = ret[k]['balance'].split(' '); info.info.balance = parseFloat(balance[req.query.currency][0]); info.currentInfo.balance = parseFloat(balance[req.query.currency][0]); info.info.success = 'true'; } req.session.info = info; return info; } async bet(req) { req.setTimeout(500000); let info = req.session.info; let amount = (req.body.PayIn/100000000).toFixed(3); let condition = 'under'; let currency = req.body.Currency.toLowerCase(); let target = 0; target = Math.floor(req.body.Chance) + 1; let cseed = Math.random().toString(36).substring(2); let memo = 'BRoll ' + condition + ' ' + target + ' '+ cseed; let bet = amount + ' '+ req.body.Currency.toUpperCase(); let userName = req.session.username; let token = req.session.accessToken; let kryptoGamesDice = 'kryptogames'; try{ let ret = await this._transfer(token, userName, kryptoGamesDice, bet, memo); let data = await this._getBetInfo(ret.id, userName, cseed); if(typeof data._id == "undefined") { data = await this._getBetInfoFromUser(userName,ret.id, cseed); } if(typeof data._id != "undefined") { data.amount = amount; let betInfo = {}; betInfo.id = data._id; betInfo.condition = '<'; betInfo.target = target; betInfo.profit = (parseFloat(data.payout) - parseFloat(data.amount)).toFixed(8); betInfo.roll_number = data.diceRoll; betInfo.payout = parseFloat(data.payout).toFixed(8); betInfo.amount = parseFloat(data.amount).toFixed(8); info.info.balance = (parseFloat(info.info.balance) + parseFloat(betInfo.profit)).toFixed(8); info.currentInfo.balance = (parseFloat(info.currentInfo.balance) + parseFloat(betInfo.profit)).toFixed(8); info.info.bets++; info.currentInfo.bets++; info.info.profit = (parseFloat(info.info.profit) + parseFloat(betInfo.profit)).toFixed(8); info.info.wagered = (parseFloat(info.info.wagered) + parseFloat(amount)).toFixed(8); info.currentInfo.wagered = (parseFloat(info.currentInfo.wagered) + parseFloat(amount)).toFixed(8); info.currentInfo.profit = (parseFloat(info.currentInfo.profit) + parseFloat(betInfo.profit)).toFixed(8); if(data.won){ betInfo.win = true; info.info.wins++; info.currentInfo.wins++; } else { betInfo.win = false; info.info.losses++; info.currentInfo.losses++; } let returnInfo = {}; returnInfo.betInfo= betInfo; returnInfo.info = info; req.session.info = info; return returnInfo; } else { throw new Error('bet data is null'); } } catch(e) { throw e; } } async _getBetInfoFromUser(account, id, cseed){ let memoRegEx = /\{(.*)/; return new Promise(async (resolve, reject) => { try { let options = { url: ' https://api.steemit.com', method: 'POST', json: { jsonrpc: '2.0', method: 'condenser_api.get_account_history', params: [account, -1, 1], id: 1 }, timeout:10000 }; for(let tryQueryCount=0; tryQueryCount<20; tryQueryCount++) { let data = await this._queryUserInfo(options,id,cseed); if(data !== undefined){ tryQueryCount = 999; console.log(data); resolve(data) } else { console.log('Waiting for blockchain packing.....'); await this._sleep(15000); } } resolve('not found') } catch (e) { reject( e ); } }); } async _getBetInfo(id, userName, cseed){ let memoRegEx = /\{(.*)/; let tryQueryCount = 0; return new Promise(( resolve, reject ) => { let release = steem.api.streamOperations(async function (err, op) { if (err) { reject( err ); } else { if (op[0] === "transfer" && op[1].to === userName) { if (op[1].from === "kryptogames" && op[1].memo.startsWith("You")) { tryQueryCount++; try { memoRegEx = /Client Seed: ([A-Za-z0-9]+),/; let clientSeed = memoRegEx.exec(op[1].memo)[1] ; if(clientSeed == cseed ){ release(); let memo = op[1].memo; let steems = op[1].amount.split(' '); let data = {}; console.log(memo); data.payout = steems[0]; data._id = id; memoRegEx = /Result: ([0-9]+),/; data.diceRoll = memoRegEx.exec(op[1].memo)[1] ; data.won = false; if (memo.indexOf("Won")>0) { data.won = true; } resolve(data); } } catch (e) { reject( e ); } } if (op[1].from === "kryptogames" && !op[1].memo.startsWith("You")) { release(); let memo = op[1].memo; console.log(memo); reject(memo); } } } if(tryQueryCount>=100){ release(); resolve({}); } }); }); } async _transfer(p,u,t,s,m){ return new Promise(( resolve, reject ) => { steem.broadcast.transfer(p, u, t, s, m, function(err, result){ if(err) { reject( err ); } else { resolve( result ); } }); }); } async _sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)) } async _queryUserInfo(options, id, cseed){ let memoRegEx = /\{(.*)/; return new Promise(( resolve, reject ) => { let req = request.post(options,function (e, r, body) { if(e) { console.log('reject error'); reject( e ); } else { if(body) { let res = body.result; for(let k in res) { let tran = res[k][1].op; try { if (tran[0] == "transfer" && tran[1].from == "kryptogames" && tran[1].memo.startsWith("You")) { memoRegEx = /Client Seed: ([A-Za-z0-9]+),/; let clientSeed = memoRegEx.exec(tran[1].memo)[1] ; console.log(clientSeed, cseed); if(clientSeed == cseed ){ let memo = tran[1].memo; let steems = tran[1].amount.split(' '); let data = {}; console.log(memo); data.payout = steems[0]; data._id = id; memoRegEx = /Result: ([0-9]+),/; data.diceRoll = memoRegEx.exec(tran[1].memo)[1] ; data.won = false; if (memo.indexOf("Won")>0) { data.won = true; } resolve(data); } } } catch (e) { reject( e ); } } } resolve(); } }); }); } } <h1>Online Simulator <ul> <li><a href="https://simulator.mydicebot.com" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://simulator.mydicebot.com <h1>Download <ul> <li>Binaries: <a href="https://github.com/mydicebot/mydicebot.github.io/releases" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://github.com/mydicebot/mydicebot.github.io/releases <li>Source Code: <a href="https://github.com/mydicebot/mydicebot.github.io" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://github.com/mydicebot/mydicebot.github.io <h1>Supporting Dice Sites (alphabet sequence) <h2>Traditional <ul> <li><a href="https://www.999dice.com/?224280708" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">999Dice <li><a href="https://www.bitsler.com/?ref=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Bitsler <li><a href="https://www.crypto-games.net?i=CpQP3V8Up2" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Crypto-Games <li><a href="https://primedice.com/?c=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">PrimeDice <li><a href="https://stake.com/?code=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Stake <li><a href="https://yolodice.com/r?6fAf-wVz" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">YoloDice <h2>Blockchain - STEEM <ul> <li><a href="https://epicdice.io/?ref=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">EpicDice <li><a href="https://kryptogamers.com/?ref=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">KryptoGames <li><a href="https://steem-bet.com?ref=mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">SteemBet <h1>Quick Start <ul> <li><p dir="auto">Download MyDiceBot Binaries here: <a href="https://github.com/mydicebot/mydicebot.github.io/releases" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">MyDiceBot Releases. <li><p dir="auto">Different execution methods on different platforms. <ul> <li><p dir="auto">Linux (Open Terminal) <pre><code>chmod +x mydicebot-linux <pre><code>./mydicebot-linux <li><p dir="auto">Mac (Open Terminal) <pre><code>chmod +x mydicebot-macos <pre><code>./mydicebot-macos <li><p dir="auto">Windows (Open Command Prompt) <pre><code>mydicebot-win.exe <li><p dir="auto">Choose Dice Site, Input username/password/2FA/APIKey, then Login. <li><p dir="auto">Bet and WIN. <h1>Features <ul> <li>Supported platforms: <strong>Windows, Mac, Linux, Web <li>Supported programming languages: <strong>Lua and <strong>Javascript <li>Supported multiple dice-sites <li>Supported multiple strategies <li>New account registration <li>Existing account login <li>Betting statistics <li>Manual bet <li>Auto bet <li>Script bet (<strong>compatible with Seuntjies DiceBot scripts) <h2>Internal Variables <ul> <li><strong>Single Bet Info <div class="table-responsive"><table> <thead> <tr><th>Variable<th>Type<th>Permission<th>Purpose <tbody> <tr><td><strong>basebet<td>double<td>Read Write<td>Shows the amount of the first bet. Only set for first bet. <tr><td><strong>previousbet<td>double<td>Read Only<td>Shows the amount of the previous bet. Only set after first bet. <tr><td><strong>nextbet<td>double<td>Read Write<td>The amount to bet in the next bet. You need to assign a value to this variable to change the amount bet. Defaults to previousbet after first bet. Needs to be set before betting can start. <tr><td><strong>chance<td>double<td>Read Write<td>The chance to win when betting. Defaults to value set in advanced settings if not set. Need to set this value to change the chance to win/payout when betting. <tr><td><strong>bethigh<td>bool<td>Read Write<td>Whether to bet high/over (true) or low/under(false). Defaults to true (bet high/bet over) <tr><td><strong>win<td>bool<td>Read Only<td>Indicates whether the last bet you made was a winning bet (true) or a losing bet (false). <tr><td><strong>currentprofit<td>double<td>Read Only<td>Shows the profit for the last bet made. This is not the amount returned. betting 1 unit at x2 payout, when winning, currentprofit will show 0.00000001 (returned =0.00000002), when losing, profit will show -0.00000001 <ul> <li><strong>Current Session Info <div class="table-responsive"><table> <thead> <tr><th>Variable<th>Type<th>Permission<th>Purpose <tbody> <tr><td><strong>balance<td>double<td>Read Only<td>Lists your balance at the site you're logged in to. <tr><td><strong>bets<td>int<td>Read Only<td>Shows the number of bets for the current session. <tr><td><strong>wins<td>int<td>Read Only<td>Shows the number of wins for the current session. <tr><td><strong>losses<td>int<td>Read Only<td>Shows the number of losses for the current session. <tr><td><strong>profit<td>double<td>Read Only<td>Shows your session profit. Session is defined as the time since opening the current instance of bot or the last time you reset your stats in the bot. <tr><td><strong>currentstreak<td>double<td>Read Only<td>Shows the current winning or losing streak. When positive (>0), it's a winning streak. When negative (<0) it's a losing streak. Can never be 0. Only set after first bet. <tr><td><strong>currentroll<td>double<td>Read Only<td>Show current roll information <h2>Internal Functions <div class="table-responsive"><table> <thead> <tr><th>Function<th>Purpose <tbody> <tr><td><strong>dobet()<td>The loop of bets <tr><td><strong>stop()<td>Stop the bet <h2>Sample Code <ul> <li>Strategy: Basic Martingale <li>Using Lua <pre><code>chance = 49.5 multiplier = 2 basebet = 0.00000010 bethigh = false function dobet() if profit >= 0.1 then stop() end if win then nextbet = basebet else nextbet = previousbet * multiplier end end <ul> <li>Using Javascript <pre><code>chance = 49.5; multiplier = 2; baseBet = 0.00000001; betHigh = false; function dobet() { if (win) { nextBet = basebet; } else { nextBet = previousbet * multiplier; } } <h1>Report Issue <ul> <li><a href="https://github.com/mydicebot/mydicebot.github.io/issues" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://github.com/mydicebot/mydicebot.github.io/issues <h1>License <ul> <li>GPL-3.0 <h1>Thanks <ul> <li>Special thanks to the open source project of <a href="https://github.com/Seuntjie900/DiceBot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Seuntjies DiceBot. <li>If you need simulation functions or advanced-autobet functions, we recommand Seuntjies DiceBot. <h1>Quote <ul> <li>"Gambling is gambling no matter what you do or how good your strategy is. The house always wins if you keep playing. Winners know when to stop." <li>"Like any human, we make mistakes, and like any program, the bot is bound to have a few bugs. Use the bot at your own risk. " <h1>Disclaimer <ul> <li>This is still gambling. The bot is not guaranteed to win. <li>Please do not gamble more than you can afford to lose. <li>The bot has a lot of settings, and we cannot test each and every combination. <li>The bot might behave unpredictable and unreliably with certain combinations of settings. <li>Certain actions from the server might also result in unexpected behavior. <li>We cannot be held responsible for any losses incurred while using the bot. <h1>Legal <ul> <li>It is your obligation to ensure compliance with any legislation relevant to your country of domicile regarding online gambling. <h1>Contact <ul> <li>github: <a href="https://github.com/mydicebot/mydicebot.github.io/issues" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://github.com/mydicebot/mydicebot.github.io/issues <li>steemit: <a href="https://steemit.com/@mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://steemit.com/@mydicebot <li>bitcointalk: <a href="https://bitcointalk.org/index.php?topic=5057661" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">MyDiceBot - Cross-Platform | Multi-Script-Language | Multi-Site | Multi-Strategy <li>discord: <a href="https://discord.gg/S6W5ec9" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">https://discord.gg/S6W5ec9 <h1>Donation <ul> <li>DOGE: D9wMjdtGqsDZvjxWMjt66JLjE9E9nMAKb7 <li>steemit: <a href="https://steemit.com/@mydicebot" target="_blank" rel="nofollow noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">@mydicebot
Sort:  

Thank you for the contribution.

However, the post had the same issues as the last one you published. I appreciate you for always tagging Utopian in your updates. However, I would appreciate if you could make your future posts more descriptive, clear, and informative.

Thanks!

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Chat with us on Discord.

[utopian-moderator]

thanks for reviewing and suggestion.

Thank you for your review, @tykee! Keep up the good work!

Congratulations @mydicebot! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

<table><tr><td><img src="https://images.hive.blog/768x0/https://steemitimages.com/60x70/https://steemitboard.com/@mydicebot/posts.png?201906101303" srcset="https://images.hive.blog/768x0/https://steemitimages.com/60x70/https://steemitboard.com/@mydicebot/posts.png?201906101303 1x, https://images.hive.blog/1536x0/https://steemitimages.com/60x70/https://steemitboard.com/@mydicebot/posts.png?201906101303 2x" /><td>You published more than 80 posts. Your next target is to reach 90 posts. <p dir="auto"><sub><em>You can view <a href="https://steemitboard.com/@mydicebot" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">your badges on your Steem Board and compare to others on the <a href="https://steemitboard.com/ranking/index.php?name=mydicebot" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Steem Ranking<br /> <sub><em>If you no longer want to receive notifications, reply to this comment with the word <code>STOP <p dir="auto">To support your work, I also upvoted your post! <h6><a href="https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1" target="_blank" rel="noreferrer noopener" title="This link will take you away from hive.blog" class="external_link">Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Hi @mydicebot!


Your UA account score is currently 1.533 which ranks you at #37138 across all Steem accounts.
Your rank has dropped 112 places in the last three days (old rank 37026).Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!

In our last Algorithmic Curation Round, consisting of 163 contributions, your post is ranked at #150.

Evaluation of your UA score:
  • Only a few people are following you, try to convince more people with good work.
  • The readers like your work!
  • Try to work on user engagement: the more people that interact with you via the comments, the higher your UA score!

Feel free to join our @steem-ua Discord server

Thank you so much for participating in the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.00% upvote! Together, let’s change the world!

Hey, @mydicebot!

Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Get higher incentives and support Utopian.io!
SteemPlus or Steeditor). Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!


thanks a lot for your consistent support and suggestion.@ctime

updated tag.