A claim is an on-chain obligation recorded by the EVM hub.
Claim model
A claim includes:
claimId: monotonic per leaseleaseId: origin leaseamountUsdt: always denominated in hub USDTtargetChainId: where the payout is intended to be deliveredbeneficiary: who receives the payouttargetToken: implicit by the queue the claim is stored in (or stored explicitly depending on implementation)
Why USDT-denominated claims
All claims store amountUsdt so that:
- recognition accounting is independent of swap execution and swap routes,
- swaps can be batched once per
targetToken, - the protocol can change swap execution details without touching recognition state.
Claim queues
Claims are stored in FIFO queues keyed by targetToken:
claimsByTargetToken[targetToken]: append-only arraynextIndexByTargetToken[targetToken]: head cursor
When a claim is filled:
- its slot is deleted (not shifted),
- a locator (mapping from
(leaseId, claimId)to queue position) is cleared.
This structure supports efficient batch settlement (swap once → settle many).
Lifecycle
- Recognition enqueues a claim (fast path or slow path).
- Settlement consumes claims in order via
fill. - Filled claims are deleted and no longer considered outstanding.
See: Settlement.