Merkl Developer Portal logo
get

/v4/claims/

Fetch claims filtered by chainId(s), recipient, campaignId, token, root, exact reason, and an inclusive [fromTimestamp, toTimestamp] range (Unix seconds). Scope by timestamp to keep responses light for recipients with many claims. Returns the 100 most recent claims unless a recipient is given, in which case all matching claims are returned.

Query parameters

chainIdnumber | string

Single chain ID to filter claims (deprecated, use chainIds)

chainIdsnumber | string[]

Chain IDs to filter claims

recipientstring

Recipient EVM address (20 bytes, e.g. 0xabcd...).

campaignIdstring

Filter claims by on-chain campaign ID (32-byte hex hash, e.g. 0x93cf385c...). NOT the internal Campaign.id. See ID types.

tokenstring

Token address to filter claims (20-byte EVM address).

rootstring

Filter by root

reasonstring

Exact match on the claim reason (e.g. unclaimedRewards).

fromTimestampnumber | string

Lower bound (inclusive) on the claim Unix timestamp, in seconds.

toTimestampnumber | string

Upper bound (inclusive) on the claim Unix timestamp, in seconds.

Responses

200
Response for status 200
Schema
object[]
idstringClaim Id in Merkl Database
chainIdnumber | stringChain Id the claim was detected on
recipientstringAddress of the recipient
blockNumbernumberBlock number at which the claim occurred
timestampnumberUnix timestamp of the claim
tokenstringToken address that was claimed
campaignIdstringCampaign ID associated with the claim
reasonstringReason for the claim
rootstringMerkle root used for the claim
amountstringAmount claimed (as string to handle big numbers)
metadataanyAdditional metadata about the claim
isLatestbooleanWhether this is the latest claim for this combination
Example
[
  {
    "id": "string",
    "chainId": 0,
    "recipient": "string",
    "blockNumber": 0,
    "timestamp": 0,
    "token": "string",
    "campaignId": "string",
    "reason": "string",
    "root": "string",
    "amount": "string",
    "metadata": null,
    "isLatest": false
  }
]