Incentive Types
Leaderboard, rebate, raffle, and direct distribution types
Torque supports four incentive types, each determining how rewards are distributed to participants.
Leaderboard
Rank participants by their query result value. Each user's payout is determined by the formula — the default N pays each user their raw metric value, capped by the remaining reward pool.
- Default formula:
N— each user gets their metric value as a direct payout. If the top user's value exceeds the pool, they consume it all. - Use case: Reward top performers — top traders, most active users, highest volume
- For fixed rank prizes: Use a formula like
RANK == 1 ? 10000 : RANK == 2 ? 5000 : RANK == 3 ? 2000 : 0 - For equal splits: Use
TOTAL_REWARD_POOL / TOTAL_PARTICIPANTS
| Parameter | Required |
|---|---|
totalFundAmount | Yes |
customFormula | No (default: N) |
Rebate
Return a percentage of each user's activity value as a reward. The MCP constructs the formula from the rebatePercentage parameter.
- Formula:
VALUE * (rebatePercentage / 100)— e.g., 5% rebate becomesVALUE * 0.05(constructed automatically by the MCP) - Use case: Cashback on trades, purchase rebates, fee refunds
| Parameter | Required |
|---|---|
totalFundAmount | Yes (caps the total pool) |
rebatePercentage | Yes (e.g. 5 for 5%) |
Raffle
Randomly select winners from qualified participants. By default, uses weighted selection — each user's query metric value determines their number of raffle tickets (more activity = more chances to win).
- Use case: Lucky draw promotions, engagement lotteries, weighted reward draws
| Parameter | Required | Description |
|---|---|---|
raffleBuckets | Yes | Prize tiers (see below) |
raffleWeighting | No | WEIGHTED_BY_METRIC (default) or EQUAL_CHANCES |
Weighting modes:
WEIGHTED_BY_METRIC(default) — ticket count equals the user's query metric value. A user with 100 volume gets 10x more entries than a user with 10 volume. The query results are sorted by value (highest first).EQUAL_CHANCES— every qualifying user gets exactly 1 ticket. The query value only determines whether they meet the threshold to enter — all qualifying users have equal odds.
Raffle buckets define prize tiers:
[
{ "amount": 100, "count": 1 },
{ "amount": 50, "count": 5 },
{ "amount": 10, "count": 20 }
]This creates 1 grand prize of 100, 5 prizes of 50, and 20 prizes of 10. Total fund is calculated automatically. Each wallet can only win once per draw.
Direct
Distribute specific amounts to specific wallet addresses. The MCP constructs an inline SQL query from the allocations and uses formula-based distribution internally, so direct incentives are created as recurring offers and appear in list_recurring_incentives.
- Use case: Airdrops, team rewards, partner distributions, recurring fixed payouts
| Parameter | Required |
|---|---|
allocations | Yes |
Allocations can be an array or CSV:
[
{ "address": "wallet1...", "amount": 500 },
{ "address": "wallet2...", "amount": 300 }
]