I was looking for some cloud mining that has good price and acceptable fees, however since there is shitload of scams with this I started to read ToS and look at the source code of the website, what happened with cloudminr.io is funny and sad at the same time, make your mind:
conversationHello,
in your ToS you are saying that you apply maintenance fees as said in FAQ, I quote:
"8.4. The Maintenance Cost is charged in Bitcoins in the way described at the FAQ ("Frequently Asked Questions") section of the website. Maintenance Cost is deducted from cloud based mining contract owners at the time of every payout."
sadly, in FAQ you say that you have NO fees...
mining -> what fees do you have -> "We have a no fee policy. For any changes we will notify everyone through our website and on Bitcointalk forums."
does this mean you have NO maintenance fees (I pay 0.0013 BTC/GH ONCE, nothing more, nothing less, no matter how long I'm using your service if the time won't exceed 5 years, as the contract is valid for 5 years), and therefore when you update your terms of service, applying maintenance fees, I'm eligible for a FULL refund as you broke the contract by modifying it before 5 years passed?
please be aware that if I'll decide to make a contract with you, I will keep this message in case something unfortunate happens
Kind Regards, Juraj K.
Hello!
Yes, contracts bought now will have no fees. There are no payout limits as well as no fees for payouts too.
That is a part of our special offer and aggressive pricing policy as a new cloud mining platform. In the future, we will likely charge maintenance costs for new contracts (contracts bought now will not be affected). We will make sure everyone is aware of the changes when they take place.
Best regards,
Adrian
Hello,
I'm sorry, but this still looks kinda suspicious, why?
your website says that if I buy 1TH/s I'll get 2.093 BTC as first year return, however according to any calculator (even mine), it's possible to mine 4.5912 BTC in 1 year, if I substract 1.3 BTC for the 1TH/s contract, it is 3.2912 BTC, which is 157.248% of what you say is my return, how come so?
Are you absolutely sure there are NO fees, or cuts, or anything from your side? am I truly getting every BTC I mine? or are you getting ~36.5% cut from the BTC I mine?
Thanks, Juraj K.
Hello!
It seems that you have mixed up two different things - profit and return :)
Return is the total amount of Bitcoins mined. It is not the same as profit. Profit equals return minus investment.
In the example you provided with 1 TH/s - 2.093 BTC is the total estimated return. With the price per GH/s being 0.0013 BTC, that means 0.793 BTC profit.
It is important to note that total return estimation varies greatly depending on your expected future difficulty increases and there is no way to predict that with 100% accuracy.
Everything stated regarding fees/maintenance costs in our previous message is correct.
Hopefully I have cleared everything up and nothing seems suspicious for you anymore. If you still have any questions, please let us know. We will be glad to help you!
Best regards,
Adrian
Hello again,
actually I understood the return pretty well, that's why I was subtracting initial price from "return"
so again, according to mine and any other calculator, the "return" (how much anyone will mine with 1TH/s) is 4.5912 BTC in 1 year at current difficulty, which is more than 200% of the return you are listing on you website
from the source code of your website I can see that you are not even using any calculator (a lot of them have API, so you can just send simple POST HTTPs and get the correct value of return), but instead this insanely weird formula:
GHs * 0.0013 * 1.61
where 0.0013 is your price per GHs and 1.61 is supposed to be "ROI", can I ask you how did you come to this number?
Kind Regards, Juraj K.
Hello!
First of all, 4.5912 BTC is realistically impossible. It is only possible with 0% difficulty increases. However, difficulty tends to increase each two weeks.
Please see https://bitcoinwisdom.com/bitcoin/difficulty for historical difficulty increases.
You can also find a mining profit calculator in the same website: https://bitcoinwisdom.com/bitcoin/calculator
No, GHs * 0.0013 * 1.61 is not the formula. 1.61 is the output from our server-side calculation that gets re-adjusted each few days automatically.
To get the coefficient 1.61 we use the following method:
We get the first difficulty period returns: (seconds until next difficulty change / ((2^32 * difficulty)/(GHS * 10^9))/25)), then the next, then next until there is total of 365 days. For each difficulty period we use our estimated increase that we mainly calculate using historical results and or own coefficients based on our assumptions about the Bitcoin network and mining industry.
The estimated difficulty increase can vary a lot and it causes total returns to vary a lot too - for example: If you use 5% average estimated increase, total mined bitcoins by 2016 will be 2.681, while if you use 7% the total mined bitcoins by 2016 will be 2.209.
A shorter conclusion - the 4.5x BTC number is not realistic as it doesn't take in account future difficulty increases. Our estimate is calculated mostly on the server-side using our own assumptions about the mining industry.
Please spend some time playing around on https://bitcoinwisdom.com/bitcoin/calculator - use no fees/electricity costs and try different difficulty increments.
Let us know if you have any more questions. Hopefully my answer helped you.
Best regards,
Adrian
Hello,
I'm sorry, but your "1.61 ROI" is NOT calculated on the server side, it's hard-coded in your website source code as
var roi = 1.61;
the formula you provided is, hm, nice, but then again, you have hard-coded ROI and not calculated, you don't send any HTTP requests to your sever for current ROI and I highly doubt you update it on a daily basis...
Kind Regards, Juraj K.
Hello!
I asked our developer and his response was following:
"yeah it's not daily, its each difficulty change. but roi IS generated on server side. that is why users cannot really see any requests just like they cannot see any requests for account balance and such.. try to give him this example "roi = yearly_roi()?>" and ask if it is still hard coded (rhetorical question)"
I am not a developer, but from his answer we can conclude that the yearly ROI does come from a server side calculation and it doesn't need any front-end requests just as the message you are reading right now does not need any visible HTTP requests.
If you still have any questions, please let us know!
Best regards,
Adrian
Hello,
actually, in order to get your reply I NEED to send a HTTP request, exactly this one:
POST /contact/ HTTP/1.1
Host: cloudminr.io
Connection: keep-alive
Content-Length: 33
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: https://cloudminr.io
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: https://cloudminr.io/contact/
Accept-Encoding: gzip, deflate
Accept-Language: sk-SK,sk;q=0.8,cs;q=0.6,en-US;q=0.4,en;q=0.2
Cookie: referral=0; PHPSESSID=383cf1474b3387e8a55576adc03beaeb; _gat=1; _ga=GA1.2.1401497009.1417804433
reference=T-PHNHTYOGRLOANU&check=
as seen on this screenshot from console: https://i.imgur.com/ZiJzk6u.jpg
however, as I said, your ROI is hard-coded in your website source code, there's no function that retrieves ROI value and changes it based on calculation, in order to change the value you'd need to rewrite the variable in your index file
sadly I don't have registered account with you, so I can't check how the account balance works, but I'm pretty sure it gets the value from database and its not hard-coded to the file...
Kind Regards, Juraj K.
Hello!
No, you are wrong and the data you have pasted has nothing to do with loading the specific reply. The reply does not come from a separate HTTP request. It is already loaded within the index.php and we are pretty sure this reply is not hard coded.
The account balance does come from database and the ROI comes from a server side calculation. For front end user there is absolutely no difference - it's output in HTML and looks just as "hard coded".
The price per GH/s you see on the top right corner. Is that also hard coded? :) You don't see a specific HTTP request for that either.
I actually know exactly what you have mixed up. The "var roi = ..." value comes from a server side calculation. The 1.61 or 1.54 or anything else - that is output exactly the same way as our price per GH/s and other number.
Whenever you change the amount of hashrate, there will obviously be no specific HTTP requests as that would be an inefficient and resource-heavy design. Rather, it is loaded just once and multiplied by total price on button clicks or keyboard input.
To sum this up: the ROI is loaded just once and then multiplied using jQuery to prevent unnecessary HTTP requests.
Sorry, I did not realize that you were talking about ROI loading just once.
Best regards,
Adrian
their actual source code that "calculates" (just check their website source code, line 107) $(document).ready(function() {
var minimum = 49;
var maximum = 20001;
var price = 0.0013;
var roi = 1.61;
var discountprice;
$("#promobutton").click(function() {
var promocode = $("#promocode").val();
$("#promoform div input").hide();
$("#promoform div").append(" Processing..");
$.post("/handler.php?action=check_promo", { code: promocode }, function(data) {
if(data == "error") {
$("#promoform").hide();
$("#promomessage").addClass("error").css("display","block").html("Code provided has expired or doesn't exist.").show();
} else {
$("#promoform").hide();
var result = data.split("|");
$("#promomessage").addClass("success").css("display","block").html(""+result[1]).show();
discountprice = result[0];
var oldprice = $("#total").html;
var amount = $("#spinner").val();
$("#totalpayment").css({"font-size":"1em","text-decoration":"line-through"}).after(' BTC');
var newtotal = amount * discountprice;
$("#newpayment #total").html(round(newtotal,8));
}
});
});
function round(value,exp) {
if (typeof exp === "undefined" || +exp === 0)
return Math.round(value);
value = +value;
exp = +exp;
if(isNaN(value) || !(typeof exp === "number" && exp % 1 === 0))
return NaN;
value = value.toString().split("e");
value = Math.round(+(value[0] + "e" + (value[1] ? (+value[1] + exp) : exp)));
value = value.toString().split("e");
return +(value[0] + "e" + (value[1] ? (+value[1] - exp) : -exp));
}
$("#plus").click(function() {
var defval = parseInt($("#spinner").val());
if ($.isNumeric(defval)) {
var newval = defval+100;
var total = price * newval;
var newroi = total * roi;
if (typeof discountprice !== 'undefined') {
var discounttotal = discountprice * newval;
}
if (newval < maximum) {
$("#spinner").val(newval);
$("#total").html(round(total,8));
$("#roi").html(round(newroi,8));
if (typeof discountprice !== 'undefined') {
var discounttotal = discountprice * newval;
$("#newpayment #total").html(round(discounttotal,8));
}
}
} else {
var newval = 50;
$("#spinner").val(newval);
}
});
$("#minus").click(function() {
var defval = parseInt($("#spinner").val());
if ($.isNumeric(defval)) {
var newval = defval-100;
var total = price * newval;
var newroi = total * roi;
if (typeof discountprice !== 'undefined') {
var discounttotal = discountprice * newval;
}
if (newval > minimum) {
$("#spinner").val(newval);
$("#total").html(round(total,8));
$("#roi").html(round(newroi,8));
if (typeof discountprice !== 'undefined') {
var discounttotal = discountprice * newval;
$("#newpayment #total").html(round(discounttotal,8));
}
}
} else {
var newval = 50;
$("#spinner").val(newval);
}
});
$(".spinner").keyup(function() {
var newval = $("#spinner").val();
if ($.isNumeric(newval)) {
if (newval > maximum) {
newval = 20000;
$(".spinner").addClass("red");
} else if (newval < minimum) {
newval = 100;
$(".spinner").addClass("red");
} else {
$(".spinner").removeClass("red");
}
var newtotal = newval * price;
var newroi = newtotal * parseFloat(roi);
if (typeof discountprice !== 'undefined') {
var discounttotal = discountprice * newval;
}
$("#total").html(round(newtotal,8));
$("#roi").html(round(newroi,8));
$("#newpayment #total").html(round(discounttotal,8));
} else {
if (newval !== "") {
$(".spinner").val(50);
}
}
});
$("#promolink").click(function() {
$("#promolink").hide();
$("#promoform").show();
});
});
so apparently I'm wrong and the ticket reply is NOT loaded via POST HTTP... I disagree, and so do my tests
HTTP request:
https://i.imgur.com/tLlCZU4.jpgHTTP response:
https://i.imgur.com/XxhRTaR.jpghere's the ticket ID: T-PHNHTYOGRLOANU
I'm not going to argue with them anymore, feel free to use the ticket ID to check the conversation or reply