-
-
Notifications
You must be signed in to change notification settings - Fork 6
Package Integration
Richard Fu edited this page Jan 3, 2026
·
2 revisions
This guide shows you how to integrate the Stake Engine Client package into your own project.
Install the package using npm:
npm install stake-engine-clientOr using yarn:
yarn add stake-engine-clientIf you're building a web application, the easiest way to configure the client is through URL parameters:
https://your-game.com/play?sessionID=player-123&rgs_url=api.stakeengine.com&lang=en¤cy=USD
With URL parameters, you can use most functions without passing options:
import { requestAuthenticate, requestBet, requestBalance } from 'stake-engine-client';
// All these functions will automatically use URL parameters
const auth = await requestAuthenticate();
const balance = await requestBalance();
const bet = await requestBet({
amount: 1.00,
mode: 'base'
// currency defaults to 'USD' from URL param
});For Node.js or when you prefer explicit configuration:
import { requestAuthenticate, requestBet } from 'stake-engine-client';
const config = {
sessionID: 'player-session-123',
rgsUrl: 'api.stakeengine.com',
language: 'en'
};
const auth = await requestAuthenticate(config);
const bet = await requestBet({
...config,
currency: 'USD',
amount: 1.00,
mode: 'base'
});-
sessionID- Player session identifier from your authentication system -
rgsUrl- RGS server hostname (without protocol, e.g., 'api.stakeengine.com')
-
language- Player language code (defaults to 'en')
| Function Parameter | URL Parameter | Default |
|---|---|---|
sessionID |
sessionID |
- |
rgsUrl |
rgs_url |
- |
language |
lang |
'en' |
currency |
currency |
'USD' |
Here's a typical game session flow:
import {
requestAuthenticate,
requestBet,
requestEndRound,
requestBalance
} from 'stake-engine-client';
// 1. Authenticate player
const auth = await requestAuthenticate();
console.log('Player balance:', auth.balance?.amount);
console.log('Bet levels:', auth.config?.betLevels);
// 2. Place a bet
const bet = await requestBet({
amount: 1.00,
mode: 'base'
// currency defaults to 'USD' from URL param
});
if (bet.status?.statusCode === 'SUCCESS') {
console.log('Bet placed! Round ID:', bet.round?.roundID);
console.log('Payout multiplier:', bet.round?.payoutMultiplier);
} else {
console.log('Bet failed:', bet.status?.statusMessage);
}
// 3. End the round
const endResult = await requestEndRound();
console.log('Round ended, new balance:', endResult.balance?.amount);
// 4. Check balance anytime
const currentBalance = await requestBalance();
console.log('Current balance:', currentBalance.balance?.amount);Always check the status code in responses:
const bet = await requestBet({
amount: 1.00,
mode: 'base'
// currency defaults to 'USD' from URL param
});
switch (bet.status?.statusCode) {
case 'SUCCESS':
console.log('Bet placed successfully!');
break;
case 'ERR_IPB':
console.log('Insufficient player balance');
break;
case 'ERR_IS':
console.log('Invalid session or session expired');
break;
default:
console.log('Error:', bet.status?.statusMessage);
}The client automatically handles amount conversion:
// Input: Dollar amounts (human-readable)
const bet = await requestBet({
currency: 'USD',
amount: 1.00, // $1.00
mode: 'base'
});
// The client converts this to API format (1000000) automatically
// Responses contain amounts in API format, divide by API_AMOUNT_MULTIPLIER for displayNow that you have the basics:
- Explore the API - Check out individual function pages for detailed usage
- Handle Errors - Read the Error Handling guide
- See Examples - Browse Usage Patterns for real-world scenarios
- Advanced Features - Learn about TypeScript Types and custom clients
- Common Issues - Solutions to frequent problems
- Status Codes - Complete reference of error codes
- GitHub Issues - Report bugs or ask questions