Reallocations

Retrace a campaign's reallocations (BETA)

Changed on

Reallocation Report

<p>Retraces every reallocation ever applied to a campaign, from its latest merkle tree — the newest root whose tree the tree service holds, named in <code>atRoot</code>. The distribution chain is <strong>inferred from the campaign ID</strong>.</p> <p>A reallocation is a two-step protocol recorded in the tree, and it never changes a campaign's total. Step 1 shrinks the original recipient's leaves to what it had already claimed and stages a marker at the zero address (<code>tmp_reallocation_{from}_{to}</code>). Step 2 drains that marker and either credits the destination (<code>reallocation</code> for a creator request, <code>unclaimedRewards</code> for a wipe sweep) or returns the reward to the original recipient (<code>fail_reallocation</code> / <code>fail_wipe</code>) when it claimed in between.</p> <p>Drained markers survive at amount zero, so the <code>senders</code> roster and the <code>inFlight</code>, <code>returned</code> and per-destination <code>settled</code> amounts are exact.</p> <p><strong>Not available here:</strong> per-sender <code>settled</code> and <code>stagedAt</code> (<code>walk</code> is <code>null</code>). A destination's leaf aggregates every sender and a drained marker has no amount left, so recovering those means one tree read per root — see <code>POST /v4/reallocations/report/{campaignId}/walk</code>.</p> <p><strong>Authentication:</strong> Requires either a valid <code>x-api-key</code> header or the back-office bearer secret.</p> <p>⚠️ <strong>Beta:</strong> this endpoint is in beta. The behavior, response shape and data format may change at any time without notice.</p>
get/v4/reallocations/report/{campaignId}

Request

  • Base URL: https://api.merkl.xyz (the document declares no server; this is the origin it was published from)
  • URL: https://api.merkl.xyz/v4/reallocations/report/{campaignId}
  • Auth: apiKey (a scheme the document does not define)

Path parameters

campaignIdstring required

On-chain campaign ID (32-byte hex hash, e.g. 0x93cf385c...). The distribution chain is inferred from it. NOT internal Campaign.id. See ID types.

Response

Response for status 200

campaignIdstring required

Onchain campaign ID the report covers

distributionChainIdnumber required

Distribution chain inferred from the campaign ID

Changes