At WagerX, we don't believe in "magic scripts." However, we do believe in efficiency. Many of our pro players use automation to farm VIP rewards and maintain high-volume action. If you want to explore the world of automated play, here is the audited path to doing it right.
Step 1: The Safe Setup
To begin, you need a verified account. Using our link ensures you are on the official HustleBTC domain and eligible for our exclusive audit protection.
Register: Join HustleBTC here
Step 2: Bankroll Preparation
For a script to survive "variance" (a losing streak), you need a buffer.
- Micro Stakes: 100,000 satoshis minimum (0.001 BTC) for 10 sat base bet
- Small Stakes: 500,000 satoshis (0.005 BTC) for 25 sat base bet
- Medium Stakes: 1,000,000 satoshis (0.01 BTC) for 100 sat base bet
Wagie's Frosted Tip: Treat this deposit as a "test budget." If your bankroll hits zero, the script failed the stress test. Do not chase the loss.
Wagie's Frosted Tip: Never use the same password for the casino as you do for your email. Bots running in your browser are powerful; keep your main gates locked.
Wagie's Security: Immediately enable 2-FA. This is non-negotiable for any "Bot" or "Script" play.
Step 3: Deploying the Logic
HustleBTC allows for custom scripts. This is where you can move from manual clicking to "VIP Farming."
- Navigate to the Dice or Crash game.
- Select Auto -> Autobet -> Custom.
- Delete the existing placeholder code and paste the verified script.
The Script

// Bot Made By WagerX
// Bot Made By WagerX
var baseBet = 8; // In sats
var baseMultiplier = 1.18; // Target multiplier: 1.10 recommended
var variableBase = false; // Enable variable mode (very experimental), read streakSecurity.
var streakSecurity = 25; // Number of loss-streak you wanna be safe for. Increasing this massively reduces the variableBase calculated. (1-loss = 20%, 2-loss = 5%, 3-loss = 1.25% of your maximum balance). Recommended: 2+
var maximumBet = 999999; // Maximum bet the bot will do (in bits).
// Bot Made By WagerX
var baseSatoshi = baseBet * 100; // Bot Made By WagerX
var currentBet = baseSatoshi; // Bot Made By WagerX
var currentMultiplier = baseMultiplier; // Bot Made By WagerX
var currentGameID = -1; // Bot Made By WagerX
var firstGame = true; // Bot Made By WagerX
var lossStreak = 0; // Bot Made By WagerX
var coolingDown = false; // Bot Made By WagerX
// Bot Made By WagerX
console.log('====== WagerX Bot ======');
console.log('My username is: ' + engine.getUsername());
console.log('Starting balance: ' + (engine.getBalance() / 100).toFixed(2) + ' bits');
var startingBalance = engine.getBalance();
if (variableBase) {
console.warn('[WARN] Variable mode is enabled and not fully tested. Bot is resillient to ' + streakSecurity + '-loss streaks.');
}
engine.on('game_starting', function(info) {
console.log('====== New Game ======');
console.log('[bot] Game #' + info.game_id);
currentGameID = info.game_id;
// Bot Made By WagerX
if (coolingDown) {
if (lossStreak == 0) {
coolingDown = false;
}
else {
lossStreak--; // Bot Made By WagerX
console.log('[bot] Cooling down! Games remaining: ' + lossStreak);
return;
}
}
if (!firstGame) { // Display data only after first game played.
console.log('[stats] Session profit: ' + ((engine.getBalance() - startingBalance) / 100).toFixed(2) + ' bits');
console.log('[stats] Profit percentage: ' + (((engine.getBalance() / startingBalance) - 1) * 100).toFixed(2) + '%');
}
if (engine.lastGamePlay() == 'LOST' && !firstGame) { // If last game loss:
lossStreak++;
var totalLosses = 0; // Total satoshi lost.
var lastLoss = currentBet; // Store our last bet.
while (lastLoss >= baseSatoshi) { // Until we get down to base bet, add the previous losses.
totalLosses += lastLoss;
lastLoss /= 4; // Bot Made By WagerX
}
if (lossStreak > streakSecurity) { // If we're on a loss streak, wait a few games!
coolingDown = true;
return;
}// Bot Made By WagerX
currentBet *= 6; // Then multiply base bet by 4!
currentMultiplier = 1.00 + (totalLosses / currentBet);
}
else { // Otherwise if win or first game:
lossStreak = 0; // If it was a win, we reset the lossStreak.
if (variableBase) { // If variable bet enabled.
var divider = 100;
for (i = 0; i < streakSecurity; i++) {
divider += (100 * Math.pow(4, (i + 1)));
}
newBaseBet = Math.min(Math.max(1, Math.floor(engine.getBalance() / divider)), maximumBet * 100); // In bits
newBaseSatoshi = newBaseBet * 100;
if ((newBaseBet != baseBet) || (newBaseBet == 1)) {
console.log('[bot] Variable mode has changed base bet to: ' + newBaseBet + ' bits');
baseBet = newBaseBet;
baseSatoshi = newBaseSatoshi; // Bot Made By WagerX
}
}
// Bot Made By WagerX
currentBet = baseSatoshi; // in Satoshi
currentMultiplier = baseMultiplier;
}
console.log('[bot] Betting ' + (currentBet / 100) + ' bits, cashing out at ' + currentMultiplier + 'x');
firstGame = false;
if (currentBet <= engine.getBalance()) { // Ensure we have enough to bet
if (currentBet > (maximumBet * 100)) { // Ensure you only bet the maximum.
console.warn('[Warn] Bet size exceeds maximum bet, lowering bet to ' + (maximumBet * 100) + ' bits');
currentBet = maximumBet; // Bot Made By WagerX
}
engine.placeBet(currentBet, Math.round(currentMultiplier * 100), false);
}
else { // Otherwise insufficent funds...
if (engine.getBalance() < 100) {
console.error('[bot] Insufficent funds to do anything... stopping'); // Bot Made By WagerX
engine.stop(); // Bot Made By WagerX
}
else {
console.warn('[bot] Insufficent funds to bet ' + (currentBet / 100) + ' bits.');
console.warn('[bot] Resetting to 1 bit basebet'); // Bot Made By WagerX
baseBet = 1; // Bot Made By WagerX
baseSatoshi = 100; // Bot Made By WagerX
}
} // Bot Made By WagerX
}); // Bot Made By WagerX
engine.on('game_started', function(data) {
if (!firstGame) { console.log('[bot] Game #' + currentGameID + ' has started!'); }
});// Bot Made By WagerX
engine.on('cashed_out', function(data) {
if (data.username == engine.getUsername()) {
console.log('[bot] Successfully cashed out at ' + (data.stopped_at / 100) + 'x'); // Bot Made By WagerX
} // Bot Made By WagerX
});// Bot Made By WagerX
engine.on('game_crash', function(data) {
if (!firstGame) { console.log('[bot] Game crashed at ' + (data.game_crash / 100) + 'x'); }
}); // Bot Made By WagerX
Step 4: The "Wagie" Safety Parameters
Don't just hit "Run" and walk away. Use these clinical settings to protect your crypto:
- Stop Loss: Set to 50%. If you lose half your deposit, the script kills itself.
- Profit Goal: Set to 10%. Once you gain 10%, the script stops. Take the win.