Wire any game in three steps.
One script tag. A few lines of code. Any web game becomes a real-money 1v1 — no backend required.
Challenge.init({
gameId: 'your-game-id',
mode: 'score',
settlement: 'consensus',
matchmaking: 'skill',
entryFee: 2,
onMatchStart: () => startGame(),
})Three steps to real money.
No SDK to learn, no infrastructure to run. Drop it in and go.
Add the button
One script tag, one element. The Challenge button handles player accounts, deposits, and the matchmaking screens — all inside your game.
<script src="https://api.withchallenge.com/widget/dist/challenge-widget.js"></script>
<challenge-button></challenge-button>Set your rules in code
One Challenge.init() call declares how winners are decided, how results are trusted, and how opponents are matched. No dashboard.
Challenge.init({
gameId: 'your-game-id',
mode: 'score', // 'score' or 'versus'
settlement: 'consensus', // 'consensus' or 'server'
matchmaking: 'skill', // 'skill', 'fifo', or your own
entryFee: 2, // $2 or $5
onMatchStart: () => startGame(),
})Report the result
When the game ends, tell Challenge who won. It settles the match, takes its fee, and pays the winner — you never touch the money.
// score mode — highest score wins
Challenge.gameEnded({ score: finalScore })
// versus mode — report the winner
Challenge.reportResult({ winnerId })Your rules, in three knobs.
Every integration is three choices — all declared in your code, never a dashboard.
Mode
How the winner is decided — highest score, or your game logic.
Settlement
How results are trusted. Consensus = both players confirm, no server needed — the anti-cheat option.
Matchmaking
How opponents are found — ELO skill, first-come lobby, or your own.
Start earning from every match.
Challenge for Players
Create an account, deposit funds, and compete for real money in games you already play.
Challenge for Developers
Add Challenge to your game and start earning from every match. Integration takes minutes.