Concepts
Reward pools
Copy page
Lia can fund a pool of $LIA for your app. Your server pays players from it, once per reward, within the pool and the daily limit per player.
#What a pool is
A reward pool is $LIA the Lia team sets aside for your app from Lia's treasury. Your server pays players from it: for winning a tournament, finishing a quest, watching a video, anything your app decides. The $LIA goes straight to the player's balance in Lia, and shows in their activity under your app's name with the reason you give.
The Lia team decides whether your app has a pool, funds it, and can top it up or take some back. Ask them about one when you talk to us.
#Paying a reward
Your server calls POST /rewards with your secret key:
{
"playerId": "p_3f9c0a6d1b2e4f5a6b7c",
"amount": 25,
"key": "tournament-2026-11-01:p_3f9c0a6d1b2e4f5a6b7c",
"reason": "Weekly tournament, 1st place"
}Rewards only ever come from your server. There's no SDK call for them, because a page can't be trusted to say what someone earned.
#Once per key
Every reward has a key that you choose, up to 128 characters of letters, digits, _, ., : and -. A key pays once, ever: sending the same key again pays nothing and answers { "status": "duplicate" } with the amount it paid the first time. So:
- Make the key say what the reward is for, so a retry or a double click can't pay twice:
daily:2026-11-01:p_3f9c…,quest-7:p_3f9c…,ad:ad_8e1c…. - It's safe to retry a reward after a timeout with the same key.
#Limits
| Limit | What happens |
|---|---|
| One reward is more than 0 and at most 10,000 LIA, to 6 decimal places. | 400 bad_amount |
| The pool must hold the amount. | 409 pool_empty, with what's left |
| A player can get at most the daily limit per player from your pool in a day (UTC). The Lia team sets it; 0 means no limit. | 429 daily_limit, with the limit |
GET /pool tells your server what's left and the daily limit. Watch the balance and ask the team to top it up before it runs out.
#Test mode
With your test key, rewards are pretend: they're recorded and their webhook is sent, but your pool isn't used, the daily limit doesn't apply, and no $LIA reaches the player. Keys are still once only.
#Webhooks
Every reward paid sends a reward.paid webhook with its key, player, amount, reason and mode. A duplicate sends nothing.
Reward players puts it together with a daily bonus as the example.