Merkl Developer Portal logo

Merkl API

245 endpoints · v1.0.1
https://api.merkl.xyz/View as Markdown

The official API to access data related to Merkl campaigns, built and maintained by Merkl SAS. This API is provided as is, without any warranty of any kind.

Opportunities

Core
15
get
/v4/opportunities/tvl-recordsGet compact historical TVL series for several opportunities at once. Repeat ids once per opportun…
get
/v4/opportunities/{id}Get a unique opportunity by ID (hash) or composite identifier (chainId-type-identifier). Use quer…
get
/v4/opportunities/{id}/storing-idsGet the storingId(s) backing an opportunity, grouped by root campaign. Returns one tree per root …
get
/v4/opportunities/{id}/campaignsGet a unique opportunity by ID (hash) or composite identifier (chainId-type-identifier), includin…
get
/v4/opportunities/{id}/apr-recordsGet historical APR records for an opportunity.
get
/v4/opportunities/{id}/tvl-recordsGet historical TVL records for an opportunity.
get
/v4/opportunities/{id}/native-apr-recordsGet historical native APR records for an opportunity.
get
/v4/opportunities/Retrieve Multiple Opportunities
get
/v4/opportunities/countGet the count of opportunities corresponding to the query.
get
/v4/opportunities/bins/aprGet the APR distribution of opportunities matching the query, grouped into bins.
get
/v4/opportunities/bins/tvlGet the TVL distribution of opportunities matching the query, grouped into bins.
get
/v4/opportunities/bins/daily-rewardsGet the daily rewards distribution of opportunities matching the query, grouped into bins.
get
/v4/opportunities/aggregate/{field}Aggregate opportunities by a specific field (chainId, protocolId, tags, etc.).
get
/v4/opportunities/aggregate/max/{field}Get the maximum value for a specific field across filtered opportunities.
get
/v4/opportunities/aggregate/min/{field}Get the minimum value for a specific field across filtered opportunities.

Campaigns

Core
9

Users

Core
14
get
/v4/users/{address}/rewardsGet the rewards associated to a user on a given chain.
get
/v4/users/{address}/protocols/{protocolId}/rewardsRetrieve claimable rewards for a user scoped to a single protocol. Breakdowns and amounts reflect…
get
/v4/users/{address}/termsCheck if a user address has signed Merkl's terms for a specific chain. Provide the user's wallet …
get
/v4/users/{address}/recipient/{token}Get the recipient address for a given user address and specific token.
get
/v4/users/{address}/operator/{operatorAddress}Check if an address is an operator for a given user address.
get
/v4/users/{address}/wrappedGet a summary of a user's claimed rewards, including their most-used protocol and most-claimed to…
get
/v4/users/{address}/rewards/statsLightweight USD totals for a user — total earned, currently claimable, and pending. Supports opti…
get
/v4/users/{address}/rewards/summaryPer-chain rewards rollup with USD totals and per-token raw amounts. A lightweight alternative to …
get
/v4/users/{address}/rewards/chains/{chainId}/earnedRewards an address earned on one chain since 00:00 UTC 30 days ago, per token and campaign, optio…
get
/v4/users/{address}/rewards/earned/timelineRewards an address earned per UTC day over the last 7 or 30 days (today included), in USD at the …
get
/v4/users/{address}/rewards/active-opportunitiesActive opportunities for a user — LIVE status with rewards still claimable or pending. Aggregated…
get
/v4/users/{address}/rewards/chains/{chainId}/breakdownsPer-chain opportunity breakdown for a user. Aggregated by opportunity with one row per token carr…
get
/v4/users/{address}/rewards/campaign/{campaignId}One address's rewards for one campaign: amount, claimed, claimable, pending and per-reason breakd…
get
/v4/users/{address}/rewards/breakdownsPer-chain rewards with full opportunity breakdowns and proofs. Returns the same shape as /v4/user…

Chains

Core
2

Protocols

Core
3

Tokens

Core
6

Rewards

Rewards
15
get
/v4/rewards/Returns all the addresses that received rewards for a given campaign, sorted by descending amount…
get
/v4/rewards/totalReturns the total amount distributed for a given campaign. Use query parameters to specify campai…
get
/v4/rewards/countReturns the number of leaderboard rows (one per recipient and reason) in a given campaign. Use it…
get
/v4/rewards/recipients/countReturns the number of distinct recipients that earned rewards in a given campaign. A recipient ea…
get
/v4/rewards/rankReturns the rank of a user in a campaign leaderboard, based on reward amount. Returns an empty ar…
get
/v4/rewards/campaign/{campaignId}/listGet rewards for a specific campaign by campaignId path parameter and list of addresses. campaignI…
get
/v4/rewards/campaign/{campaignId}/mineReturns your own rewards for one campaign — settled, claimed, still-claimable and pending —
get
/v4/rewards/token/Returns all the addresses that received rewards of a given token, sorted by descending amounts. U…
get
/v4/rewards/token/totalReturns the total amount distributed for a given token. Use query parameters to specify token add…
get
/v4/rewards/token/countReturns the number of recipients that earned rewards in a given token. Use query parameters to sp…
get
/v4/rewards/token/unclaimedReturns the total unclaimed amount (distributed minus claimed) for a given token. Use query param…
get
/v4/rewards/unclaim/Returns the total of unclaimed rewards for given campaigns. Use query parameters to specify chain…
post
/v4/rewards/unclaim/batchReturns unclaimed rewards for campaigns across multiple chains in a single call. Pass an array of…
post
/v4/confidential-rewards/zamaStart a Zama encryption job
get
/v4/confidential-rewards/zama/jobs/{jobId}Poll a Zama encryption job

Claims

Rewards
5

Credits

Rewards
9

Creator

Rewards
9

Programs

Rewards
3

Campaign Lists

Rewards
6

Campaign Privacy

Rewards
3

Referral

Rewards
2

Reallocations

Rewards
4

Templates

Rewards
3

Overrides

Rewards
2

Historical

Rewards
3

SOFR Spread Ratchet

Rewards
2

Block Timestamp

Rewards
3

Developer API Keys

Developer
7

Authentication

Developer
7

Config

Developer
19
get
/v4/config/{id}Beta feature (not production ready yet) - Fetch the configuration for a specific campaign by its …
post
/v4/config/diffCompute the diff between two config schemas. Returns an array of edit operations (insert/update/d…
post
/v4/config/diff/{id}Compute the diff between the current config of a campaign and a new one. Returns an array of edit…
post
/v4/config/extendBeta feature (not production ready yet) - Extends a campaign configuration with the values resolv…
post
/v4/config/opportunityBeta feature (not production ready yet) - Computes an opportunity from a campaign configuration
post
/v4/config/tvlBeta feature (not production ready yet) - Computes a TVL from a campaign configuration. Requires …
post
/v4/config/encodeBeta feature (not production ready yet) - Encodes campaign parameters into the transaction payloa…
post
/v4/config/encode/overrideBeta feature (not production ready yet) - Builds the transaction payload used to override (or can…
post
/v4/config/encode/reallocateBeta feature (not production ready yet) - Builds the transaction payload used to reallocate an ex…
post
/v4/config/encode/safeBeta feature (not production ready yet) - Encodes campaign config to Safe transaction payload. Us…
post
/v4/config/encode/batchBeta feature (not production ready yet) - Encodes a batch of campaign parameters into transaction…
post
/v4/config/encode/batch/safeBeta feature (not production ready yet) - Encodes batch campaign configs to Safe transaction payl…
get
/v4/config/decode/onchain/{distributionChainId}/{campaignId}Decodes an on-chain campaign configuration. Use distributionChainId and campaignId path parameters.
post
/v4/config/decode/{distributionChainId}Decodes campaign data from the Distribution contract. Use distributionChainId path parameter and …
get
/v4/config/decode/{distributionChainId}/{payload}Decodes campaign from a raw payload. Use distributionChainId and payload (hex string) path parame…
post
/v4/config/decode/safeDecodes a Safe transaction payload back to the original campaign configurations. Returns an array…
post
/v4/config/decode/args/createCampaignDecodes arguments of the create campaign function back to the original campaign configuration.
post
/v4/config/storeStores campaign configurations keyed by their hash. Provide the campaign configuration payload in…
get
/v4/config/hash/{hash}Gets a campaign configuration by its hash. If campaignId and distributionChainId are provided and…

Key Value Store

Developer
9

Node

Developer
6

Leaves

Developer
2

Roots

Developer
2

Enums

Developer
4

Schemas

Developer
3

Health

Developer
9

GraphQL

Developer
5

OffchainBilling

Developer
3

Merkl Encompassing

Developer
1

Workspaces

Developer
29

Workspace API Keys

Developer
7

Workspace Identities

Developer
3

Ledger

Developer
6

Proofs

Developer
1

Volume

Developer
4