PeakeCoin'sino Update
https://geocities.ws/peakecoin/pek_casino/beta_games/
The Maryland-made casino runs right in your browser, logging in with Hive Keychain or WhaleVault.
🃏 Choose from over 15 games: Blackjack, Poker, Baccarat, Teen Patti, Casino War, and more.
🔐 Secure login via Keychain or WhaleVault 💰 PEK balance check auto-displays after sign-in 🔗 All games gated behind a 100 PEK minimum 🧾 Deposits accepted from MetaMask → Hive Engine bridge (swap.crypto)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PeakeCoin'sino</title>
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
<link href="casino-theme.css" rel="stylesheet">
<style>
body {
background: linear-gradient(135deg, #181818 0%, #232323 100%);
color: #fff;
font-family: 'Press Start 2P', monospace;
margin: 0;
min-height: 100vh;
}
.casino-container {
max-width: 520px;
margin: 60px auto;
background: linear-gradient(135deg, #232323 60%, #2d1e2f 100%);
border-radius: 20px;
box-shadow: 0 0 40px #000a, 0 4px 32px #6c3483cc;
padding: 36px 28px 32px 28px;
text-align: center;
border: 2px solid #6c3483;
}
.casino-title {
font-size: 2.2em;
margin-bottom: 28px;
letter-spacing: 2px;
color: #ffd700;
text-shadow: 0 2px 8px #6c3483cc, 0 1px 0 #fff2;
}
.login-section {
margin-bottom: 36px;
}
.game-list {
margin-top: 28px;
}
.game-btn {
display: block;
width: 100%;
margin: 14px 0;
padding: 18px 0;
font-size: 1.1em;
background: linear-gradient(90deg, #6c3483 0%, #232323 100%);
color: #fff;
border: none;
border-radius: 10px;
cursor: pointer;
box-shadow: 0 2px 8px #0006;
transition: background 0.2s, transform 0.1s, box-shadow 0.2s;
font-family: inherit;
letter-spacing: 1px;
}
.game-btn:hover {
background: linear-gradient(90deg, #8e44ad 0%, #232323 100%);
color: #ffd700;
transform: translateY(-2px) scale(1.03);
box-shadow: 0 6px 16px #6c3483cc;
}
#casinoLoginError {
color: #f55;
margin-top: 10px;
min-height: 18px;
}
#casinoBalanceDisplay {
margin-bottom: 14px;
font-size: 1.1em;
color: #ffd700;
text-shadow: 0 1px 4px #6c3483cc;
}
input[type="text"] {
padding: 12px;
width: 80%;
margin-bottom: 14px;
border-radius: 8px;
border: 1.5px solid #6c3483;
background: #181818;
color: #fff;
font-size: 1em;
font-family: inherit;
outline: none;
box-shadow: 0 1px 6px #6c348344 inset;
transition: border 0.2s, box-shadow 0.2s;
}
input[type="text"]:focus {
border: 2px solid #ffd700;
box-shadow: 0 2px 12px #ffd70044;
}
button[type="submit"] {
padding: 12px 36px;
border-radius: 8px;
border: none;
background: linear-gradient(90deg, #ffd700 0%, #6c3483 100%);
color: #232323;
font-size: 1.1em;
font-family: inherit;
font-weight: bold;
cursor: pointer;
box-shadow: 0 2px 8px #0006;
transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}
button[type="submit"]:hover {
background: linear-gradient(90deg, #fff700 0%, #8e44ad 100%);
color: #181818;
box-shadow: 0 6px 16px #ffd70044;
}
.game-list > div {
margin-bottom: 22px;
color: #ffd700;
text-shadow: 0 1px 4px #6c3483cc;
}
@media (max-width: 600px) {
.casino-container {
max-width: 98vw;
padding: 18px 2vw 18px 2vw;
}
.casino-title {
font-size: 1.2em;
}
.game-btn {
font-size: 1em;
padding: 12px 0;
}
}
</style>
</head>
<body>
<div class="casino-container">
<div class="casino-title">PeakeCoin'sino</div>
<div class="login-section" id="login-section">
<form id="casinoLoginForm" autocomplete="off">
<input type="text" id="casinoLoginInput" placeholder="Hive username" autocomplete="username" value="peakecoin.matic">
<button type="submit" id="casinoLoginSubmit">Sign In with Hive</button>
<div id="casinoLoginError"></div>
</form>
</div>
<div class="game-list" id="game-list" style="display:none;">
<div>Welcome, <span id="casinoUserDisplay"></span>!<br>Choose a game:</div>
<button class="game-btn" id="go-blackjack">Blackjack</button>
<button class="game-btn" id="go-poker">Poker</button>
<button class="game-btn" id="go-baccarat">Baccarat</button>
<button class="game-btn" id="go-teenpatti">Teen Patti</button>
<button class="game-btn" id="go-andarbahar">Andar Bahar</button>
<button class="game-btn" id="go-paigow">Pai Gow Poker</button>
<button class="game-btn" id="go-reddog">Red Dog</button>
<button class="game-btn" id="go-casinowar">Casino War</button>
<button class="game-btn" id="go-caribbean">Caribbean Stud Poker</button>
<button class="game-btn" id="go-threecard">Three Card Poker</button>
<button class="game-btn" id="go-letitride">Let It Ride</button>
<button class="game-btn" id="go-spanish21">Spanish 21</button>
<button class="game-btn" id="go-pontoon">Pontoon</button>
<button class="game-btn" id="go-faro">Faro</button>
<button class="game-btn" id="go-chemin">Chemin de Fer</button>
<button class="game-btn" id="go-liarspoker">Liar's Poker</button>
</div>
</div>
<div style="text-align:center;margin-top:32px;font-size:1em;color:#ffd700;text-shadow:0 1px 4px #6c3483cc;">
Need help or found a problem? <br>
Contact us on Discord:<br>
<a href="https://discord.com/channels/1371256077127122964/1378796217827328091" target="_blank" rel="noopener" style="color:#8e44ad;font-weight:bold;text-decoration:underline;">PeakeCoin Support Channel</a>
</div>
<div class="info-box" style="max-width:520px;margin:32px auto 0 auto;padding:18px 20px 16px 20px;background:#232323;border-radius:14px;border:2px solid #ffd700;color:#ffd700;text-align:left;font-size:1em;box-shadow:0 2px 12px #6c3483cc;">
<b>How to Deposit PEK from MetaMask/EVM:</b><br>
<ul style="margin:10px 0 0 18px;padding:0;font-size:0.98em;color:#ffd700;">
<li>Send your PEK (or swap/wrapped PEK) from your EVM wallet to the <b>swap.crypto</b> bridge contract on Hive Engine's EVM chain.</li>
<li>In the transaction memo, enter your <b>Hive username</b> (e.g., <b>peakecoin.matic</b>).</li>
<li>After the bridge processes your deposit, your PEK will appear on Hive Engine and be available to play.</li>
<li><b>Note:</b> Withdrawals and rewards are sent from <b>peakecoin.bnb</b> on Hive Engine. If a payout fails, it will be queued and reviewed.</li>
</ul>
<div style="margin-top:10px;font-size:0.95em;color:#ffd700;">All gameplay is provably fair and on-chain. For help, see our Discord support channel below.</div>
</div>
<script>
// Simple CSP-compliant login and game select
let casinoUser = null;
let casinoBalance = null;
const loginForm = document.getElementById('casinoLoginForm');
const loginInput = document.getElementById('casinoLoginInput');
const loginError = document.getElementById('casinoLoginError');
const gameList = document.getElementById('game-list');
const loginSection = document.getElementById('login-section');
const userDisplay = document.getElementById('casinoUserDisplay');
// Add balance display
let balanceDisplay = document.createElement('div');
balanceDisplay.id = 'casinoBalanceDisplay';
balanceDisplay.style = 'margin-bottom:12px;font-size:1.1em;color:#ffd700;';
gameList.insertBefore(balanceDisplay, gameList.firstChild);
loginForm.addEventListener('submit', function(e) {
e.preventDefault();
const username = loginInput.value.trim();
loginError.textContent = '';
if (!username) {
loginError.textContent = 'Enter your Hive username.';
return;
}
// Helper: handle successful login
function completeLogin(user) {
casinoUser = user;
loginSection.style.display = 'none';
userDisplay.textContent = '@' + user;
gameList.style.display = '';
fetchPEKBalance(user);
// Persist login for game pages
try {
localStorage.setItem('peakecoin_user', user);
} catch (e) {}
}
// Helper: show error
function showLoginError(msg) {
loginError.textContent = msg;
}
// --- Hive Keychain ---
if (window.hive_keychain) {
function handleSignResponse(response, triedMemo) {
console.log('[Keychain response]', response);
const isValidSig = (sig) => {
return (
typeof sig === 'string' && (
sig.startsWith('SIG_') ||
(/^[0-9a-f]{128,132}$/i.test(sig))
)
);
};
if (response.success && isValidSig(response.result)) {
completeLogin(username);
} else if (!triedMemo) {
// Try Memo key as fallback (capitalized)
window.hive_keychain.requestSignBuffer(
username,
'Sign in to PeakeCoin\'sino',
'Memo',
function(resp2) { handleSignResponse(resp2, true); }
);
} else {
let errMsg = 'Hive Keychain sign-in failed or was rejected.';
if (response.error) errMsg += ' Error: ' + response.error;
if (typeof response.result === 'string' && !isValidSig(response.result)) {
if (/^[0-9a-f]{64}$/i.test(response.result)) {
errMsg += ' (This looks like a transaction ID, not a signature. Make sure the username is present and unlocked in your Hive Keychain extension.)';
} else {
errMsg += ' (No valid signature returned: ' + response.result + ')';
}
}
showLoginError(errMsg);
}
}
window.hive_keychain.requestSignBuffer(
username,
'Sign in to PeakeCoin\'sino',
'Posting',
function(response) { handleSignResponse(response, false); }
);
return;
}
// --- WhaleVault ---
if (window.WhaleVault || window.wv) {
// WhaleVault uses custom events for signBuffer
function whalevaultSignBuffer(user, message, cb) {
const req = {
type: 'signBuffer',
username: user,
message: message,
method: 'posting',
sigType: 'K1',
appid: 'PeakeCoin',
reason: 'Casino Login',
request_id: Date.now()
};
function onWVResponse(event) {
if (event.data && event.data.type === 'wvResponse' && event.data.response && event.data.response.data && event.data.response.data.request_id === req.request_id) {
window.removeEventListener('message', onWVResponse);
cb(event.data.response);
}
}
window.addEventListener('message', onWVResponse);
window.postMessage({ type: 'wvRequest', detail: req }, '*');
}
whalevaultSignBuffer(username, 'Sign in to PeakeCoin\'sino', function(response) {
console.log('[WhaleVault response]', response);
if (response.success && typeof response.result === 'string' && response.result.startsWith('SIG_')) {
completeLogin(username);
} else {
let errMsg = 'WhaleVault sign-in failed or was rejected.';
if (response.error) errMsg += ' Error: ' + response.error;
if (typeof response.result === 'string' && !response.result.startsWith('SIG_')) {
if (/^[0-9a-f]{64}$/i.test(response.result)) {
errMsg += ' (This looks like a transaction ID, not a signature. Make sure the username is present and unlocked in your WhaleVault extension.)';
} else {
errMsg += ' (No valid signature returned: ' + response.result + ')';
}
}
showLoginError(errMsg);
}
});
return;
}
// --- No wallet extension ---
showLoginError('No supported Hive wallet extension (Hive Keychain or WhaleVault) found.');
});
// Prevent game selection if not logged in or balance too low
function canPlay() {
if (!casinoUser) {
loginError.textContent = 'Please log in with Hive Keychain first.';
return false;
}
if (parseFloat(casinoBalance) < 100) {
loginError.textContent = 'You need at least 100 PEK to play.';
return false;
}
return true;
}
// Fix navigation for static hosting: use relative paths from root
function goToGame(gameDir) {
try {
localStorage.setItem('peakecoin_user', casinoUser);
} catch (e) {}
window.location.href = gameDir + '/index.html';
}
document.getElementById('go-blackjack').onclick = function() { if (canPlay()) goToGame('blackjack'); };
document.getElementById('go-poker').onclick = function() { if (canPlay()) goToGame('poker'); };
document.getElementById('go-baccarat').onclick = function() { if (canPlay()) goToGame('baccarat'); };
document.getElementById('go-teenpatti').onclick = function() { if (canPlay()) goToGame('teenpatti'); };
document.getElementById('go-andarbahar').onclick = function() { if (canPlay()) goToGame('andarbahar'); };
document.getElementById('go-paigow').onclick = function() { if (canPlay()) goToGame('paigow'); };
document.getElementById('go-reddog').onclick = function() { if (canPlay()) goToGame('reddog'); };
document.getElementById('go-casinowar').onclick = function() { if (canPlay()) goToGame('casinowar'); };
document.getElementById('go-caribbean').onclick = function() { if (canPlay()) goToGame('caribbean'); };
document.getElementById('go-threecard').onclick = function() { if (canPlay()) goToGame('threecard'); };
document.getElementById('go-letitride').onclick = function() { if (canPlay()) goToGame('letitride'); };
document.getElementById('go-spanish21').onclick = function() { if (canPlay()) goToGame('spanish21'); };
document.getElementById('go-pontoon').onclick = function() { if (canPlay()) goToGame('pontoon'); };
document.getElementById('go-faro').onclick = function() { if (canPlay()) goToGame('faro'); };
document.getElementById('go-chemin').onclick = function() { if (canPlay()) goToGame('chemin'); };
document.getElementById('go-liarspoker').onclick = function() { if (canPlay()) goToGame('liarspoker'); };
// Fetch PEK balance from Hive Engine
function fetchPEKBalance(username) {
// Hive Engine API endpoint
const url = `https://api.hive-engine.com/rpc/contracts`;
const reqBody = {
jsonrpc: "2.0",
id: 1,
method: "find",
params: {
contract: "tokens",
table: "balances",
query: { account: username, symbol: "PEK" },
limit: 1
}
};
balanceDisplay.textContent = 'Loading PEK balance...';
fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(reqBody)
})
.then(r => r.json())
.then(data => {
let bal = '0.000';
if (data && data.result && data.result.length > 0 && data.result[0].balance) {
bal = data.result[0].balance;
}
casinoBalance = bal;
balanceDisplay.textContent = `PEK Balance: ${bal}`;
})
.catch(() => {
balanceDisplay.textContent = 'PEK Balance: (error fetching)';
});
}
</script>
</body>
</html>
This report was published via Actifit app (Android | iOS). Check out the original version here on actifit.io
hive-193552
actifit
pimp
creativecoin
neoxian
palnet
waivio
utopis
archon
proofofbrain
lassecash
bilpcoin
leo
list
peakecoin
life
ctp
hivehustlers
bee
byte
stem
lern
sportstalk
movetoearn
move2earn
0
0
0.000
Congratulations @strangedad! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)
Your next target is to reach 3750 upvotes.
You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Congrats on providing Proof of Activity via your Actifit report!
You have been rewarded 34.875 AFIT tokens for your effort in reaching 5988 activity, as well as your user rank and report quality!
You also received a 0.85% upvote via @actifit account.
Rewards Details
AFIT rewards and upvotes are based on your:
To improve your user rank, delegate more, pile up more AFIT and AFITX tokens, and post more.
To improve your post score, get to the max activity count, work on improving your post content, improve your user rank, engage with the community to get more upvotes and quality comments.
Chat with us on discord | Visit our website
Follow us on Twitter | Join us on Telegram
Download on playstore | Download on app store
Knowledge base:

FAQs | Whitepaper
How to signup | Maximize your rewards
Complete Actifit Tutorial
Support our efforts below by voting for: