outcomeRewards module reads what the Outcome Markets liquidity-rewards programme has paid out. It is a standalone export - it does not require createHIP4Adapter, a signer, or any authentication. The data comes from a public, unauthenticated payouts service that reads Monarch’s finalized reward periods and the actual USDC transfers on Hypercore, and is normalized to camelCase by the SDK.
This replaces the retired
liquidityRewards module, but answers a different question. liquidityRewards told you which books were eligible today for one campaign; outcomeRewards tells you what has already been paid out, across every Outcome Market. There’s no eligibility-checking equivalent here.Paid, pending, and awarded
Every totals shape below carries the same three amounts:programme
Programme-wide totals - no arguments required:
wallet
One wallet’s totals and reward history:
paidUsdc / pendingUsdc / awardedUsdc / payments fields as programme, scoped to the wallet, plus rewards: OutcomeRewardsWalletReward[] - one row per reward period the wallet earned in:
An address with no rewards returns zeroes and an empty
rewards list - not an error.periods
Every finalized reward period, newest first:
OutcomeRewardsPeriod[]:
leaderboard
Wallets ranked by USDC actually paid - not awarded, so a rank never changes without a real payment:
OutcomeRewardsLeaderboardEntry[]: rank, wallet, paidUsdc, payments, rewardPeriods.
Request options
periods and leaderboard accept a limit on top of the shared options below:
Errors and retries
Requests retry once on 5xx and network errors, matching the rest of the SDK. 4xx responses - including429 rate-limiting - throw an OutcomeRewardsError immediately rather than retrying into the limit:
OutcomeRewardsError carries the HTTP status and, when the response included one, the upstream machine-readable code (e.g. "bad-request" for a malformed wallet address).
Exports
Runtime exports and all outcome-rewards types come from the main entry point (they are not part of@outcome.xyz/hip4/types):