VRF Rock Paper Scissors
Connect with RISE Wallet to play
sendTransactionSync() directly - it's easier but makes multiple RPC calls. Viem will soon integrate this optimization natively. See the commented code at the bottom for the simpler approach.
>
}
>
Connect your wallet to use passkey flow
Each transaction requires wallet approval via popup
{balance ? (Number(balance) / 1e18).toLocaleString() : "0"}
{count?.toString() || "0"}
Transaction Hash:
{txHash}Connect your wallet to use session key flow
Generate a local keypair and grant on-chain permissions for seamless transactions without popups
Session Public Key:
{PublicKey.toHex(publicKey)}
Transactions are signed locally without popups
{balance ? (Number(balance) / 1e18).toLocaleString() : "0"}
{count?.toString() || "0"}
Transaction Hash:
{txHash}Choose a transaction signing pattern to get started
Direct transaction signing with wallet approval popups for each action
Background signing with pre-authorized permissions for seamless UX
Connect your wallet to explore transaction flows
Register to start trading via Telegram
Connected:
{address.slice(0, 6)}...{address.slice(-4)}
{status}
{sessionKey && (Session Key: {sessionKey}
)}Connect with RISE Wallet to play
Play against AI powered by RISE VRF
Tickets: {tickets?.toString() || '0'}
Get ready...
You
{playerChoice === 'rock' ? '🪨' : playerChoice === 'paper' ? '📄' : '✂️'}AI
{aiChoice === 0 ? '🪨' : aiChoice === 1 ? '📄' : '✂️'}You won 0.002 ETH!
)}