Menu
Documentation
API reference Get a reward

Get a reward

Retrieve one reward and its latest evidence-backed projection.

Read a reward by its Slices ID. The response includes the original allocation, its status, and the transfer evidence once a transaction exists.

Endpoint#

http
GET /v1/rewards/{rewardId}
Authorization: Bearer <your-server-api-key>
ParameterLocationRequiredDescription
rewardIdPathYesOpaque reward ID, 1–96 letters, digits, underscores, or hyphens.

This operation has no request body and does not require an idempotency key.

TypeScript#

ts
const reward = await slices.rewards.get("rwd_demo0001");
console.log(reward.status, reward.deliveryEvidence?.transactionHash);

HTTP#

bash
curl --silent --show-error \
  "$SLICES_BASE_URL/v1/rewards/$SLICES_REWARD_ID" \
  --header "Authorization: Bearer $SLICES_API_KEY"

Response#

200 OK:

json
{
  "data": {
    "id": "rwd_demo0001",
    "campaignId": "cmp_pilot001",
    "recipient": {
      "walletAddress": "0x0000000000000000000000000000000000001001",
      "verificationStatus": "verified",
      "verificationUrl": null
    },
    "asset": {
      "chainId": 31337,
      "tokenAddress": "0x0000000000000000000000000000000000002001",
      "symbol": "TST",
      "decimals": 6
    },
    "amountBaseUnits": "1000000",
    "event": {
      "id": "referral_0182",
      "type": "referral.qualified"
    },
    "source": "partner_attested",
    "status": "delivered",
    "statusReason": null,
    "payoutCampaignId": "pay_demo0001",
    "deliveredAmountBaseUnits": "1000000",
    "deliveryEvidence": {
      "transactionHash": "0x0000000000000000000000000000000000000000000000000000000000004001",
      "blockNumber": "184203",
      "blockHash": "0x0000000000000000000000000000000000000000000000000000000000004002",
      "confirmations": "12",
      "finality": "l2_finalized",
      "logIndex": 0,
      "checkedAt": "2026-09-11T13:02:00Z"
    },
    "createdAt": "2026-09-11T12:00:00Z",
    "updatedAt": "2026-09-11T13:02:00Z"
  }
}

All addresses, IDs, amounts, and timestamps in this example are synthetic. TST on chain 31337 is a local test profile, not an available production asset.

Every field shown is part of the resource schema. statusReason, payoutCampaignId, and deliveryEvidence are present even when their values are null; this example is a delivered reward, so its evidence is complete.

Interpret the result#

status tells you how far the reward has travelled. recipient.verificationStatus explains a reward that stays accepted, statusReason explains a failed or cancelled one, and deliveryEvidence.checkedAt says how fresh the chain evidence is.

The original amount is not replaced by the wallet's current balance. A delivered record carries the verified transfer's hash, block, confirmations and log index; a sent transfer whose receipt has not been verified yet stays sent.

See Reward object for field definitions and Reward states for display guidance.

Errors and access#

An unknown or out-of-project reward returns 404 NOT_FOUND. A valid key without the required operation access returns 403 FORBIDDEN. Invalid or revoked credentials return 401 UNAUTHENTICATED.

A transient failure does not remove the reward. Preserve the last known result, retry within bounds, and retain X-Request-Id or the error's request ID for diagnostics.

If you lost the original reward ID after an uncertain issuance, use the original idempotent request or List rewards with campaign and event filters. Do not issue under a new key as a lookup strategy.

Related: Track rewards and Idempotency.