RITUAL
LIVE
PLAYERS
1
BEST
—
WPM
TXS
0
⬡ Connect
Contract
Status:
checking…
Addr:
—
Players
—
Txns
—
Type
ScoreRegistry
✓ VERIFIED
⬡ Deploy Contract
Connect wallet on
Ritual Chain
to deploy
↗ Explorer
+ Network
▸ View Solidity Source
// SPDX-License-Identifier: MIT
pragma solidity
^0.8.28;
contract
ScoreRegistry {
struct
Score {
uint256
wpm;
uint256
accuracy;
string
difficulty;
uint256
timestamp; }
mapping
(
address
=> Score)
public
bestScores;
address
[]
public
players;
event
ScoreSubmitted(
address indexed
player,
uint256
wpm,
uint256
accuracy,
string
difficulty,
uint256
timestamp );
function
submitScore(
uint256
wpm,
uint256
accuracy,
string calldata
difficulty )
external
{ Score
storage
best = bestScores[msg.sender];
if
(best.timestamp == 0) players.push(msg.sender);
if
(wpm > best.wpm || best.timestamp == 0) { best.wpm = wpm; best.accuracy = accuracy; best.difficulty = difficulty; best.timestamp = block.timestamp; }
emit
ScoreSubmitted(msg.sender, wpm, accuracy, difficulty, block.timestamp); }
function
getBestScore(
address
p)
external view returns
(Score
memory
) {
return
bestScores[p]; }
function
getPlayerCount()
external view returns
(
uint256
) {
return
players.length; }
function
getPlayer(
uint256
i)
external view returns
(
address
) {
return
players[i]; } }
Operators
Difficulty
Genesis
Infernet
Ritual
TEE
Session
0
Rounds
0
Best WPM
0
Avg WPM
0
Streak
RI
Ritual Node
Decentralized execution for AI.
0
WPM
100%
Acc
0:00
Time
0
Streak
Block Progress
0%
Live Race
0 racers
GENESIS
— chars
↻ New
Restart
Connect wallet to submit
⬡ Submit On-Chain
ESC
restart
TAB
new prompt
↵
close results
Chain Info
Network
Ritual
Chain ID
1979
Live Players
1
On-Chain
—
Leaderboard
My Best
No score yet
◌ BLOCK PENDING
Block Pending
0
WPM
100%
Accuracy
0:00
Time
WPM History
On-Chain Submission
Submit your score to ScoreRegistry on Ritual Chain — permanent and immutable.
Contract:
—
⬡ Deploy Contract First
Submit Score to Ritual Chain
✕ Close
Next Prompt →