Fund Recovery (Refund)
The escrow contract provides two mechanisms for recovering funds to the operator. Neither requires approval from Verifluence, the creator, or any third party.
Since v7 the allocation refund is permissionless: once the timelock has passed, anyone may trigger it. That is safe because the refund only ever returns unspent funds to the operator's own campaign pool — the caller gains nothing. In practice Verifluence's relayer uses this to sweep timed-out allocations on the operator's behalf, so stale escrows do not sit unreclaimed.
Two Types of Refund
1. Allocation Refund (After Deadline)
Recovers unclaimed funds from a specific streamer's allocation after the agreed deadline has passed.
When it applies: The operator allocated funds to a streamer, but the streamer did not claim all of their slots before the deadline.
How it works:
- A refund is requested for a specific allocation — by the operator, or by anyone once the timelock has passed (v7)
- The contract checks that the deadline has passed
- The contract calculates the unclaimed amount (total allocation minus payouts already made)
- The unclaimed funds are returned to the operator's deposit pool
- The operator can then either allocate those funds to a different streamer or withdraw them entirely
Example: An operator allocated 1,000 USDC across 4 weekly slots (250 USDC each). The streamer completed 2 slots and was paid 500 USDC. After the deadline:
| Slot | Amount | Status |
|---|---|---|
| Week 1 | 250 USDC | Paid to streamer |
| Week 2 | 250 USDC | Paid to streamer |
| Week 3 | 250 USDC | Unclaimed — refundable |
| Week 4 | 250 USDC | Unclaimed — refundable |
The operator refunds 500 USDC (the two unclaimed slots). The streamer's 500 USDC in completed payouts are unaffected.
2. Deposit Refund (Anytime)
Recovers unallocated funds from the deposit pool — funds that were deposited but never committed to any streamer.
When it applies: The operator deposited more than they ended up allocating, or a campaign was cancelled before full allocation.
How it works:
- The operator requests a refund of the unallocated balance
- The contract calculates: total deposited minus total allocated
- The unallocated balance is transferred directly to the operator's wallet
- No waiting period or deadline required
Example: An operator deposited 10,000 USDC and allocated 7,000 USDC to streamers. The remaining 3,000 USDC is unallocated and can be withdrawn at any time.
Custody Implications
| Question | Answer |
|---|---|
| Can the operator reclaim all funds immediately? | Unallocated funds: yes. Allocated funds: only after the deadline, and only the unclaimed portion |
| Can Verifluence block a refund? | No. Refunds are processed directly by the contract, and since v7 anyone can trigger one after the timelock |
| Can the creator prevent a refund? | Not after the deadline. Before it, allocated funds are locked and cannot be refunded |
| Can a refund take funds a creator already earned? | No. A refund returns only the unspent portion; slots already released are untouched |
| Are refunds automatic? | Not by the contract itself — a refund must be triggered. Since v7 anyone may do so after the timelock, and Verifluence's relayer sweeps timed-out allocations so operators do not have to track them |
| Can a refund be reversed? | No. Once processed, the refund is final |
| Can refunded funds be re-allocated? | Yes. Funds returned to the deposit pool can be allocated to new streamers |
Fund Flow Summary
| Situation | What the Operator Can Recover | When |
|---|---|---|
| Campaign not yet started (all funds unallocated) | 100% of deposit | Anytime |
| Campaign partially allocated | Unallocated balance | Anytime |
| Creator completed all slots | Nothing from that allocation | N/A — funds already paid out |
| Creator completed some slots | Unreleased slot amounts | After the deadline |
| Creator completed no slots | Full allocation amount | After the deadline |