---
title: "Build a claim transaction payload"
method: POST
path: "/rewards/{address}/claim-payload"
tags: ["Rewards"]
---

# Build a claim transaction payload

`POST /rewards/{address}/claim-payload`

## Request

- Base URL: `https://app.elata.bio/api`
- URL: `https://app.elata.bio/api/rewards/{address}/claim-payload`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/elata-biosciences/apis/elata-app-store-api/docs/rewards/:address/claim-payload/post.ts> (a function with typed inputs; its response is checked against the schema)

Returns the calldata and (where applicable) merkle proof a frontend
needs to submit a claim transaction. **Does not** custody funds — the
user still signs and sends the transaction themselves.

## Path parameters

- `address` string, required

## Request body

- object
  - `programIds` string[], required

## Response `200`

Claim payload.

- ClaimPayload
  - `to` string: Contract address the user must call.
  - `data` string: ABI-encoded calldata.
  - `value` string: ETH value to send (wei). Usually "0".
  - `chainId` integer
  - `merkleProofs` object[]
    - `programId` string
    - `proof` string[]

## Other responses

- `401`: Missing or invalid SIWE bearer token.

---

[API](https://skmtc.dev/elata-biosciences/apis/elata-app-store-api.md) - [All operations](https://skmtc.dev/elata-biosciences/apis/elata-app-store-api/llms.txt) - [OpenAPI document](https://skmtc.dev/elata-biosciences/apis/elata-app-store-api/revisions/55c111b65fc5?raw)
