The Loot Primitive
A Loot is the protocol’s core primitive: a verifiable reward campaign escrowed on-chain. On the contract layer it is implemented as a Pool; product, UI, and API surfaces uniformly call it a Loot. The two map one-to-one.
Anatomy of a Loot
Section titled “Anatomy of a Loot”Every Loot is described by a small set of parameters, fixed at creation:
| Property | Meaning |
|---|---|
| Asset type | ETH (native coin), ERC20, or ERC721. A Loot never mixes asset types. |
| Play style | Random, Equal, or Custom — how the pool splits among claimers. |
| Window | startTime (0 = starts immediately) and endTime (0 = never expires). |
| Seats | maxClaimers — how many wallets can claim. Must be greater than zero. |
| Contribution | Whether addresses other than the creator may add funds. |
| Gates | The eligibility conditions a participant must pass. See Gates. |
| Status | Pending → Active → Ended, derived from on-chain state. |
Status
Section titled “Status”A Loot has exactly three statuses, computed from on-chain state rather than stored:
- Pending — created but not yet live. Funding happens here.
- Active — the start time has passed and the pool has been funded; participants can claim.
- Ended — the window expired, all seats are taken, or the balance is exhausted.
Lifecycle
Section titled “Lifecycle”- Create. The creator calls the factory, which deploys a dedicated minimal-proxy pool and snapshots the configuration on-chain.
- Fund. The creator deposits the rewards while the Loot is Pending. If contribution is enabled, others can add funds too — but only during the Pending window. Once the Loot turns Active, the balance is locked.
- Verify. A participant passes the Gates; the verifier issues an EIP-712 voucher.
- Claim. The participant submits the voucher; the pool computes or reads their allocation and transfers it. One wallet, one claim.
- Reclaim. After the Loot ends, contributors recover any unclaimed balance pro-rata. See reclaim.
Why “Loot”
Section titled “Why “Loot””In a GameFi context, Loot carries the semantics of exploration, challenge, and reward — a full “participate → qualify → earn” loop rather than a one-way gift. It is more visceral than Gift or Reward and more concrete than Drop: it names the thing being claimed, not merely the act of sending. The contract layer keeps the Pool name because rewards are custodied in a pool that reuses the OpenZeppelin Clones minimal-proxy pattern. See smart contracts.